# I file modello di Hugging Face possono eseguire codice nascosto

Published: 2026-10-12

I pacchetti modello dannosi possono eseguire codice durante il caricamento non sicuro. Tre esempi documentati spiegano le reverse shell di Pickle, il comportamento dello scanner di file danneggiati e la confusione dei nomi dei modelli dimostrata dalla ricerca, con chiari limiti sulle affermazioni di furto di credenziali.

Canonical: https://thedailydiff.dev/it/video/2026-10-12-huggingface-model-malware/

## Contenuto di questo video

- I pesi dei modelli numerici, la serializzazione eseguibile e il codice del repository personalizzato sono cose diverse.
- JFrog e ReversingLabs hanno documentato i payload delle reverse shell; i loro rapporti selezionati non stabiliscono il furto di credenziali da vittime nominate.
- La confusione del modello di Checkmarx è stata una dimostrazione di ricerca che richiedeva un modello remoto corrispondente e un caricamento insicuro.
- Preferisci safetensors e caricatori patchati, rivedi e fissa il codice personalizzato e isola i pacchetti sconosciuti da segreti personali e accessi di rete non necessari.

## Capitoli

- 0:00 Come può un download di un modello invitare un ospite?
- 0:35 Come esegue un caricatore le istruzioni del pacco?
- 1:09 Quali segreti sono alla portata del processo?
- 1:38 Perché un percorso locale mancante può diventare un modello remoto?
- 1:55 Come hanno eluso i pacchetti danneggiati il vecchio scanner?
- 2:44 Cosa tiene la chiave fuori dalla portata dell'ospite?
- 3:12 Perché dovrei contrassegnare questo con NEEDS REVIEW?

## Trascrizione tradotta

Tradotto dalla narrazione originale inglese. L'audio e i sottotitoli disponibili sono controllati da YouTube.

### Come può un download di un modello invitare un ospite?

0:00 Un file modello è solo numeri su disco. Il caricamento di un pacchetto Hugging Face dannoso ha aperto una shell remota, che è un'interpretazione ambiziosa dell'AI locale. Come il caricamento diventa esecuzione? Quali segreti può raggiungere? Cosa lo ferma effettivamente? E tieni a mente un enigma. Un modello può non riuscire a caricarsi dopo che la parte pericolosa è già avvenuta.

0:18 Questo è The Daily Diff, sotto il cofano. Hugging Face è una piattaforma per la condivisione di modelli di machine learning, set di dati e applicazioni. I pesi del modello sono i numeri appresi. Un repository può anche contenere configurazione e codice Python. Il pericolo qui è l'imballaggio eseguibile che entra nel tuo computer quando lo carichi. Pickle memorizza oggetti Python con istruzioni per ricostruirli.

### Come esegue un caricatore le istruzioni del pacco?

0:37 Un caricatore non sicuro può seguire quelle istruzioni e chiamare funzioni durante lo spacchettamento. Scaricare i byte mette il pacco sul tuo disco. La deserializzazione lo apre. Da qualche parte, un formato di file è stato promosso ad amministratore di sistema non retribuito. JFrog ha segnalato Goober Two a febbraio duemilaventiquattro. Il suo payload Pickle ha aperto una reverse shell, connettendosi verso l'esterno per offrire accesso a comandi remoti. Il repository è stato eliminato. JFrog ha anche trovato indizi che suggerivano il coinvolgimento di ricercatori,

1:02 quindi l'attribuzione è incerta. L'ospite indesiderato è stato documentato. Il furto di credenziali da vittime reali non è stato stabilito.

### Quali segreti sono alla portata del processo?

1:09 Il codice in esecuzione come il tuo utente può leggere tutto ciò che quel processo può leggere. Una chiave cloud montata o un token accessibile diventa un possibile obiettivo. L'invio richiede anche una rotta di rete funzionante. I pesi numerici da soli non hanno poteri magici di credenziali. Le tue autorizzazioni forniscono la parte interessante della scheda del modello. C'è un'altra porta. Alcuni modelli ti chiedono di fidarti del codice remoto, che autorizza Python dal repository. I file di safetensor possono stare accanto a quel codice.

