Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2020-0022 — Repositorio de investigación que documenta experimentos de desbordamiento de heap en Bluetooth de Android BlueFrag (CVE-2020-0022), incluyendo análisis de fallos con GDB e intentos de explotación de memcpy. | Kitploit
Herramientas/GitHubGitHub/idkwim/cve-2020-0022
Seguridad AndroidSeguridad BluetoothAnálisis de VulnerabilidadesExplotaciónSeguridad MóvilPapers e InvestigaciónExplotación de Binarios
GitHubidkwim/cve-2020-0022

CVE-2020-0022

Repositorio de investigación que documenta experimentos de desbordamiento de heap en Bluetooth de Android BlueFrag (CVE-2020-0022), incluyendo análisis de fallos con GDB e intentos de explotación de memcpy.

Ver Repositorio
822hace 6 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2020-0022

Parece que Android 9-6 tienen un subsistema Bluetooth similar, Android 5 y 4 son diferentes.

Android 9.0

Experimentos de BlueFrag

Parche:

https://android.googlesource.com/platform/system/bt/+/3cb7149d8fed2d7d77ceaa95bf845224c4db3baf

Abajo alcancé la condición parcheada. OK, creo que lo tengo, pero de alguna manera no puedo hacer crashear el proceso.

hmmmm

BlueFrag

En realidad, logré obtener el valor de longitud con signo hacia memcpy()``` 02-16 01:44:49.096 6423 6471 W bt_hci_packet_fragmenter: reassemble_and_dispatch reassemble_and_dispatch 02-16 01:44:49.096 6423 6471 W bt_hci_packet_fragmenter: reassemble_and_dispatch partial_packet->offset 40 packet->len 304 HCI_ACL_PREAMBLE_SIZE 4
02-16 01:44:49.096 6423 6471 W bt_hci_packet_fragmenter: reassemble_and_dispatch projected_offset 340 partial_packet->len 41
02-16 01:44:49.096 6423 6471 W bt_hci_packet_fragmenter: reassemble_and_dispatch got packet which would exceed expected length of 41. Truncating. 02-16 01:44:49.096 6423 6471 W bt_hci_packet_fragmenter: reassemble_and_dispatch memcpy packet->len 1 packet->offset 4 expr -3
02-16 01:44:49.096 6423 6471 W bt_hci_packet_fragmenter: reassemble_and_dispatch partial_packet->data 0xacb14580 partial_packet->data + partial_packet->offset 0xacb145a8 packet->data 0xa553e110 packet->data + packet->offset 0xa553e114
02-16 01:44:49.097 6423 6469 W bt_hci_packet_fragmenter: fragment_and_dispatch fragment_and_dispatch

Todavía no hay crash, pero debería.....


En el ejemplo anterior, con un tamaño de memcpy de -3, este valor se interpreta como un entero sin signo (4294967293) y el memcpy continúa hasta que se produce un fallo de página debido a memoria no mapeada y el proceso debería terminar.

Mi teléfono en 32 bits, quizás sea por eso. El móvil es un Samsung S3 Neo+. Usando jemalloc al menos en las pruebas de Android 9.0.```
¯\_(ツ)_/¯

Bueno, parece correcto

GDB log memcpy

Sospecho que hay que abrir muchas conexiones (durante un tiempo) y de alguna manera asignar mucha memoria antes de que falle.

Aquí estamos empujando 4294967293, casi 4GB``` ¯_(ツ)_/¯

Swing y leommxj encontraron este comportamiento extraño de Android 8:

https://translate.google.com/translate?hl=en&sl=auto&tl=en&u=https%3A%2F%2Fbestwing.me%2FAndroid-8.1-memcpy-func.html
(Traducido del chino)

Posiblemente también afecte a Android 9. Lo comprobaré.

En realidad, puede ser que esto no se ejecute en contexto de proceso, sino quizás en contexto de interrupción. Entonces quizás el fallo podría
estar oculto.
Descargar herramienta