Tavis Ormandy, noto ricercatore del tela Google Project Zero, ha scoperto una vulnerabilità critica in Transmission, uno dei client BitTorrent più popolari. Il bug, che potrebbe essere presente in altri software analoghi, può essere sfruttato per accedere da remoto al computer dell’utente ed eseguire codice infetto. Gli sviluppatori di Transmission hanno ricevuto la segnalazione e sono al lavoro sulla patch.
Solitamente il team Project Zero pubblica i dettagli sulle vulnerabilità dopo 90 giorni o quando viene distribuito il fix. In questo caso, Ormandy aveva incluso nel report privato anche la patch da applicare a Transmission. Gli sviluppatori del client non hanno aggiornato il client, quindi il ricercatore ha deciso di divulgare il “proof-of-concept” dopo apena 40 giorni. Un portavoce del Transmission Project ha promesso l’imminente rilascio della patch, affermando che la vulnerabilità può essere sfruttata solo se l’utente attiva l’accesso remoto e disattiva la password di protezione.
Transmission è basato su un’architettura client/server. L’interfaccia utente è il client e un daemon eseguito in background gestisce i download, il seeding e altri funzioni. Il client interagisce con il daemon mediante richieste JSON RPC ad un web server in ascolto sulla porta 9091. Il daemon accetta solo richieste dal localhost per default, ma è possibile configurare dispositivi NAS per accettare client remoti. La vulnerabilità può essere sfruttata attraverso un attacco DNS rebinding che consente di controllare da remoto l’interfaccia web di Transmission se l’utente visita un sito malevolo.
Ormandy ha verificato il funzionamento dell’exploit su Chrome e Firefox per Windows e Linux, ma lo stesso risultato si può ottenere su altri browser e sistemi operativi. Un malintenzionato potrebbe, ad esempio, cambiare la directory in cui vengono salvati i file scaricati oppure configurare Transmission per eseguire qualsiasi comando al termine del download. Il ricercatore svelerà i nomi degli altri client BitTorrent vulnerabili al termine dei 90 giorni.