
Эксплойт proof-of-concept для CVE-2025-54957, ошибка записи за пределами буфера в унифицированном декодере DDPlus от Dolby, демонстрирующая сбой без взаимодействия с пользователем (0-click) на Android через RCS-аудиосообщения.
Когда файл обрабатывается DDPlus Unified Decoder от Dolby, возможна запись за пределами границ буфера при обработке данных эволюции. Декодер записывает информацию об эволюции в большой непрерывный буфер, похожий на heap, содержащийся в более крупной структуре, и вычисление длины для одной записи может переполниться из-за целочисленного переноса. Это приводит к тому, что «выделенный» буфер оказывается слишком маленьким, а проверка выхода за границы последующей записи становится неэффективной. Это может позволить перезаписать последующие члены структуры, включая указатель, который записывается при обработке следующего синхрокадра.
На Android это уязвимость с нулевым кликом, поскольку Android локально декодирует все входящие аудиосообщения и аудиовложения для транскрипции, используя этот декодер, без взаимодействия пользователя с устройством.
Этот код присутствует на MacOS, но неясно, достижима ли эта ошибка из-за проверок предварительной обработки.
Мы будем обновлять информацию об этой ошибке по мере дальнейшего исследования устройств, затронутых этой уязвимостью.
dolby_android_crash.mp4 — контейнерный файл, который напрямую вызывает сбой в Android dolby_android_crash.ec3 — битовый поток, вызывающий сбой Android dolby_evo_crash32.ec3 — битовый поток, вызывающий сбой на 32-битных устройствах (вышеуказанный битовый поток вызывает сбой только на 64-битных устройствах)
Самый простой способ воспроизвести эту проблему — воспроизвести dolby_android_crash.mp4 на устройстве Android.
Чтобы воспроизвести проблему как атаку с нулевым кликом:
Настройте тестовое устройство Android для возможности отправки RCS-сообщений на целевое устройство Android
Откройте RCS на тестовом устройстве и создайте голосовое сообщение, удерживая значок голосового сообщения, но не отправляйте его
Выполните:
adb -s TEST_DEVICE shell ls -l /data/user/0/com.google.android.apps.messaging/cache/mediascratchspace/
и обратите внимание на имя самого последнего записанного файла (некоторые файлы будут иметь расширения *.m4a, этот файл — тот, что без расширения)
adb -s TEST_DEVICE push dolby_android_crash.mp4 /data/user/0/com.google.android.apps.messaging/cache/mediascratchspace/FILENAME
Отправьте голосовое сообщение
Процесс C2 на целевом устройстве должен завершиться сбоем.
С момента подачи отчёта об этой ошибке мы исследовали, какие устройства интегрируют Dolby Unified Decoder. Мы воспроизвели сбой с помощью вышеуказанных файлов на следующих устройствах:
Microsoft опубликовала рекомендации по этой проблеме: https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-54957 ChromeOS также исправила эту проблему в бинарных файлах для следующего выпуска, хотя ошибка не упоминается в рекомендациях: https://chromereleases.googleblog.com/2025/09/stable-channel-update-for-chromeos_18.html