Investigadores del equipo de Google Project Zero han desglosado en detalle la técnica para crear un exploit funcional que permite ejecutar código de forma remota con privilegios del núcleo de Linux, a través del envío de un mensaje SMS o RCS con un archivo de audio especialmente diseñado. El ataque se lleva a cabo sin que el usuario realice ninguna acción, ni siquiera requiere ver o escuchar el mensaje recibido.
El exploit implica dos vulnerabilidades: en la biblioteca Dolby Unified Decoder (CVE-2025-54957) y en el controlador bigwave para el núcleo de Linux (CVE-2025-36934). Anteriormente, para explotar vulnerabilidades en los códecs, era necesario que el usuario escuchara o viera el contenido malicioso recibido. Tras la integración de asistentes de IA en las últimas versiones del firmware de Android, el contenido multimedia recibido se decodifica automáticamente al ser recibido, lo que aumenta considerablemente la superficie de ataque, sin requerir acciones del usuario (0-click). En el contexto de los mensajes de audio SMS y RCS, la aplicación Google Messages, mediante el servicio com.google.android.tts, genera automáticamente la transcripción para aplicar a los mensajes de audio en la búsqueda de texto, lo que permite explotar vulnerabilidades en los códecs de audio existentes sin la intervención del usuario.
El problema en el Dolby Unified Decoder es causado por un desbordamiento de enteros al calcular el tamaño del búfer para las estructuras de datos syncframe procesadas, lo que puede usarse para escribir fuera del búfer asignado. Como resultado del desbordamiento, se puede sobrescribir un puntero utilizado al procesar el siguiente cuadro de sincronización, cuyo cambio, a su vez, permite sobrescribir un puntero a una función con datos controlados por el atacante y organizar la ejecución de su código con privilegios de «mediacodec», restringidos a través de SELinux.
Para explotar el núcleo de Linux, se aprovechó una vulnerabilidad en el controlador bigwave, que gestiona el dispositivo de caracteres /dev/bigwave, al cual se le otorgó acceso desde el contexto SELinux «mediacodec». La vulnerabilidad permitía sobrescribir estructuras del núcleo mediante manipulaciones con la llamada ioctl BIGO_IOCX_PROCESS y lograr la ejecución de código con privilegios del núcleo.
Una vulnerabilidad en la biblioteca Dolby Unified Decoder (libcodec2_soft_ddpdec.so), que proporciona funciones para decodificar formatos Dolby Digital (DD, AC-3) y Dolby Digital Plus (DD+, EAC-3), no es específica de Android y del firmware del Pixel 9, y también se manifiesta en otras plataformas (Samsung S24, MacBook Air M1, iPhone 17 Pro, Windows, ChromeOS, etc.). En el repositorio AOSP de Android y en el firmware del Samsung S24, se aplica un filtro seccomp a los procesos que se ejecutan en el contexto de mediacodec, lo que dificulta la explotación de vulnerabilidades en el núcleo. En el firmware del Pixel 9, dicho filtro no estaba presente. Desde ataques podría proteger el mecanismo de Memory Tagging (MTE), pero este está disponible para dispositivos Pixel 8+ solo en forma de opción, activándose al encender el modo de "Protección Avanzada". En macOS e iOS, la explotación se dificulta mediante la compilación de la biblioteca con la opción "-fbounds-safet", que introduce verificaciones adicionales para evitar desbordamientos de arreglos que reducen el rendimiento.
Los investigadores están analizando por separado los problemas para llegar a los usuarios una corrección para la vulnerabilidad en el Dolby Unified Decoder. La información sobre la vulnerabilidad fue divulgada públicamente 82 días antes de que se proporcionara la corrección a los usuarios de dispositivos Pixel. La empresa Dolby fue informada sobre el problema el 26 de junio de 2025. La primera corrección binaria se lanzó el 18 de septiembre para ChromeOS, pero para los dispositivos Android, Dolby proporcionó los parches binarios solo el 8 de octubre. El 15 de octubre se hizo pública la información sobre la vulnerabilidad. El 12 de noviembre, Samsung lanzó la corrección y solo el 5 de enero se publicó la corrección para dispositivos Pixel. La distribución del parche para todos los dispositivos Android tomó 139 días.
Se identificó una vulnerabilidad en Dolby Unified Decoder en menos de dos días, y en el controlador BigWave en menos de un día de revisión. Se estima que los esfuerzos de desarrollo para crear un exploit funcional para la vulnerabilidad en Dolby Unified Decoder tomarán 8 semanas con un investigador, y para BigWave, 3 semanas. En el informe publicado el 14 de octubre por Dolby, la vulnerabilidad en Dolby Unified Decoder se marcó como de bajo nivel de peligro, a pesar de que se compartieron detalles sobre el exploit en desarrollo. A la vulnerabilidad en BigWave se le asignó un nivel de peligro moderado en Android, argumentando que el ataque solo puede llevarse a cabo desde contenido privilegiado y no está disponible en contextos no privilegiados (tres meses después, el estado de la vulnerabilidad cambió a 'problema de alta peligrosidad').
Fuente: opennet.ru
