Una aplicación basta para que GhostMap Android deje el teléfono en bucle de arranque. Bitdefender Labs publicó la investigación este 5 de noviembre: la app de prueba no contiene código ejecutable, no pide un solo permiso y nunca necesita abrirse. Instalarla alcanza.
El equipo reprodujo el ciclo en un Pixel 10 con Android 17 y el parche de seguridad del 5 de agosto. De la instalación al primer cierre pasó cerca de un segundo. Una captura registró 110 ciclos con la animación de arranque fija en pantalla, y el modo seguro, la vía clásica para rescatar un teléfono Android, corrió la misma suerte con 72 ciclos.
Salir de ahí cuesta caro. Bitdefender solo encontró dos caminos: el restablecimiento de fábrica, que borra los datos del equipo, o borrar el archivo con ADB (Android Debug Bridge, la herramienta de depuración por computadora) si la depuración USB ya estaba activa y el borrado gana la carrera contra el siguiente cierre. Para casi todos, la salida real es la primera.
El hallazgo nació por accidente el 12 de agosto. Un APK (el paquete de instalación de Android) recogido en circulación, un descargador bancario envuelto en un empaquetador que reescribe la estructura del archivo, tumbó los emuladores del laboratorio al instalarse. Su autor no buscaba el efecto: la reescritura rompió el instalador y dejó al descubierto un error del sistema, no del programa malicioso.
Dos bibliotecas que leen el mismo archivo y no coinciden
Cada aplicación de Android viaja dentro de un archivo ZIP, y cada entrada declara dos datos: el método de compresión y el tamaño que ocupará al descomprimirse. Android admite dos métodos, guardado sin comprimir y comprimido. El campo admite muchos valores más, y ahí se abre la grieta de GhostMap.
Una biblioteca del sistema, libziparchive, revisa que el tamaño declarado no supere el espacio real del archivo, pero solo en las entradas marcadas como guardadas sin comprimir. La otra, libandroidfw, pregunta al revés: trata como guardada a toda entrada no marcada como comprimida y la carga en memoria con el tamaño declarado, sin esa revisión. Una entrada con un tercer valor pasa entre las dos reglas y nadie le mide el tamaño.
El resultado se vio en la prueba: un APK de 8.408 bytes quedó cargado sobre unos 16 MB de memoria. Leer fuera del final real del archivo provoca un SIGBUS, la señal con la que el procesador detiene un proceso que toca memoria inválida, y ese proceso muere en el acto. Si el archivo dañado es el manifiesto, cae el instalador. Si es un recurso que system_server, el proceso que sostiene casi todo Android, lee al arrancar, cae system_server. Y al volver, lee el mismo recurso y cae otra vez.
Silviu Stahie, analista de Bitdefender, explicó a Help Net Security la diferencia con trabajos anteriores de Zimperium sobre APK mal formados: aquellos archivos tumbaban las herramientas de análisis, pero corrían bien en el teléfono. La vuelta de su equipo lleva esa lectura hasta el proceso del sistema. El error vive en AOSP, el código base abierto de Android, probado desde Android 10 hasta la versión más reciente; al estar en la base, no pasó por teléfonos de otros fabricantes. Su antivirus lo detecta como Android.Riskware.Ghostmap.rA.
Google lo dejó fuera de la actualización de seguridad
Bitdefender reportó el caso a Google el 20 de agosto por el programa de recompensas de Android. La respuesta cerró el reporte como «Won’t Fix (Not Reproducible)», no se corrige por no reproducible, y lo declaró fuera del alcance del programa. El 25 de agosto llegó el segundo reporte, ampliado y con una prueba funcional del bucle persistente. Google repitió la línea: fuera del alcance de una corrección de seguridad, y traslado al equipo de funciones para una versión futura.
Esa respuesta deja el caso GhostMap Android sin CVE, el identificador que reciben las vulnerabilidades registradas, y sin parche anunciado para el bucle de arranque. Otros fallos de Android sí reciben corrección mensual, como el fallo crítico de Android que obligó a publicar el parche de noviembre. BleepingComputer pidió a Google su postura y esperaba respuesta al publicar su nota.
La investigación recuerda un antecedente incómodo. En noviembre de 2016, Google corrigió el CVE-2016-6724, una versión más débil del mismo error, que dejaba el equipo reiniciando sin parar y exigía restablecerlo de fábrica; lo calificó de gravedad moderada. Bitdefender sostiene que las guías de gravedad que Google publica hoy describen esa misma condición, un daño persistente, con calificación alta.
Del lado del riesgo, Bitdefender marca el límite: no ha visto a nadie usar la técnica contra víctimas reales. Los escenarios que dibuja son teóricos: una app falsa que inutiliza el teléfono, la amenaza de perder los datos como presión para extorsionar, y archivos mal formados que estorban a las herramientas que inspeccionan aplicaciones. El único freno está en la instalación: las herramientas de seguridad de terceros pueden avisar, pero no tienen permiso para bloquearla.
Para quien lleva un Android en el bolsillo, la protección práctica es la conocida: instalar desde tiendas y fuentes confiables, desconfiar de cualquier APK que llegue por mensaje o por una página de descargas, y mantener una copia de seguridad al día. Con GhostMap no hay datos robados ni cuentas tocadas; el daño es un teléfono que se reinicia solo, y el precio de recuperarlo es todo lo que no tenga copia fuera del equipo.
Fuente: Bitdefender Labs
