I ricercatori del team Google Project Zero hanno analizzato in dettaglio la tecnica per creare un exploit funzionante che permette di eseguire codice con i privilegi del kernel Linux da remoto, tramite l'invio di un SMS o di un messaggio RCS con un allegato sonoro appositamente formattato. L'attacco avviene senza che l'utente esegua alcuna azione, non richiedendo nemmeno la visualizzazione o l'ascolto del messaggio ricevuto.
L'exploit sfrutta due vulnerabilità: nella libreria Dolby Unified Decoder (CVE-2025-54957) e nel driver bigwave per il kernel Linux (CVE-2025-36934). In passato, per sfruttare le vulnerabilità nei codec, era necessario che l'utente ascoltasse o visualizzasse il contenuto dannoso ricevuto. Con l'integrazione degli assistenti AI nelle ultime versioni del sistema operativo Android, il contenuto multimediale ricevuto viene automaticamente decodificato al momento della ricezione, aumentando notevolmente la superficie degli attacchi che non richiedono azioni da parte dell'utente (0-click). Nel contesto dei messaggi audio SMS e RCS, l'applicazione Google Messages, tramite il servizio com.google.android.tts, genera automaticamente la trascrizione per applicarla ai messaggi audio per la ricerca testuale, consentendo di sfruttare le vulnerabilità dei codec audio senza il coinvolgimento dell'utente.
Il problema nel Dolby Unified Decoder è causato da un overflow aritmetico durante il calcolo delle dimensioni del buffer per le strutture dati syncframe elaborate, che può essere utilizzato per scrivere oltre il buffer allocato. Di conseguenza, l'overflow può sovrascrivere un puntatore utilizzato per gestire il prossimo frame di sincronizzazione, il cui cambiamento, a sua volta, consente di sovrascrivere il puntatore a una funzione con dati controllati dall'attaccante e organizzare l'esecuzione del proprio codice con i privilegi 'mediacodec', limitati attraverso SELinux.
Per sfruttare il kernel Linux è stata utilizzata una vulnerabilità nel driver bigwave, responsabile della gestione del dispositivo carattere /dev/bigwave, al quale era stato aperto l'accesso dal contesto SELinux 'mediacodec'. La vulnerabilità permetteva di sovrascrivere le strutture del kernel tramite manipolazioni con la chiamata ioctl BIGO_IOCX_PROCESS e di ottenere l'esecuzione di codice con privilegi kernel.
Una vulnerabilità nella libreria Dolby Unified Decoder (libcodec2_soft_ddpdec.so), che fornisce funzioni per la decodifica dei formati Dolby Digital (DD, AC-3) e Dolby Digital Plus (DD+, EAC-3), non è specifica per Android e il firmware del Pixel 9, ma si manifesta anche su altre piattaforme (Samsung S24, MacBook Air M1, iPhone 17 Pro, Windows, ChromeOS, ecc.). Nel repository AOSP di Android e nel firmware del Samsung S24, viene applicato un filtro seccomp per le chiamate di sistema ai processi in esecuzione nel contesto di mediacodec, rendendo difficile l'ulteriore sfruttamento delle vulnerabilità nel kernel. Nel firmware per il Pixel 9, un filtro simile era assente. Da attacchi potrebbe proteggere il meccanismo Memory Tagging (MTE), ma è disponibile per i dispositivi Pixel 8+ solo come opzione, attivabile all'attivazione della modalità «Protezione avanzata». In macOS e iOS, lo sfruttamento è reso difficile dalla compilazione della libreria con il flag «-fbounds-safet», che inserisce controlli aggiuntivi per il superamento dei limiti degli array, riducendo le prestazioni.
I ricercatori analizzano separatamente i problemi relativi alla distribuzione delle patch di vulnerabilità nel Dolby Unified Decoder agli utenti. Le informazioni sulla vulnerabilità sono state rese pubbliche 82 giorni prima che la correzione fosse fornita agli utenti dei dispositivi Pixel. La società Dolby è stata informata del problema il 26 giugno 2025. La prima correzione binaria è stata rilasciata il 18 settembre per ChromeOS, ma per i dispositivi Android, Dolby ha fornito patch binarie solo l'8 ottobre. Il 15 ottobre sono state rese pubbliche le informazioni sulla vulnerabilità. Il 12 novembre, Samsung ha rilasciato la correzione e solo il 5 gennaio è stata pubblicata la correzione per i dispositivi Pixel. La distribuzione della patch per tutti i dispositivi Android ha richiesto 139 giorni.
La vulnerabilità nel Dolby Unified Decoder è stata identificata in meno di due giorni, mentre in BigWave in meno di un giorno di revisione. Si stima che il tempo necessario per sviluppare un exploit funzionante per la vulnerabilità nel Dolby Unified Decoder sia di 8 settimane con un singolo ricercatore, e per BigWave è di 3 settimane. Nel rapporto pubblicato il 14 ottobre, la vulnerabilità nel Dolby Unified Decoder è stata classificata come di basso livello di pericolo, nonostante la trasmissione di dettagli sul relativo exploit in fase di sviluppo. La vulnerabilità in BigWave ha ricevuto una classificazione media di pericolo (Moderato) in Android, giustificando che l'attacco è possibile solo da contenuti privilegiati e non accessibile in contesti non privilegiati (dopo tre mesi, lo stato della vulnerabilità è stato cambiato in "problema pericoloso").
Fonte: opennet.ru
