
Preuve de concept pour CVE-2025-54957, une écriture hors limites dans le décodeur unifié DDPlus de Dolby, démontrant un crash sans interaction sur Android via des messages audio RCS.
Lorsqu'un fichier est traité par le Décodeur Unifié DDPlus de Dolby, une écriture hors limites est possible lors du traitement des données d'évolution. Le décodeur écrit les informations d'évolution dans un grand tampon contigu de type tas, contenu dans une structure plus large, et le calcul de longueur pour une écriture peut déborder en raison d'un dépassement d'entier. Cela rend le tampon « alloué » trop petit, et la vérification hors limites de l'écriture suivante devient inefficace. Cela peut permettre d'écraser les membres ultérieurs de la structure, y compris un pointeur qui est écrit lors du traitement du prochain syncframe.
Sur Android, il s'agit d'une vulnérabilité 0-clic, car Android décode localement tous les messages audio entrants et les pièces jointes audio pour la transcription, en utilisant ce décodeur, sans que l'utilisateur n'interagisse avec l'appareil.
Ce code est présent sur MacOS, mais il n'est pas clair si ce bug est atteignable en raison des vérifications de prétraitement.
Nous mettrons à jour ce bug au fur et à mesure que nous étudierons les appareils affectés par cette vulnérabilité.
dolby_android_crash.mp4 -- un fichier conteneurisé qui provoque directement le crash sur Android dolby_android_crash.ec3 -- le flux binaire provoquant le crash sur Android dolby_evo_crash32.ec3 -- un flux binaire qui provoque le crash sur les cibles 32 bits (le flux ci-dessus ne provoque le crash que sur les cibles 64 bits)
Le moyen le plus simple de reproduire ce problème est de lire dolby_android_crash.mp4 sur un appareil Android.
Pour reproduire le problème en 0-clic :
Configurez un appareil Android de test pour pouvoir envoyer des messages RCS à l'appareil Android cible
Ouvrez RCS sur l'appareil de test et créez un message vocal en maintenant l'icône du message vocal enfoncée, mais ne l'envoyez pas
Exécutez :
adb -s TEST_DEVICE shell ls -l /data/user/0/com.google.android.apps.messaging/cache/mediascratchspace/
et notez le nom du fichier le plus récemment écrit (certains fichiers auront des extensions *.m4a, ce fichier est celui sans extension)
adb -s TEST_DEVICE push dolby_android_crash.mp4 /data/user/0/com.google.android.apps.messaging/cache/mediascratchspace/FILENAME
Envoyez le message audio
Le processus C2 de l'appareil cible devrait planter.
Depuis le dépôt de ce bug, nous avons étudié quels appareils intègrent le Décodeur Unifié Dolby. Nous avons reproduit un crash en utilisant les fichiers ci-dessus sur les appareils suivants :
Microsoft a publié un avis sur ce problème : https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-54957 ChromeOS a également corrigé ce problème dans les binaires de la version suivante, bien que le bug ne soit pas mentionné dans l'avis : https://chromereleases.googleblog.com/2025/09/stable-channel-update-for-chromeos_18.html