Telegram ha risolto una vulnerabilità zero-day nella sua applicazione desktop per Windows che poteva essere sfruttata per eludere gli avvisi di sicurezza e avviare automaticamente script Python.
La stessa Telegram ha confermato di aver risolto il problema impedendo l’avvio automatico degli script Python, dunque con una correzione lato server così da renderla subito disponibile per tutti gli utenti e su tutte le versioni dell’app.
Indice degli argomenti
I dettagli della vulnerabilità zero-day in Telegram
Le prime indiscrezioni circolate su alcuni forum di hacking e su X parlavano di una presunta vulnerabilità di esecuzione remota del codice (RCE) nell’app Telegram Desktop per Windows.
#telegram #rce found in xss forum
— Phantom Radar (@phantmradar) April 11, 2024
http://xssforumv3isucukbxhdhwz67hoa5e2voakcfkuieq4ch257vsburuid[.]onion/
Poc: https://t.co/ySSG9giVhW
In particolare, alcuni post sostenevano che si trattasse di un difetto zero-click, ma dai video pubblicati sul presunto bypass dell’avviso di sicurezza si vedeva chiaramente che qualcuno cliccava su un file multimediale condiviso per avviare la calcolatrice di Windows.
In un primo momento, la stessa Telegram ha dichiarato che i video “non potevano confermare l’esistenza di tale vulnerabilità”, bollandolo come fake, ma successivamente è stato condiviso sul forum XSS un exploit proof of concept che spiegava come un errore di battitura nel codice sorgente di Telegram dell’app Desktop per Windows potesse essere sfruttato per inviare file Python con estensione .pyzw in grado di eludere gli avvisi di sicurezza quando venivano cliccati.
Così facendo, era possibile “forzare” l’esecuzione automatica del file da parte di Python senza che venisse mostrato alcun avviso da parte dell’app Telegram Desktop, come invece accade per altri eseguibili e come sarebbe dovuto accadere per questo file se non ci fosse stato un errore di battitura.
Inoltre, nel proof of concept condiviso si vedeva il file Python mascherato come un video condiviso, completo di thumbnail, che poteva essere utilizzato per ingannare gli utenti e indurli a riprodurre il falso contenuto multimediale.
In pratica, l’app Telegram Desktop Telegram tiene traccia delle estensioni di file associate a file rischiosi, come potrebbero essere, ad esempio, i file eseguibili. Quando qualcuno invia uno di questi tipi di file in Telegram, e un utente ci clicca sopra, invece di avviarsi automaticamente nel programma associato in Windows, Telegram mostra l’avviso di sicurezza: “Questo file ha l’estensione .exe. Potrebbe danneggiare il tuo computer. Sei sicuro di volerlo eseguire?”.
Altri tipi di file sconosciuti condivisi in Telegram verranno avviati automaticamente in Windows, lasciando al sistema operativo la decisione su quale programma utilizzare. Quando Python per Windows è installato, l’estensione .pyzw viene automaticamente associata all’eseguibile Python.
Nello specifico, l’estensione .pyzw viene utilizzata per indicare le app Python auto eseguibili contenute all’interno di archivi ZIP. Sfortunatamente, quando l’estensione è stata aggiunta all’elenco di quelle potenzialmente dannose, gli sviluppatori hanno commesso un errore di battitura, inserendo l’estensione come “pywz”’ invece della corretta “pyzw”.
Per questo motivo, un file in questo formato inviato all’app Telegram Desktop viene avviato automaticamente dall’interprete Python, permettendo di fatto di eludere gli avvisi di sicurezza e consentendo a un attaccante di eseguire codice a distanza sul dispositivo Windows della vittima, dopo averla indotta ad aprire il file.
La soluzione di mitigazione adottata
Subito dopo la segnalazione della vulnerabilità nell’app Desktop, avvenuta lo scorso 10 aprile, Telegram ha confermato che la soluzione suggerita online di disabilitare i download automatici non serviva a risolvere il problema.
Gli stessi sviluppatori, poi, hanno segnalato che la vulnerabilità avrebbe esposto solo una piccolissima frazione della base utenti: meno dello 0,01% degli utilizzatori di Telegram Desktop, infatti, ha Python installato sul proprio sistema.
La stessa Telegram, come dicevamo, è quindi intervenuta applicando una correzione lato server per garantire che anche questo problema non si riproduca più: tale aggiornamento significa che tutte le versioni di Telegram Desktop (comprese anche quelle più vecchie) non presentano più questo problema di sicurezza.
In pratica, gli sviluppatori hanno corretto l’errore di battitura nell’estensione nel file del codice sorgente ‘data_document_resolver.cpp’.