
Prova de conceito de exploit para CVE-2025-54957, uma gravação fora dos limites no Decodificador Unificado DDPlus da Dolby, demonstrando uma falha de 0-clique no Android por meio de mensagens de áudio RCS.
Quando um arquivo é processado pelo DDPlus Unified Decoder da Dolby, uma gravação fora dos limites é possível quando os dados de evolução são processados. O decodificador grava informações de evolução em um buffer contíguo grande, semelhante a um heap, contido por uma struct maior, e o cálculo de comprimento para uma gravação pode transbordar devido ao wrap de inteiros. Isso faz com que o buffer 'allocated' seja pequeno demais, e a verificação de fora dos limites da gravação subsequente se torne ineficaz. Isso pode permitir que membros posteriores da struct sejam sobrescritos, incluindo um ponteiro que é gravado quando o próximo syncframe é processado.
No Android, esta é uma vulnerabilidade de 0-clique, pois o Android decodifica localmente todas as mensagens de áudio recebidas e anexos de áudio para transcrição, usando este decodificador, sem que o usuário interaja com o dispositivo.
Este código está presente no MacOS, mas não está claro se este bug é alcançável devido a verificações de pré-processamento.
Atualizaremos este bug à medida que investigarmos mais dispositivos afetados por esta vulnerabilidade.
dolby_android_crash.mp4 -- um arquivo containerizado que causa diretamente o crash no Android dolby_android_crash.ec3 -- o bitstream que causa o crash no Android dolby_evo_crash32.ec3 -- um bitstream que causa o crash em alvos de 32 bits (o bitstream acima só causa crash em alvos de 64 bits)
A maneira mais fácil de reproduzir este problema é reproduzir dolby_android_crash.mp4 em um dispositivo Android.
Para reproduzir o problema como 0-clique:
Configure um dispositivo Android de teste para poder enviar mensagens RCS para o dispositivo Android alvo
Abra o RCS no dispositivo de teste e crie uma mensagem de voz segurando o ícone de mensagem de voz, mas não envie
Execute:
adb -s TEST_DEVICE shell ls -l /data/user/0/com.google.android.apps.messaging/cache/mediascratchspace/
e anote o nome do arquivo gravado mais recentemente (alguns arquivos terão extensões *.m4a, este arquivo é o que não tem extensão)
adb -s TEST_DEVICE push dolby_android_crash.mp4 /data/user/0/com.google.android.apps.messaging/cache/mediascratchspace/FILENAME
Envie a mensagem de áudio
O processo C2 do dispositivo alvo deve sofrer crash.
Desde o registro deste bug, investigamos quais dispositivos integram o Dolby Unified Decoder. Reproduzimos um crash usando os arquivos acima nos seguintes dispositivos:
A Microsoft publicou um aviso sobre este problema: https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-54957 O ChromeOS também corrigiu este problema nos binários para a seguinte versão, embora o bug não seja mencionado no aviso: https://chromereleases.googleblog.com/2025/09/stable-channel-update-for-chromeos_18.html