Stiamo attenti alle foto che riceviamo e visualizziamo su WhatsApp: è stata infatti scoperta una vulnerabilità nella funzionalità di pic-retouching per applicare filtri alle immagini che potrebbe consentire a un utente malintenzionato di leggere informazioni sensibili dalla memoria dell’app.
Il problema di sicurezza può essere sfruttato applicando filtri fotografici specifici a un’immagine appositamente creata (cioè, un file .GIF malformato) e inviandola a un bersaglio.
I filtri d’immagine, lo ricordiamo, sono effetti visivi integrati in WhatsApp che consentono di cambiare il colore, la saturazione, il tono, la nitidezza e altre caratteristiche di una foto.
Indice degli argomenti
I dettagli del bug nei filtri foto di WhatsApp
La vulnerabilità, scoperta dai ricercatori di Check Point Research (CPR) e classificata da WhatsApp come CVE-2020-1910 (con un punteggio CVSS di 7,8 su 10) è dovuto a un errore di corruzione della memoria e, più specificamente, ad un problema di lettura e scrittura di tipo out-of-bounds che può consentire agli aggressori di leggere informazioni sensibili da altre posizioni di memoria o causare un crash dell’applicazione stessa.
Al verificarsi di un insieme di circostanze, come verificato dai ricercatori di CPR, il bug avrebbe potuto potenzialmente portare all’esposizione di informazioni sensibili dall’applicazione WhatsApp.
In particolare, il processo che crea i filtri è tale per cui i pixel dell’immagine originale vengono modificati per ottenere alcuni effetti visivi, come la sfocatura o la nitidezza. Durante la loro analisi, i ricercatori hanno quindi scoperto che un’applicazione casuale di vari filtri sulle GIF appositamente create causava il crash di WhatsApp con conseguente compromissione della memoria dell’app.
La vulnerabilità è stata identificata nella funzione nativa chiamata applyFilterIntoBuffer() presente all’interno della libreria libwhatsapp.so. Lo scopo della funzione è quello di inserire tre diversi oggetti AndroidBitmap necessari per la gestione e la visualizzazione delle immagini su WhatsApp:
- src_jbitmap: rappresenta l’immagine in ingresso;
- flt_jbitmap: rappresenta il filtro da applicare;
- dst_jbitmap: contiene il risultato della nuova immagine.
In parole semplici, l’esecuzione della funzione consente essenzialmente di analizzare i pixel dell’immagine sorgente, calcolare i nuovi valori degli stessi pixel in seguito all’applicazione del filtro fotografico e successivamente copiare questi valori nel buffer di memoria in modo da rendere l’immagine nuovamente visualizzabile.
Per compiere questi semplici passaggi, la funzione ne richiama un’altra, AndroidBitmap_getInfo, che consente di ottenere dati sull’immagine sorgente e sul filtro, insieme anche ad altri parametri tra cui la larghezza, l’altezza, il numero di byte per riga e il formato.
Ovviamente, si presume che entrambe le immagini, sia quella sorgente sia quella finale, abbiano le stesse dimensioni e anche lo stesso formato RGBA (che memorizza lo spazio di colori RGB oltre ad alcune informazioni aggiuntive del canale Alpha). In particolare, ogni pixel RGBA è memorizzato come 4 byte
Tuttavia, secondo i ricercatori di CPR, la funzione che gestisce l’applicazione dei filtri fotografici alle immagini su WhatsApp non prevede alcun controllo sul formato delle immagini di origine e finale.
Ciò può consentire ad un attaccante di sfruttare la vulnerabilità “passando” alla funzione applyFilterIntoBuffer() un’immagine sorgente malevolmente modificata che ha solo un byte per pixel (anziché i quattro che ci si aspetterebbe), causando così un accesso alla memoria out-of-bounds.
Come mitigare il rischio di furto dati
I ricercatori non hanno fornito altri dettagli su come realizzare l’exploit della vulnerabilità identificata nei filtri foto di WhatsApp. Un portavoce ha comunque osservato che “lo scenario di sfruttamento è un po’ complesso e richiede un’ampia interazione dell’utente per essere eseguito”.
Ciò non toglie che la superficie di attacco potrebbe essere particolarmente estesa, tenendo conto che WhatsApp è l’applicazione di messaggistica più popolare al mondo con oltre 2 miliardi di utenti attivi e oltre 55 miliardi di messaggi scambiati al giorno, con 4,5 miliardi di foto e un miliardo di video condivisi quotidianamente.
Dal canto suo, WhatsApp ha comunicato di non avere ragione di credere che i dati degli utenti siano stati esposti a causa di questo bug.
La società, inoltre, fa sapere che dalla versione 2.21.1.13 dell’app sono stati aggiunti due nuovi controlli sull’immagine sorgente e su quella modificata che assicurano che entrambe siano nel corretto formato RGBA.
Per mitigare il rischio di una possibile esfiltrazione di dati e informazioni sensibili è dunque importate aggiornare al più presto la versione di WhatsApp installata sui propri dispositivi.