Исследователи из команды Google Project Zero подробно разобрали технику создания рабочего эксплоита, позволяющего удалённо выполнить свой код с правами ядра Linux, через отправку SMS- или RCS-сообщения со специально оформленным звуковым вложением. Атака осуществляется без выполнения каких-либо действий пользователем, в том числе не требует просмотра или прослушивания полученного сообщения.
В эксплоите задействованы две уязвимости: в библиотеке Dolby Unified Decoder (CVE-2025-54957) и драйвере bigwave для ядра Linux (CVE-2025-36934). Ранее для эксплуатации уязвимостей в кодеках было необходимо, чтобы пользователь прослушал или просмотрел полученный вредоносный контент. После интеграции AI-помощников в последних выпусках Android-прошивок полученный мультимедийный контент автоматически декодируется после получения, что существенно увеличивает поверхность атак, не требующих действий от пользователя (0-click). В контексте звуковых SMS- и RCS-сообщений, приложение Google Messages при помощи сервиса com.google.android.tts автоматически формирует транскрипцию для применения к звуковым сообщениям текстового поиска, что позволяет без участия пользователя эксплуатаировать уязвимости в имеющихся звуковых кодеках.
Проблема в Dolby Unified Decoder вызвана целочисленным переполнением при расчёте размера буфера под обрабатываемые структуры данных syncframe, что может использоваться для записи за пределы выделенного буфера. В результате переполнения может быть перезаписан указатель, используемый при обработке следующего синхронизирующего кадра, изменение которого, в свою очередь, позволяет перезаписать контролируемыми атакующим данными указатель на функцию и организовать выполнение своего кода с правами «mediacodec», ограниченными через SELinux.
Для эксплуатации ядра Linux была задействована уязвимость в драйвере bigwave, отвечающем за работу с символьным устройством /dev/bigwave , к которому был открыт доступ из SELinux-контекста «mediacodec». Уязвимость позволяла перезаписать структуры ядра через манипуляции с ioctl-вызовом BIGO_IOCX_PROCESS и добиться выполнения кода с правами ядра.
Уязвимость в библиотеке Dolby Unified Decoder (libcodec2_soft_ddpdec.so), предоставляющей функции для декодирования форматов Dolby Digital (DD, AC-3) и Dolby Digital Plus (DD+, EAC-3), не специфична для Android и прошивки к Pixel 9, и также проявляется в других платформах (Samsung S24, MacBook Air M1, iPhone 17 Pro, Windows, ChromeOS и т.п.). В Android-репозитории AOSP и прошивке к Samsung S24 к процессам, запускаемым в контексте mediacodec, применяется seccomp-фильтр системных вызовов, затрудняющий дальнейшую эксплуатацию уязвимостей в ядре. В прошивке для Pixel 9 подобный фильтр отсутствовал. От атаки мог бы защитить механизм Memory Tagging (MTE), но он доступен для устройств Pixel 8+ только в форме опции, активируемой при включении режима «Advanced Protection». В macOS и iOS эксплуатацию затрудняет сборка библиотеки с флагом «-fbounds-safet», подставляющим дополнительные проверки выхода за границу массивов, которые снижают производительность.
Исследователями отдельно разбираются проблемы с доведением до пользователей исправления уязвимости в Dolby Unified Decoder. Сведения об уязвимости были раскрыты публично за 82 дня до доведения исправления до пользователей устройств Pixel. Компания Dolby была информирована о проблеме 26 июня 2025 года. Первое бинарное исправление было выпущено 18 сентября для ChromeOSб, но для устройств Android компания Dolby предоставила бинарные патчи лишь 8 октября. 15 октября была публично раскрыта информация об уязвимости. 12 ноября исправление выпустил Samsung и только 5 января было опубликовано исправление для устройств Pixel. Распространение патча для всех Android-устройств потребовало 139 дней.
В Dolby Unified Decoder уязвимость была выявлена менее чем за два дня, а в драйвере BigWave — менее чем за день рецензирования. Трудозатраты на разработку рабочего эксплоита для уязвимости в Dolby Unified Decoder оценены в 8 недель при работе одного исследователя, а для BigWave — 3 недели. В опубликованном 14 октября отчёте компании Dolby уязвимость в Dolby Unified Decoder была помечена как имеющая незначительный уровень опасности, несмотря на передачу деталей о разрабатываемом эксплоите. Уязвимости в BigWave присвоили в Android средний уровень опасности (Moderate), мотивировав это тем, что атака возможна только из привилегированного контента и недоступна для непривилегированных контекстов (спустя три месяца статус уязвимости был изменён на «опасная проблема»).
Источник: opennet.ru
