Vulnerabilità WebP usata da Pegasus ha minacciato browser, app e sistemi grafici globali

Google analizza CVE-2023-4863, il bug WebP critico usato per attacchi mirati via immagini, sfruttato da APT contro dispositivi mobili.

da Livio Varriale
0 commenti 4 minuti leggi

Google Project Zero pubblica un’analisi dettagliata della vulnerabilità CVE-2023-4863, una delle più gravi degli ultimi anni legate al formato di immagine WebP, che ha costretto a un aggiornamento urgente quasi simultaneo dell’intero ecosistema browser e software grafico globale. L’approfondimento rivela come un bug critico di parsing nella libreria libwebp abbia permesso l’esecuzione arbitraria di codice, con potenziali conseguenze devastanti su sistemi desktop, mobile e server.

image 450
Vulnerabilità WebP usata da Pegasus ha minacciato browser, app e sistemi grafici globali 9

Il titolo scelto dal team – “Blasting Past WebP” – è un riferimento diretto all’impatto sistemico che questo bug ha avuto sul Web moderno e sull’interoperabilità tra applicazioni.

Origine della falla: un overflow di heap generato da calcoli errati nel parsing dei frame VP8L

image 451
Vulnerabilità WebP usata da Pegasus ha minacciato browser, app e sistemi grafici globali 10

Il bug all’origine del CVE-2023-4863 risiede in una parte molto specifica della libreria libwebp, la funzione ReadImage() incaricata di processare immagini nel sottotipo VP8L, cioè WebP lossless. Il codice vulnerabile riguarda il calcolo della larghezza effettiva di un frame con metadati associati, in particolare quando si attiva il flag di blending e viene applicata la modalità “replace”. In queste condizioni, il decoder calcola erroneamente lo spazio di memoria da allocare, generando un heap buffer overflow.

Nella pratica, un’immagine WebP appositamente costruita poteva:

Annunci
  • aggirare i controlli iniziali del decoder,
  • forzare una scrittura fuori dai limiti dell’heap,
  • sovrascrivere dati critici,
  • eseguire codice con i privilegi del processo.

Il problema è stato individuato indipendentemente sia da Apple Security Engineering, sia da Citizen Lab, che l’ha osservato in exploit attivi contro dispositivi Apple e Android. Project Zero ha quindi condotto un’analisi retroattiva, dimostrando che il bug era presente sin dal 2010, quando la funzione ReadImage() venne introdotta.

Impatto sistemico: da Chromium a Firefox, da GIMP a Telegram

A rendere critica la falla è stata la sua onnipresenza. WebP è oggi supportato da:

  • tutti i principali browser (Chrome, Firefox, Safari, Edge, Opera)
  • app desktop (Telegram, Discord, GIMP, Affinity, Inkscape)
  • framework di visualizzazione immagini (Electron, Flutter, Qt, Skia, Cairo)

Questo ha comportato una risposta coordinata tra decine di vendor, ognuno dei quali ha dovuto aggiornare i binari della libreria libwebp o ricompilare i propri pacchetti con versioni corrette, spesso in tempi record. Google Chrome ha rilasciato una patch immediata (build 116.0.5845.187), seguita da Firefox (117.0.1) e Safari tramite un aggiornamento del framework ImageIO.

Nel caso di Electron, è stato necessario rilasciare patch per tutte le versioni supportate, con un impatto diretto su app multipiattaforma sviluppate da terzi. Anche il mondo Android ha reagito con urgenza, includendo il fix nei Google Play system updates per rendere la patch disponibile anche senza aggiornare l’intero firmware.

Conseguenze sulla sicurezza: exploit già attivi e attacchi mirati

La falla è stata attivamente sfruttata, con exploit utilizzati per installare spyware su dispositivi mobili, soprattutto nei confronti di giornalisti, attivisti e dissidenti. Citizen Lab ha attribuito gli attacchi a gruppi avanzati sponsorizzati da stati, e ha confermato che il payload era distribuito tramite immagini WebP apparentemente innocue inviate su piattaforme di messaggistica.

image 452
Vulnerabilità WebP usata da Pegasus ha minacciato browser, app e sistemi grafici globali 11

Gli exploit approfittavano della possibilità di iniettare codice direttamente nella sandbox del browser, o, in ambito mobile, di bypassare la protezione SECCOMP e accedere alla memoria del kernel tramite escalation.

Google stima che milioni di sistemi siano stati vulnerabili, con impatti potenziali anche su soluzioni server-side (es. sistemi di compressione CDN, scanner antivirus, plugin di visualizzazione documenti) che elaboravano file WebP in background.

Mitigazione e lezione tecnica: l’importanza delle librerie isolate e dei test fuzzing

L’analisi post-mortem mostra come il bug avrebbe potuto essere intercettato con strumenti di fuzzing più approfonditi, sebbene la natura specifica del problema – legato a un caso limite nella combinazione di blending e metadati – lo abbia reso difficile da identificare.

Project Zero raccomanda:

  • l’utilizzo di sandbox per ogni decoder multimediale,
  • la preferenza per librerie con moduli separati e isolati per formati diversi,
  • un investimento continuo nel fuzzing guidato su input complessi.

Da questo incidente emerge anche un’altra considerazione: molti sistemi integrano versioni statiche di libwebp, rendendo difficile l’aggiornamento centralizzato. Ciò ha ritardato la patch in numerosi casi, specie per progetti open source o applicazioni legacy.

Implicazioni future: controllo centralizzato del parsing e revisione dei formati supportati

In seguito all’incidente, diverse piattaforme stanno rivalutando l’uso del formato WebP in ambienti critici. Mozilla ha suggerito di introdurre una whitelist per formati supportati in contesti privilegiati, mentre Apple ha annunciato un piano per isolare i decoder immagine in processi sandboxati separati a partire da iOS 18 e macOS 15.

Ti è piaciuto questo contenuto? Iscriviti alla nostra newsletter settimanale

Seguici su Google News iscrivendoti al canale

Il messaggio chiave di Project Zero è chiaro: un singolo bug in un formato di immagine può compromettere l’intero stack software moderno. Il caso CVE-2023-4863 dimostra che l’interoperabilità ha un costo, e che i decoders multiformato devono essere trattati come componenti a rischio elevato, al pari dei motori JavaScript o dei parser PDF.

Si può anche come

MatriceDigitale.it – Copyright © 2024, Livio Varriale – Registrazione Tribunale di Napoli n° 60 del 18/11/2021. – P.IVA IT10498911212 Privacy Policy e Cookies

Developed with love by Giuseppe Ferrara