Red Hot Cyber

Sicurezza informatica, cybercrime, hack
news, e altro ancora
  • English

Jurassic Bug: un Path Traversal di 15 anni su Python è stato finalmente fixato

Una vulnerabilità nel linguaggio di programmazione Python che è stata trascurata per 15 anni è ora di nuovo sotto i riflettori poiché probabilmente colpisce più di 350.000 repository open source e può portare all’esecuzione di codice.

Divulgato nel 2007 e contrassegnato come CVE-2007-4559, il problema di sicurezza non ha mai ricevuto una patch, l’unica mitigazione fornita è un aggiornamento della documentazione che avverte gli sviluppatori del rischio.

Uno sguardo alla vulnerabilità

La vulnerabilità è nel pacchetto tarfile di Python , nel codice che utilizza la funzione tarfile.extract(). È un bug di  path traversal che consente a un utente malintenzionato di sovrascrivere file arbitrari.

I dettagli tecnici per CVE-2007-4559 sono disponibili dal rapporto iniziale dell’agosto 2007. Sebbene non ci siano rapporti sul bug sfruttato in attacchi, rappresenta un rischio nella catena di fornitura del software.

Advertisements

All’inizio di quest’anno, mentre si indagava su un altro problema di sicurezza (la CVE-2007-4559) è stato riscoperto da un ricercatore di Trellix, una nuova azienda che fornisce soluzioni di rilevamento e risposta estesa (XDR) risultanti dalla fusione di McAfee Enterprise e FireEye.

“La mancata scrittura di alcun codice di sicurezza per disinfettare i file dei membri prima di chiamare tarfile.extract() tarfile.extractall() provoca una vulnerabilità di path traversal e consentendo a un malintenzionato di accedere al file system”

Ha detto Charles McFarland, ricercatore di vulnerabilità nel Team di ricerca avanzata sulle minacce di Trellix

Il difetto deriva dal fatto che il codice nella  funzione di estrazione nel modulo tarfile di Python si fida esplicitamente delle informazioni nell’oggetto TarInfo “e unisce il percorso che viene passato alla funzione di estrazione e il nome nell’oggetto TarInfo”

CVE-2007-4559 - percorso che si unisce al nome del file
CVE-2007-4559 – percorso che si unisce con il nome del file (FonteTrellix)

Meno di una settimana dopo la divulgazione, un  messaggio sul bug tracker di Python ha annunciato che il problema è stato risolto, la correzione è stata l’aggiornamento della documentazione con un avviso “che potrebbe essere pericoloso estrarre archivi da fonti non attendibili”.

Advertisements

Un Brontosaurus bug che investe 350.000 repo

Analizzando l’impatto, i ricercatori di Trellix hanno scoperto che la vulnerabilità era presente in migliaia di progetti software, sia open source che closed source.

L’esecuzione di un controllo manuale ed automatico sui repository ha analizzato che il numero di progetti interessati sono il 65%.

Tuttavia, il piccolo set di campioni è servito solo come base per elaborare una stima di tutti i repository interessati disponibili su GitHub.

“Con l’aiuto di GitHub siamo stati in grado di ottenere un set di dati molto più ampio per includere 588.840 repository univoci che includono ‘import tarfile’ nel suo codice Python”

ha detto Charles McFarland

Advertisements

Utilizzando il tasso di vulnerabilità del 61% verificato manualmente, Trellix stima che ci siano più di 350.000 repository vulnerabili, molti dei quali utilizzati da strumenti di machine learning (ad esempio GitHub Copilot) che aiutano gli sviluppatori a completare un progetto più velocemente.

​​​​​​​GitHub Copilot suggerisce un codice di estrazione tarfile vulnerabile
GitHub Copilot suggerisce la fonte del codice di estrazione del file tarfile (FonteTrellix)

Analizzando ulteriormente il problema, Trellix ha scoperto che il codice open source vulnerabile a CVE-2007-4559 “si estende a un vasto numero di settori”.

Come previsto, il più colpito è il settore dello sviluppo, seguito dal web e dalle tecnologie di machine learning.

Codice vulnerabile a CVE-2007-4559 presente in tutti i settori
Codice vulnerabile a CVE-2007-4559 presente in tutti i settori (FonteTrellix)