Vulnerabilità 0day in Google Chrome sfruttata in the wild

22/10/2020

0day chrome CVE-2020-15999

Nella giornata di martedì 20 Google ha rilasciato una nuova versione di Google Chrome (v.86.0.4240.111) per sistemi Windows, Linux e Mac che corregge una vulnerabilità di tipo 0day attivamente sfruttata in the wild.

La debolezza è stata censita con il CVE-2020-15999 e riguarda un problema di tipo heap overflow in Freetype una libreria open source per il rendering dei caratteri fornita con Chrome.

Il ricercatore di sicurezza Sergei Glazunov, di Google Project Zero, al quale è attribuita la scoperta, ha riportato la vulnerabilità il 19 ottobre anche agli sviluppatori di FreeType che il giorno seguente hanno provveduto a rilasciare un fix risolutivo del software.

La vulnerabilità

Il problema, come spiega lo stesso Glazunov, risiede nella funzione “Load_SBit_Png” di FreeType che ha lo scopo di processare i PNG presenti nei font suddividendone i valori in blocchi da 16 bit.

Nello specifico, le dimensioni di una PNG sono valori a 32 bit ma “Load_SBit_Png” tronca tali dimensioni convertendole in interi a 16 bit (più che sufficiente a gestire le PNG incontrate nei font). Dopodiché la funzione continua allocando un buffer per i dati (usando le dimensioni troncate) e popolando un oggetto di tipo “png_struct” (questa volta però usando, per le dimensioni, i valori originali a 32 bit, così come trovati nell’header PNG).

L’oggetto “png_struct” ed il buffer allocato sono poi passati a “libpng” per la lettura e la decodifica dell’immagine.

Se le dimensioni dell’immagine superano entrambe 65536 il buffer allocato da “Load_SBit_Png” non sarà sufficiente a contenere i dati letti da “libpng“.

Questo genera un heap overflow che può opportunamente essere sfruttato per ottenere primitive di lettura e scrittura su indirizzi arbitrari e dato il contesto (un browser con un JIT JS) eventualmente per eseguire codice arbitrario.

Conclusioni

In data 26 ottobre i ricercatori di Project Zero rilasceranno i dettagli tecnici relativi allo sfruttamento della vulnerabilità. Il suggerimento è quello di procedere prima possibile con l’aggiornamento di Google Chrome all’ultima release.