CVE-2026-44827 consente a un attaccante di eseguire codice arbitrario durante il caricamento di un modello Hugging Face Diffusers, anche se il flag trust_remote_code è disattivato. I ricercatori hanno chiamato la falla “FaceHugger” e l'hanno ricondotta a una race condition nel processo di caricamento del modello in due fasi della libreria. Qualsiasi pipeline che scarica modelli dal hub può essere colpita.
Perché la vulnerabilità è importante
Diffusers alimenta i modelli text-to-image e altri modelli di diffusione. A luglio 2026 ha registrato 8,1 milioni di download, quindi innumerevoli job CI/CD, immagini container e servizi di inferenza aziendali dipendono da esso. Il bug scavalca il principale meccanismo di sicurezza (trust_remote_code) che gli sviluppatori attivano per bloccare il codice Python non attendibile incluso con un modello.
Come funziona il bypass
- Caricamento in due fasi: Diffusers recupera prima la configurazione di un modello, quindi una seconda richiesta scarica i pesi del modello e qualsiasi codice associato.
- Race condition: Il controllo di sicurezza che ispeziona la prima richiesta non si estende alla seconda.
- Inserimento del payload: Un attaccante che controlla la seconda richiesta inietta codice malevolo che la libreria esegue successivamente, bypassando completamente il controllo di fiducia.
Poiché il controllo esamina solo la richiesta iniziale, disabilitare trust_remote_code fornisce un falso senso di protezione.
Passaggi immediati per gli sviluppatori
- Bloccare la versione di Diffusers in
requirements.txto nel file di lock per evitare aggiornamenti accidentali a una versione vulnerabile. - Evitare il download dei modelli al volo in produzione. Scarica i modelli in un repository di artefatti affidabile (ad esempio, un bucket S3 interno) e caricali da lì.
- Effettuare l'audit dei repository dei modelli prima dell'uso. Verifica che i file di codice del modello corrispondano agli hash attesi o provengano da una fonte verificata.
- Imporre controlli sull'uscita di rete (egress) in modo che gli agenti di build e i server di inferenza non possano raggiungere il hub pubblico di Hugging Face a meno che non sia consentito.
- Eseguire il caricamento dei modelli all'interno di container isolati o sandbox con privilegi minimi, limitando l'impatto dell'esecuzione di codice non autorizzato.
In sintesi:
Il bug FaceHugger dimostra che disattivare trust_remote_code non è sufficiente. Finché non aggiornerai Diffusers e non renderai più sicura la tua pipeline di ingestione dei modelli, ogni download di modelli remoti rimarrà un potenziale punto di ingresso per codice malevolo.
