Python: un bug vecchio di 15 anni rende vulnerabili 350.000 Progetti

Vai ai contenuti

Python: un bug vecchio di 15 anni rende vulnerabili 350.000 Progetti

3D.A. CLOUD Internet Provider FIBRA FTTH VDSL VoIP Kaspersky Antivirus WatchGuard Antivirus SPID PEC Firma_Digitale Certificati SSL Brescia Concesio
Pubblicato da Angelo Domeneghini in Privacy - Sicurezza - BUG · 22 Settembre 2022
Tags: #sicurezza#bug#programmazione#python
Python: un bug vecchio di 15 anni rende vulnerabili 350.000 Progetti

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.

Senza patch dal 2007
La vulnerabilità è nel pacchetto tarfile di Python, nel codice che utilizza la funzione tarfile.extract() non disinfettata o le impostazioni predefinite integrate di tarfile.extractall(). È un bug di attraversamento del percorso che consente ad un utente malintenzionato di sovrascrivere file arbitrari.

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

All'inizio di quest'anno, mentre indagava su un altro problema di sicurezza, 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 attraversamento della directory, consentendo a un malintenzionato di accedere al file system" - 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"

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".
Si stima che siano stati interessati 350.000 progetti

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.

I ricercatori hanno raschiato una serie di 257 repository con maggiori probabilità di includere il codice vulnerabile e ne hanno controllati manualmente 175 per vedere se erano interessati. Ciò ha rivelato che il 61% di loro era vulnerabile.

L'esecuzione di un controllo automatico sul resto dei repository ha aumentato il numero di progetti interessati al 65%, indicando un problema diffuso.

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" - Charles McFarland

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 es. GitHub Copilot) che aiutano gli sviluppatori a completare un progetto più velocemente.

Tali strumenti automatizzati si basano sul codice di centinaia di migliaia di repository per fornire opzioni di "completamento automatico". Se forniscono codice non sicuro, il problema si propaga ad altri progetti senza che lo sviluppatore lo sappia.

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
fonte: Trellix


CVE-2007-4559
In un post tecnico sul blog di oggi, il ricercatore di vulnerabilità di Trellix Kasimir Schulz, che ha riscoperto il bug, ha descritto i semplici passaggi per sfruttare CVE-2007-4559 nella versione Windows di Spyder IDE, un ambiente di sviluppo integrato multipiattaforma open source per la programmazione scientifica .

I ricercatori hanno dimostrato che la vulnerabilità può essere sfruttata anche su Linux. Sono riusciti a intensificare la scrittura del file e ottenere l'esecuzione del codice in un test sul servizio di gestione dell'infrastruttura IT Polemarch.

Oltre ad attirare l'attenzione sulla vulnerabilità e sul rischio che comporta, Trellix ha anche creato patch per poco più di 11.000 progetti. Le correzioni saranno disponibili in un fork del repository interessato. Successivamente, verranno aggiunti al progetto principale tramite richieste pull.

A causa dell'elevato numero di repository interessati, i ricercatori prevedono che oltre 70.000 progetti riceveranno una correzione nelle prossime settimane. Tuttavia, raggiungere il 100% è una sfida difficile, poiché anche le richieste di unione devono essere accettate dai manutentori.

BleepingComputer ha contattato Python Software Foundation per un commento su CVE-2007-4559 ma non ha ricevuto risposta al momento della pubblicazione.




3D.A.
Un Solo Fornitore
3D.A. di Domeneghini Angelo - Via G. Zanardelli, 80/82 - cap. 25062 Concesio (Bs) - Tel +39 030 2008860 -
Fax 030 20 60 925 - P.I: 03307780175
Torna ai contenuti