CVE-2025-10156: Vulnerabilità di parsing degli archivi ZIP in picklescan consente l’elusione della sicurezza ed esecuzione di codice da remoto

picklescan è uno strumento open-source molto utilizzato per analizzare modelli di machine learning e altri archivi di file alla ricerca di dati pickle Python dannosi. I file pickle rappresentano un formato comune di serializzazione in Python, ma sono notoriamente insicuri, poiché deserializzare un oggetto pickle appositamente creato può portare all’esecuzione arbitraria di codice. Questa libreria viene spesso integrata in pipeline di sicurezza, repository di artefatti e sistemi di caricamento file per prevenire attacchi contro applicazioni che elaborano modelli AI/ML o altre strutture dati Python.

L’impatto di questa vulnerabilità è critico. Consente di eludere completamente la funzione di sicurezza dello scanner. Un attaccante non autenticato può creare un archivio ZIP dannoso che picklescan non riuscirà ad analizzare correttamente, dichiarandolo erroneamente sicuro. Quando un’applicazione a valle si fida di questo risultato ed elabora il file pickle dannoso contenuto all’interno, può verificarsi una esecuzione di codice da remoto non autenticata.

Esiste un exploit pubblico disponibile per questa vulnerabilità, e se ne discute ampiamente negli ambienti di sicurezza. Sebbene non sia ancora elencato nel catalogo KEV della CISA, la disponibilità dell’exploit aumenta significativamente la probabilità di sfruttamento attivo. Qualsiasi applicazione esposta a internet che utilizza questa libreria per analizzare archivi ZIP non affidabili è a rischio immediato di compromissione.

picklescan
2025-12-05 00:16:11

Riassunto tecnico

La causa principale della vulnerabilità è classificata come CWE-755: Gestione impropria delle condizioni eccezionali. Il componente di scansione ZIP dello strumento picklescan non gestisce correttamente le eccezioni che si verificano durante l’elaborazione di file malformati all’interno di un archivio ZIP.

La catena di attacco procede come segue:

  1. L’attaccante crea un archivio ZIP contenente almeno due file. Il primo file è intenzionalmente danneggiato con un Cyclic Redundancy Check (CRC) errato. Il secondo file è un oggetto pickle legittimo ma dannoso.
  2. Quando picklescan apre l’archivio e tenta di leggere il primo file, il CRC corrotto genera un’eccezione zlib.error.
  3. La funzione di scansione non gestisce questa specifica eccezione all’interno del ciclo di iterazione dei file. L’eccezione non gestita si propaga e causa l’interruzione prematura dell’intero processo di scansione.
  4. Poiché il processo si blocca, lo scanner non analizza mai il secondo file contenente il payload pickle dannoso. Nessun errore viene segnalato all’applicazione chiamante che indichi una scansione parziale o fallita.
  5. L’applicazione a valle, assumendo che la scansione sia stata completata con successo e non abbia rilevato minacce, procede ad estrarre e deserializzare il file pickle dannoso, attivando il payload di esecuzione di codice da remoto.

Differenza concettuale del codice:

# Vulnerable Logic
def scan_zip_archive(archive):
    # An exception here terminates the entire function
    for member in archive.infolist():
        file_content = archive.read(member.filename)
        scan_for_malicious_pickles(file_content)

# Patched Logic
def scan_zip_archive(archive):
    for member in archive.infolist():
        try:
            # Exception is handled per-file, allowing the loop to continue
            file_content = archive.read(member.filename)
            scan_for_malicious_pickles(file_content)
        except zlib.error:
            log("Could not read member due to CRC error:", member.filename)
            continue

Un attaccante può sfruttare questa elusione per eseguire codice arbitrario con i permessi dell’applicazione che elabora il file, portando a una compromissione completa del sistema. Le versioni specificamente affette non sono state divulgate; si consiglia agli utenti di presumere che tutte le versioni precedenti all’ultima patch siano vulnerabili.

Raccomandazioni

  • Applicare la patch immediatamente: Aggiornare la libreria picklescan alla versione più recente disponibile. Gli sviluppatori dovrebbero assicurarsi che i sistemi di gestione delle dipendenze siano configurati per recuperare la release con la patch.
  • Mitigazioni: Se non è possibile applicare immediatamente la patch, incapsulare le chiamate alla libreria picklescan in un blocco robusto di gestione delle eccezioni. Monitorare eventuali eccezioni provenienti dalla libreria durante l’elaborazione di ZIP e considerare tali eventi come fallimenti di scansione, rifiutando l’archivio. Valutare la possibilità di disabilitare temporaneamente l’elaborazione di tutti i file ZIP provenienti da fonti non affidabili.
  • Caccia e monitoraggio:
    • Analizzare i log di sistema e applicativi alla ricerca di eccezioni non gestite riguardanti zlib.error o l’elaborazione di file ZIP, soprattutto nelle applicazioni Python.
    • Monitorare i processi Python che generano processi figlio inaspettati, come /bin/sh, bash, powershell.exe o utility di rete come curl e wget.
    • Cercare file di nuova creazione in percorsi inusuali, specialmente quelli scritti dall’account utilizzato per eseguire l’applicazione che usa picklescan.
  • Risposta agli incidenti: In caso di sospetta compromissione, isolare immediatamente l’host affetto dalla rete per prevenire movimenti laterali. Conservare log, dump della memoria e immagini disco per un’analisi forense. Indagare sull’attività dell’applicazione per identificare il momento della compromissione e qualsiasi dato eventualmente esfiltrato.
  • Difesa in profondità: Eseguire le applicazioni che processano file esterni non attendibili in ambienti sandbox o containerizzati con privilegi minimi. Implementare la segmentazione della rete per limitare la capacità dell’applicazione di comunicare con sistemi interni, riducendo l’impatto di una potenziale violazione.

Vuoi garantire la massima sicurezza informatica alla tua azienda? ISGroup SRL è qui per aiutarti con soluzioni di cyber security su misura per la tua azienda.

Vuoi che gestiamo tutto noi per te? Il servizi di Virtual CISO e di gestione delle vulnerabilità sono perfetti per la tua organizzazione.

Hai già le idee chiare su quello che ti serve? Esplora i nostri servizi di:

E molto altro. Proteggi la tua azienda con i migliori esperti di cybersecurity!