Noticia Exploit Zero-Click en Pixel 9: Vulnerabilidad en Dolby y Kernel Linux

exploit-zero-click-pixel-9-dolby-decoder-kernel-linux-project-zero


El equipo de investigación de seguridad de Google, Project Zero, ha documentado una de las cadenas de ataque más sofisticadas de los últimos tiempos dirigida al firmware de Android.

Los investigadores han demostrado cómo es posible comprometer un dispositivo Pixel 9 de forma remota y sin interacción del usuario (ataque zero-click) mediante el envío de un simple mensaje SMS o RCS con un archivo de audio adjunto. La gravedad del hallazgo radica en que la víctima no necesita reproducir el audio; la mera recepción del mensaje desencadena el compromiso total del sistema.

El vector de entrada: Transcripción automática​


La puerta de entrada para este ataque reside en la integración de funciones inteligentes en el sistema operativo. En las versiones modernas de Android, la aplicación Mensajes de Google intenta generar automáticamente una transcripción de los audios recibidos para facilitar la búsqueda de texto o la accesibilidad. Este proceso invoca al servicio com.google.android.tts, el cual, sin intervención humana, procesa el archivo multimedia utilizando los códecs del sistema. Es aquí donde los atacantes encontraron una grieta crítica: una vulnerabilidad en la biblioteca Dolby Unified Decoder (UDC), identificada como CVE-2025-54957.

El fallo técnico se encuentra en la gestión de memoria de dicha biblioteca, específicamente en cómo procesa los formatos de entrega de metadatos extensibles (EMDF) dentro de los flujos de audio Dolby Digital Plus. El decodificador sufre de un desbordamiento al calcular el tamaño del búfer necesario para las estructuras de datos. Esta operación matemática errónea permite sobrescribir el puntero utilizado para procesar el siguiente cuadro de sincronización. Al manipular este puntero, un atacante puede redirigir las operaciones de escritura del decodificador hacia áreas de memoria arbitrarias, sobrescribiendo finalmente punteros de función con datos controlados y logrando la ejecución de código.

Ingeniería del exploit: Venciendo a ASLR y Scudo​


Los investigadores mencionan que convertir este desbordamiento en un exploit funcional requirió una ingeniería de software extremadamente compleja para evadir las protecciones modernas de Android, como la Aleatoriedad en la Disposición del Espacio de Direcciones (ASLR) y el asignador de memoria Scudo. Los investigadores descubrieron que el «montón evo» (evo heap) utilizado por el decodificador es una estructura monolítica que se reinicia con cada cuadro. Para lograr una escritura estable, tuvieron que manipular la disposición de la memoria forzando al asignador Scudo a mover el «búfer dinámico».

La técnica implicó corromper deliberadamente los encabezados de los fragmentos de memoria (chunks) de Scudo. Al modificar el tamaño percibido de un fragmento liberado y forzar una reasignación posterior mediante la decodificación secuencial de múltiples archivos de audio, lograron desplazar las estructuras de datos en la memoria. Esto creó el espacio necesario para insertar un contenedor EMDF malicioso justo antes de un encabezado de memoria crítico. A través de una serie de primitivas de escritura denominadas «WRITE DYNAMIC» y «WRITE STATIC», el exploit logra sobrescribir punteros de función específicos en el búfer estático del decodificador.

Sin embargo, lograr la ejecución de código arbitrario presentó un desafío adicional debido a las restricciones de SELinux, que impiden que el proceso del códec haga ejecutable su propia memoria o cargue bibliotecas externas. La solución creativa de los investigadores fue utilizar programación orientada al retorno (ROP) para invocar la función pwrite y escribir el código malicioso directamente. Esto permite a un proceso modificarse a sí mismo, eludiendo las protecciones estándar de escritura y ejecución. Debido a la aleatoriedad de ASLR, el exploit tiene una tasa de éxito de aproximadamente una de cada 255 intentos, lo cual es factible dado que el proceso se reinicia automáticamente tras un fallo, permitiendo al atacante reintentar hasta tener éxito en cuestión de minutos.

Escalada de privilegios: Del códec al Kernel​


Una vez que el atacante tiene control sobre el proceso mediacodec, el siguiente paso es obtener control total del dispositivo. Para ello, se explotó una segunda vulnerabilidad (CVE-2025-36934) en el controlador Bigwave del kernel de Linux. Este controlador gestiona un dispositivo de caracteres accesible desde el contexto del códec multimedia. La vulnerabilidad permitía sobrescribir estructuras del kernel manipulando una llamada ioctl específica, elevando los privilegios del atacante desde un usuario restringido hasta el nivel de kernel.

Es notable que esta ruta de escalada fue posible en el Pixel 9 debido a la ausencia de un filtro de llamadas al sistema (seccomp) restrictivo en el firmware de Google para el proceso de códecs. En contraste, dispositivos como el Samsung S24 aplicaban filtros que, aunque compartían la vulnerabilidad del decodificador Dolby, bloqueaban el acceso al controlador vulnerable del kernel, mitigando la cadena de ataque completa.

Impacto en el ecosistema y tiempos de respuesta​


Este incidente subraya la complejidad de la cadena de suministro de software en dispositivos móviles. La vulnerabilidad en el decodificador Dolby no es exclusiva de Android; afecta también a Windows, ChromeOS y dispositivos Apple. Sin embargo, en los ecosistemas de Apple (macOS e iOS), la explotación se ve neutralizada por la compilación de bibliotecas con el indicador -fbounds-safety, que introduce comprobaciones de límites adicionales.

La gestión de la corrección también reveló discrepancias significativas. Mientras que la vulnerabilidad se descubrió y comunicó a Dolby a mediados de 2025, el parche tardó 139 días en llegar a todos los usuarios finales de Android. Los parches binarios para el ecosistema Android no estuvieron disponibles hasta octubre, y la solución final para los dispositivos Pixel se desplegó recién en enero de 2026, dejando una ventana de exposición considerable para una vulnerabilidad de esta magnitud.

Si estas interesado en poder conocer mas al respecto, puedes consultar los detalles en el siguiente enlace.

Continúar leyendo...