O vulnerabilitate în firmware-ul Android care permite execuția codului prin trimiterea unui mesaj

Cercetătorii din echipa Google Project Zero au analizat în detaliu tehnica de creare a unui exploit funcțional care permite executarea de cod cu drepturi de kernel Linux prin trimiterea unei mesaje SMS sau RCS cu un atașament audio special conceput. Atacul are loc fără a necesita acțiuni din partea utilizatorului, inclusiv fără a necesita vizualizarea sau ascultarea mesajului primit.

Exploitul implică două vulnerabilități: în biblioteca Dolby Unified Decoder (CVE-2025-54957) și driverul bigwave pentru kernel Linux (CVE-2025-36934). Anterior, pentru exploatarea vulnerabilităților în codec-uri era necesar ca utilizatorul să asculte sau să vizualizeze conținutul malițios primit. După integrarea asistenților AI în cele mai recente versiuni ale firmware-ului Android, conținutul multimedia primit este automat decodat după primire, sporind semnificativ suprafața atacurilor care nu necesită acțiuni din partea utilizatorului (0-click). În contextul mesajelor audio SMS și RCS, aplicația Google Messages folosește serviciul com.google.android.tts pentru a genera automat o transcriere care se aplică mesajelor audio în căutările textuale, permițând exploatarea vulnerabilităților din codec-urile audio existente fără implicarea utilizatorului.

Problema în Dolby Unified Decoder este cauzată de o suprascriere a numărului întreg în timpul calculării dimensiunii buffer-ului pentru structurile de date syncframe procesate, ceea ce poate fi utilizat pentru a scrie în afara buffer-ului alocat. Ca urmare a suprascrierii, poate fi rescris un pointer folosit în procesarea următorului cadru de sincronizare, modificarea căruia, la rândul său, permite rescrierea cu date controlate de atacator a pointerului funcției și organizarea executării codului său cu drepturi „mediacodec”, limitate prin SELinux.

Pentru exploatarea kernel-ului Linux a fost folosită o vulnerabilitate în driverul bigwave, responsabil pentru lucrul cu dispozitivul simbolic /dev/bigwave, la care s-a obținut acces din contextul SELinux „mediacodec”. Vulnerabilitatea permitea rescrierea structurilor kernel-ului prin manipularea apelului ioctl BIGO_IOCX_PROCESS, obținându-se astfel executarea codului cu drepturi de kernel.

O vulnerabilitate în biblioteca Dolby Unified Decoder (libcodec2_soft_ddpdec.so), care oferă funcții pentru decodarea formatelor Dolby Digital (DD, AC-3) și Dolby Digital Plus (DD+, EAC-3), nu este specifică pentru Android și firmware-ul Pixel 9, ci apare și pe alte platforme (Samsung S24, MacBook Air M1, iPhone 17 Pro, Windows, ChromeOS etc.). În repositoriul Android AOSP și firmware-ul pentru Samsung S24, procesele care rulează în contextul mediacodec aplică un filtru seccomp pentru apelurile de sistem, îngreunând exploatarea ulterioară a vulnerabilităților în nucleu. În firmware-ul pentru Pixel 9, un astfel de filtru lipsea. De atacuri ar putea să protejeze mecanismul Memory Tagging (MTE), dar este disponibil pentru dispozitivele Pixel 8+ doar sub formă de opțiune, activată la activarea modului „Advanced Protection”. În macOS și iOS, exploatarea este îngreunată de compilarea bibliotecii cu flag-ul „-fbounds-safety”, care adaugă verificări suplimentare pentru depășirea limitelor array-urilor, reducând performanța.

Cercetătorii analizează în mod separat problemele de disponibilitate a corecției vulnerabilității în Dolby Unified Decoder pentru utilizatori. Informațiile despre vulnerabilitate au fost făcute publice cu 82 de zile înainte de disponibilizarea corecției pentru utilizatorii dispozitivelor Pixel. Compania Dolby a fost informată despre problemă pe 26 iunie 2025. Prima corecție binară a fost lansată pe 18 septembrie pentru ChromeOS, dar pentru dispozitivele Android, compania Dolby a furnizat patch-uri binare abia pe 8 octombrie. Informațiile despre vulnerabilitate au fost dezvăluite public pe 15 octombrie. Pe 12 noiembrie, Samsung a lansat corecția și abia pe 5 ianuarie a fost publicată corecția pentru dispozitivele Pixel. Distribuția patch-ului pentru toate dispozitivele Android a necesitat 139 de zile.

Vulnerabilitatea în Dolby Unified Decoder a fost descoperită în mai puțin de două zile, iar în driverul BigWave — în mai puțin de o zi de revizuire. Timpul necesar pentru dezvoltarea unui exploit funcțional pentru vulnerabilitatea din Dolby Unified Decoder este estimat la 8 săptămâni cu un singur cercetător, iar pentru BigWave — 3 săptămâni. În raportul publicat pe 14 octombrie, compania Dolby a marcat vulnerabilitatea din Dolby Unified Decoder ca având un nivel de risc scăzut, în ciuda transmiterii detaliilor despre exploit-ul în dezvoltare. Vulnerabilității din BigWave i s-a atribuit în Android un nivel mediu de risc (Moderate), motivând acest lucru prin faptul că atacul este posibil doar din conținut privilegiate și nu este accesibil pentru contexte neprivilegiate (după trei luni, statutul vulnerabilității a fost schimbat în „problemă periculoasă”).

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster