
Prueba de concepto del exploit para CVE-2025-54957, una escritura fuera de los límites en el decodificador unificado DDPlus de Dolby, que demuestra un fallo de 0 clics en Android mediante mensajes de audio RCS.
Cuando un archivo es procesado por el Decodificador Unificado DDPlus de Dolby, es posible una escritura fuera de límites cuando se procesan los datos de evolución. El decodificador escribe la información de evolución en un búfer contiguo grande, similar a un heap, contenido por una estructura más grande, y el cálculo de longitud para una escritura puede desbordarse debido al ajuste de enteros. Esto provoca que el búfer 'asignado' sea demasiado pequeño y que la comprobación de fuera de límites de la escritura posterior sea ineficaz. Esto puede permitir que se sobrescriban miembros posteriores de la estructura, incluido un puntero que se escribe cuando se procesa el siguiente syncframe.
En Android, esta es una vulnerabilidad de 0 clics, ya que Android decodifica localmente todos los mensajes de audio y archivos adjuntos de audio entrantes para transcripción, utilizando este decodificador, sin que el usuario interactúe con el dispositivo.
Este código está presente en MacOS, pero no está claro si este error es alcanzable debido a las comprobaciones de preprocesamiento.
Actualizaremos este error a medida que investiguemos más a fondo los dispositivos afectados por esta vulnerabilidad.
dolby_android_crash.mp4 -- un archivo contenerizado que provoca directamente el fallo en Android dolby_android_crash.ec3 -- el flujo de bits que provoca el fallo en Android dolby_evo_crash32.ec3 -- un flujo de bits que provoca el fallo en objetivos de 32 bits (el flujo de bits anterior solo provoca fallos en objetivos de 64 bits)
La forma más sencilla de reproducir este problema es reproducir dolby_android_crash.mp4 en un dispositivo Android.
Para reproducir el problema como 0 clics:
Configure un dispositivo Android de prueba para poder enviar mensajes RCS al dispositivo Android objetivo
Abra RCS en el dispositivo de prueba y cree un mensaje de voz manteniendo presionado el ícono de mensaje de voz, pero no lo envíe
Ejecute:
adb -s TEST_DEVICE shell ls -l /data/user/0/com.google.android.apps.messaging/cache/mediascratchspace/
y anote el nombre del archivo escrito más recientemente (algunos archivos tendrán extensiones *.m4a, este archivo es el que no tiene extensión)
adb -s TEST_DEVICE push dolby_android_crash.mp4 /data/user/0/com.google.android.apps.messaging/cache/mediascratchspace/FILENAME
Envíe el mensaje de audio
El proceso C2 del dispositivo objetivo debería fallar.
Desde que informamos de este error, hemos investigado qué dispositivos integran el Decodificador Unificado Dolby. Reprodujimos un fallo utilizando los archivos anteriores en los siguientes dispositivos:
Microsoft ha publicado un aviso sobre este problema: https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-54957 ChromeOS también corrigió este problema en los binarios de la siguiente versión, aunque el error no se menciona en el aviso: https://chromereleases.googleblog.com/2025/09/stable-channel-update-for-chromeos_18.html