Non è la prima volta che bug di sicurezza potenzialmente molto pericolosi restano in un’applicazione di utilizzo comune. Questa volta non si parla di un “programma” ma di un linguaggio di programmazione come Python utilizzato come base per centinaia di migliaia di progetti.
Nel 2007 un ricercatore autonomo aveva informato il team di sviluppo di Python circa l’esistenza di un problema di sicurezza al quale è stato successivamente assegnato l’identificativo CVE-2007-4559. Tale lacuna di sicurezza è ad oggi presente in Python da circa 15 anni ma non è mai stata risolta.
Mentre indagava su un altro problema di sicurezza, all’inizio di quest’anno un ricercatore in forze presso Trellix, azienda che fornisce soluzioni di rilevamento e risposta estesa nata dalla fusione di McAfee Enterprise e FireEye, ha riportato in auge la vulnerabilità CVE-2007-4559 mostrandone buona parte del suo “potenziale”.
Sebbene non sembra sia stata ancora utilizzata per condurre attacchi, il problema è che essa può andare ad impattare negativamente su un ampio ventaglio di soluzioni software influenzando l’intera catena di distribuzione.
Nello specifico il problema riguarda la gestione del noto formato di archiviazione Tar: il modulo tarfile di Python “si fida” delle informazioni contenute negli oggetti TarInfo
e, nel caso di elementi opportunamente confezionati da un aggressore, questi può accedere al contenuto di altre directory locali, estrarre dati sensibili e provocare l’esecuzione di codice dannoso.
I ricercatori di Trellix hanno scoperto che la vulnerabilità in questione è presente in migliaia di progetti software, sia open source che closed source: si parla di qualcosa come almeno 350.000 progetti. Inviando una serie di interrogazioni a GitHub si è infatti potuto accertare che sono addirittura quasi 590.000 i repository che effettuano l’importazione del modulo tarfile con Python ( import tarfile
).
A meno di una settimana dalla pubblicazione del report di Trellix, il team di sviluppo di Python ha annunciato che il problema è stato finalmente risolto.