1:32 Controllare il formato del peso copre un ingresso, mentre il codice del repository sta ancora aspettando che tu gli consegni un badge da visitatore.

### Perché un percorso locale mancante può diventare un modello remoto?

1:38 Checkmarx ha dimostrato la confusione del modello. Un percorso del modello locale mancante potrebbe risolversi in un repository pubblico con un nome corrispondente. Combinatelo con il codice remoto abilitato, e il pacchetto sbagliato può essere eseguito. Questa è stata una dimostrazione di ricerca che ha coinvolto un campione di un'azienda senza nome, corretto entro un giorno. Una cartella mancante ha acquisito un proprietario. ReversingLabs ha segnalato due campioni a febbraio duemilaventicinque,

### Come hanno eluso i pacchetti danneggiati il vecchio scanner?

1:58 chiamando la tecnica nullify AI. Entrambi contenevano reverse shell. Il loro imballaggio 7zip bloccava il normale caricamento di PyTorch, quindi questo percorso richiedeva l'estrazione e la deserializzazione non sicura. I flussi Pickle danneggiati hanno anche esposto un punto cieco dello scanner. Una scansione fallita merita un'indagine prima che qualcuno apra il pacco. Nel test innocuo dei ricercatori, le istruzioni hanno scritto un file prima che il caricatore

2:18 raggiungesse la parte danneggiata e sollevasse un errore. Immagina di aprire un pacco, liberare il procione, quindi notare che l'etichetta di spedizione non è valida. Il messaggio di errore arriva con una grammatica eccellente e un tempismo terribile. Hugging Face ha rimosso i campioni segnalati entro ventiquattro ore e ha modificato lo scanner. Questo specifico ritrovamento ha richiesto una correzione. Una scansione di sicurezza è una prova utile, e trattare ogni errore dello scanner come un'ottima prova di buona salute rimane un'interpretazione incredibilmente generosa del fallimento.

2:43 Preferisci i safetensors e i caricatori patchati attuali.

### Cosa tiene la chiave fuori dalla portata dell'ospite?

2:46 PyTorch ha ristretto il suo caricatore predefinito a partire dalla versione 2.6. Rivedi il codice personalizzato e fissa la revisione rivista. Esegui pacchetti sconosciuti in isolamento senza chiavi personali, con accesso di rete limitato. Un contenitore pieno di credenziali montate è un cesto regalo con namespaces. Quel puzzle iniziale ha una risposta. Il fallimento del caricamento ti dice dove l'esecuzione si è fermata. Le istruzioni precedenti potrebbero essere già state eseguite.

3:08 Tieni i segreti fuori dalla sua portata prima di aprire il pacco. Verdetto, sotto il cofano.

### Perché dovrei contrassegnare questo con NEEDS REVIEW?

3:16 caricatore. Il download gratuito dovrebbe includere un modello, e la lista degli invitati dovrebbe rimanere una mia decisione. Se preferisci leggere questo piuttosto che sentirmi dire, il diff arriva nella tua casella di posta ogni mattina, gratuitamente su thedailydiff.dev, link qui sotto. E questo è il diff per oggi. Sono Niko di Axrisi. Fondi con responsabilità.

## Fonti

- [Data Scientists Targeted by Malicious Hugging Face ML Models with Silent Backdoor](https://jfrog.com/blog/data-scientists-targeted-by-malicious-hugging-face-ml-models-with-silent-backdoor/) — JFrog
- [Malicious ML models discovered on Hugging Face platform](https://www.reversinglabs.com/blog/rl-identifies-malware-ml-model-hosted-on-hugging-face) — ReversingLabs
- [AI Model Confusion: An LLM/AI Model Supply Chain Attack](https://checkmarx.com/zero-post/hugs-from-strangers-ai-model-confusion-supply-chain-attack/) — Checkmarx Zero
- [Pickle Scanning](https://huggingface.co/docs/hub/en/security-pickle) — Hugging Face
- [Safetensors](https://huggingface.co/docs/safetensors/en/index) — Hugging Face
- [Loading custom models](https://huggingface.co/docs/transformers/en/models) — Hugging Face
- [Serialization semantics](https://docs.pytorch.org/docs/2.14/notes/serialization.html) — PyTorch
