Google ha assegnato un nuovo identificativo CVE a una grave vulnerabilità di sicurezza nella libreria di immagini libwebp utilizzata per la visualizzazione di immagini nel formato WebP, la quale è stata oggetto di attacchi attivi in ambiente esterno.
libwebp in breve
È una libreria open source sviluppata da Google per la manipolazione e la visualizzazione di immagini nel formato WebP. WebP è un formato di immagine moderno e altamente efficiente che offre una buona qualità delle immagini con dimensioni di file più piccole rispetto ad altri formati di immagini come JPEG e PNG.
La libwebp fornisce agli sviluppatori gli strumenti necessari per codificare, decodificare e manipolare immagini in formato WebP all’interno delle loro applicazioni software.
È ampiamente utilizzata in varie applicazioni web e software per migliorare le prestazioni delle immagini e ridurre i tempi di caricamento delle pagine web.
Le problematiche riscontrate di recente in questa libreria
Identificata come CVE-2023-5129, la problematica è stata valutata con il massimo punteggio di gravità pari a 10.0 nel sistema di valutazione CVSS. Si tratta di un problema radicato nell’algoritmo di codifica Huffman.
Con un file WebP lossless appositamente progettato, libwebp potrebbe scrivere dati fuori dai limiti dell’heap. La funzione ReadHuffmanCodes() alloca il buffer HuffmanCode con una dimensione proveniente da un array di dimensioni precalcolate: kTableSize. Il valore color_cache_bits definisce quale dimensione utilizzare. L’array kTableSize tiene conto solo delle dimensioni per le ricerche di tavoli di primo livello a 8 bit, ma non per ricerche di tavoli di secondo livello. libwebp consente codici fino a 15 bit (MAX_ALLOWED_CODE_LENGTH). Quando BuildHuffmanTable() cerca di riempire i tavoli di secondo livello, potrebbe scrivere dati fuori dai limiti. La scrittura fuori dai limiti dell’array sottodimensionato avviene in ReplicateValue.
Lo sviluppo arriva dopo che Apple, Google e Mozilla hanno rilasciato correzioni per contenere un bug, segnalato separatamente come CVE-2023-41064 e CVE-2023-4863, che potrebbe causare l’esecuzione di codice arbitrario durante l’elaborazione di un’immagine appositamente creata. Entrambe le problematiche sembrano affrontare lo stesso problema sottostante nella libreria.
Secondo il Citizen Lab, si dice che CVE-2023-41064 sia stato combinato con 2023-41061 come parte di una catena di exploit zero-click di iMessage chiamata BLASTPASS per distribuire uno spyware mercenario noto come Pegasus. Al momento, ulteriori dettagli tecnici sono sconosciuti.
Tuttavia, la decisione di “assegnare erroneamente” CVE-2023-4863 come una vulnerabilità in Google Chrome ha sottolineato il fatto che essa influisce virtualmente su ogni altra applicazione che si basa sulla libreria libwebp per elaborare immagini WebP, indicando che ha un impatto più ampio rispetto a quanto precedentemente pensato.
Un’analisi di Rezillion della scorsa settimana ha rivelato un elenco di ampie applicazioni, librerie di codice, framework e sistemi operativi che sono vulnerabili a CVE-2023-4863.
“Questo pacchetto si distingue per la sua efficienza, superando JPEG e PNG in termini di dimensioni e velocità”, ha dichiarato l’azienda. “Di conseguenza, numerose software, applicazioni e pacchetti hanno adottato questa libreria o pacchetti che dipendono da libwebp.”
L’azienda ha poi aggiunto: “La diffusione massiccia di libwebp estende notevolmente la superficie di attacco, sollevando gravi preoccupazioni sia per gli utenti che per le organizzazioni.”
La divulgazione giunge mentre Google ha esteso le correzioni per CVE-2023-4863 per includere il canale Stable per ChromeOS e ChromeOS Flex con il rilascio della versione 15572.50.0 (versione del browser 117.0.5938.115).
Inoltre, segue nuovi dettagli pubblicati da Google Project Zero riguardo all’utilizzo di CVE-2023-0266 e CVE-2023-26083 in ambiente esterno nel dicembre 2022 da parte di fornitori commerciali di spyware per mirare a dispositivi Android di Samsung negli Emirati Arabi Uniti e ottenere l’accesso in lettura/scrittura del kernel.
Si ritiene che queste problematiche siano state utilizzate insieme ad altre tre vulnerabilità, CVE-2022-4262, CVE-2022-3038, CVE-2022-22706, da parte di un cliente o partner di una società spagnola di spyware nota come Variston IT.
“È particolarmente significativo il fatto che questo attaccante abbia creato una catena di exploit utilizzando molteplici bug dai driver GPU del kernel“, ha dichiarato il ricercatore sulla sicurezza Seth Jenkins. “Questi driver Android di terze parti presentano varie qualità di codice e regolarità di manutenzione, e ciò rappresenta una notevole opportunità per gli aggressori.”
Riguardo il discorso “driver inutili”, è già stato trattato in precedenza in ambiente Windows, ma vale anche per altri sistemi operativi.