Изследователи от екипа на 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, което може да се използва за запис извън рамките на заделения буфер. В резултат на преливането може да бъде презаписан указателят, използван при обработка на следващия синхронизиращ кадър, изменение на който от своя страна позволява презапис на контролирани от attacker данни указател на функция и организиране на изпълнение на собствен код с права на '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+ само в формата на опция, активируемa при включване на режима "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
