CVE-2025-10155: Bypass del Controllo di picklescan con Esecuzione di Codice Remota

Definizione del prodotto: Picklescan è uno strumento di sicurezza progettato per analizzare i file Python pickle alla ricerca di codice malevolo prima che vengano deserializzati. È ampiamente utilizzato in ambienti di Machine Learning (ML) e MLOps per mitigare il rischio di Esecuzione di Codice Remota (RCE) durante il caricamento di modelli o dati da fonti non attendibili. La sua funzione principale è quella di fungere da barriera di sicurezza all’interno della catena di approvvigionamento ML.

Profilo di rischio: Questa vulnerabilità consente di bypassare completamente le funzionalità di scansione dello strumento, comportando un rischio elevato di Esecuzione di Codice Remota non autenticata. Un attaccante può creare un file malevolo che una versione vulnerabile di Picklescan classificherà erroneamente come sicuro. Qualsiasi applicazione a valle che si fidi di questo risultato e carichi il file verrà compromessa. La vulnerabilità compromette la principale garanzia di sicurezza dello strumento.

Threat Intelligence: È disponibile un exploit proof-of-concept pubblico. Tuttavia, al momento non si conoscono casi di sfruttamento attivo di questa vulnerabilità. Non è presente nel catalogo delle Vulnerabilità Note Sfruttate (KEV) di CISA.

Superficie di esposizione: Le organizzazioni sono a rischio se utilizzano versioni di Picklescan fino alla 0.0.30 inclusa nei flussi di lavoro automatizzati, come pipeline CI/CD per la validazione dei modelli o piattaforme pubbliche di ingestion di modelli. Anche sviluppatori individuali e data scientist che si affidano allo strumento per verificare modelli di terze parti sono esposti.

picklescan
2025-12-04 12:14:50

Riassunto tecnico

Analisi della causa principale: La vulnerabilità è un problema di CWE-20: Validazione Impropria dell’Input nella logica di analisi dei file. Picklescan modifica il livello di severità della scansione basandosi sull’estensione del file. Quando incontra un file con estensione associata a PyTorch (es. .pt, .pth), non esegue un’ispezione approfondita alla ricerca di opcode pickle pericolosi. Questo permette a un payload pickle malevolo standard, che normalmente verrebbe rilevato, di eludere completamente l’analisi se incapsulato in un file con una di queste estensioni.

Catena di attacco passo-passo:

  1. Creazione del payload: Un attaccante crea un payload malevolo utilizzando tecniche standard di serializzazione pickle di Python. Questo comporta tipicamente l’utilizzo del metodo __reduce__ per chiamare una funzione pericolosa, come os.system o subprocess.run.
  2. Evasione: L’attaccante salva il file pickle malevolo con un’estensione associata a PyTorch, ad esempio malicious_model.pt.
  3. Bypass della scansione: La versione vulnerabile di Picklescan viene invocata per analizzare malicious_model.pt. A causa della logica di validazione impropria legata all’estensione .pt, lo strumento non identifica gli opcode pericolosi e segnala il file come sicuro.
  4. Esecuzione: Un’applicazione o sviluppatore a valle, fidandosi del risultato della scansione, carica il file utilizzando una funzione standard come pickle.load(). Il processo di deserializzazione esegue il payload incorporato, attivando l’Esecuzione di Codice Remota sul sistema ospite con i privilegi dell’applicazione.

Logica concettuale del codice:
L’esempio seguente illustra il pattern pericoloso, ma non è un exploit diretto. La vulnerabilità risiede nel fatto che Picklescan non riesce a rilevare tali strutture nei file .pt.

# Esempio concettuale di un oggetto Pickle Malevolo
# Un attaccante inserisce questa struttura in un file .pt per bypassare lo scanner.
# Questo codice è solo a scopo illustrativo.

import os

class Exploit:
    def __reduce__(self):
        # Questa funzione viene chiamata automaticamente durante la deserializzazione.
        # Un attaccante inserirebbe un comando da eseguire sul sistema target.
        cmd = ("echo 'Code execution achieved' > /tmp/pwned")
        return (os.system, (cmd,))

# Quando un programma chiama pickle.load() su un file contenente questo oggetto serializzato,
# viene eseguito os.system(cmd).

Versioni interessate:

  • Vulnerabili: Picklescan versioni fino alla 0.0.30 inclusa
  • Corrette: La correzione è disponibile a partire dalla versione 0.0.31 di Picklescan

Raccomandazioni

  • Aggiornamento immediato: Aggiornare lo strumento mmaitre314/picklescan alla versione 0.0.31 o successiva per applicare la correzione di sicurezza.
  • Mitigazioni:
    • Se non è possibile applicare subito la patch, riconfigurare i flussi di sicurezza per rifiutare tutti i file con estensione .pt o .pth, oppure trattarli come intrinsecamente non sicuri a prescindere dal risultato della scansione.
    • Passare a formati di serializzazione dei modelli più sicuri, che non comportino rischi di esecuzione, come safetensors.
  • Caccia e monitoraggio:
    • Scansionare retroattivamente tutti i file .pt e .pth esistenti nei repository di modelli utilizzando la versione aggiornata di Picklescan, per individuare modelli malevoli precedentemente non rilevati.
    • Monitorare i log delle applicazioni che deserializzano file di modelli. Cercare processi figli anomali lanciati (es. sh, bash, curl, powershell) dal processo dell’applicazione.
    • Rivedere i log di rete per connessioni in uscita sospette provenienti dagli host che si occupano del caricamento e dell’inferenza dei modelli.
  • Risposta a incidenti:
    • Se si sospetta una compromissione, isolare immediatamente l’host interessato dalla rete per impedire movimenti laterali.
    • Conservare il file modello sospetto e i log applicativi/di sistema pertinenti per analisi forense.
    • Presumere che tutte le credenziali, chiavi e dati sensibili accessibili dall’host compromesso siano stati esfiltrati e avviare le procedure di rotazione e invalidazione.
  • Difesa in profondità:
    • Eseguire il caricamento dei modelli e l’elaborazione dei dati in ambienti sandbox o containerizzati con privilegi minimi e senza accesso alla rete.
    • Implementare una segmentazione di rete rigorosa per garantire che anche in caso di RCE il raggio d’azione dell’attaccante sia contenuto.

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!