Výzkumníci z týmu Google Project Zero podrobně analyzovali techniku, jak vytvořit funkční exploit, který umožňuje vzdálené spuštění vlastního kódu s právem jádra Linuxu prostřednictvím zaslání SMS nebo RCS zprávy se speciálně upraveným zvukovým přílohou. Útok probíhá bez provedení jakýchkoli akcí uživatelem, včetně nutnosti prohlížet nebo poslouchat přijatou zprávu.
V exploitu jsou zapojeny dvě zranitelnosti: v knihovně Dolby Unified Decoder (CVE-2025-54957) a ovladači bigwave pro jádro Linuxu (CVE-2025-36934). Dříve bylo pro využití zranitelností v kodecích nutné, aby uživatel poslechl nebo prohlédl přijatý škodlivý obsah. Po integraci AI pomocníků v posledních verzích Androidu se přijatý multimediální obsah automaticky dekóduje po příjmu, což výrazně zvyšuje útočnou plochu, která nevyžaduje žádné akce od uživatele (0-click). V kontextu zvukových zpráv SMS a RCS aplikace Google Messages pomocí služby com.google.android.tts automaticky vytváří transkripce pro použití na zvukových zprávách vyhledávání textu, což umožňuje bez účasti uživatele zneužívat zranitelnosti v existujících zvukových kodecích.
Problém v Dolby Unified Decoder je způsoben přetečením celého čísla při výpočtu velikosti vyrovnávací paměti pro zpracovávané datové struktury syncframe, což může být použito k zápisu mimo vyhrazenou vyrovnávací paměť. V důsledku přetečení může být přepsán ukazatel používaný při zpracování následujícího synchronizačního snímku, jehož změna umožňuje přepsat ukazatel na funkci „kontrolovanými útočníkem daty“ a realizovat spuštění vlastního kódu s právy „mediacodec“, omezenými prostřednictvím SELinux.
Pro využití jádra Linuxu byla zapojena zranitelnost v ovladači bigwave, který má na starosti práci s symbolickým zařízením /dev/bigwave, ke kterému byl otevřen přístup z kontextu SELinux „mediacodec“. Zranitelnost umožňovala přepsat struktury jádra prostřednictvím manipulace s ioctl voláním BIGO_IOCX_PROCESS a dosáhnout provádění kódu s právy jádra.
Zranitelnost v knihovně Dolby Unified Decoder (libcodec2_soft_ddpdec.so), která poskytuje funkce pro dekódování formátů Dolby Digital (DD, AC-3) a Dolby Digital Plus (DD+, EAC-3), není specifická pro Android a firmwary Pixel 9, ale objevuje se také na jiných platformách (Samsung S24, MacBook Air M1, iPhone 17 Pro, Windows, ChromeOS atd.). V repozitáři AOSP pro Android a ve firmwaru Samsung S24 je na procesy spuštěné v kontextu mediacodec aplikován seccomp filtr systémových volání, který ztěžuje další zneužití zranitelností v jádře. Ve firmwaru pro Pixel 9 tento filtr chyběl. útoky by mohl chránit mechanismus Memory Tagging (MTE), ale je dostupný pro zařízení Pixel 8+ pouze ve formě volby, která se aktivuje při zapnutí režimu „Advanced Protection.“ V macOS a iOS ztěžuje zneužití kompilace knihovny s příznakem „-fbounds-safet“, který zavádí další kontroly výstupu z hranice polí, jež snižují výkon.
Výzkumníci se samostatně zabývají problémy s distribucí opravy zranitelnosti v Dolby Unified Decoder uživatelům. Informace o zranitelnosti byly zveřejněny veřejně 82 dní před tím, než byla oprava k dispozici uživatelům zařízení Pixel. Společnost Dolby byla o problému informována 26. června 2025. První binární oprava byla vydána 18. září pro ChromeOS, ale pro zařízení Android poskytla společnost Dolby binární patche až 8. října. Dne 15. října byly veřejně odhaleny informace o zranitelnosti. 12. listopadu vydal opravu Samsung a teprve 5. ledna byla publikována oprava pro zařízení Pixel. Distribuce patche pro všechna zařízení s Androidem trvala 139 dní.
Zranitelnost v Dolby Unified Decoder byla odhalena za méně než dva dny, zatímco u ovladače BigWave to bylo méně než za jeden den recenzování. Práce na vývoji funkčního exploit pro zranitelnost v Dolby Unified Decoder je odhadována na 8 týdnů, zatímco pro BigWave na 3 týdny. V publikované zprávě společnosti Dolby ze 14. října byla zranitelnost v Dolby Unified Decoder označena jako málo nebezpečná, i přes předání detailů o vyvíjeném exploit. Zranitelnosti v BigWave byla v Androidu přidělena střední úroveň nebezpečnosti (Moderate), a to kvůli tomu, že útok je možný pouze z privilegovaného obsahu a není dostupný pro neprivilegované kontexty (po třech měsících byl status zranitelnosti změněn na 'nebezpečný problém').
Zdroj: opennet.ru
