LiteLLM 1.107.0 Compromesso: Trovati Ladro di Credenziali e Backdoor
Attacco Critico alla Supply Chain Colpisce LiteLLM: Cosa Devi Sapere
Un grave attacco alla supply chain ha compromesso la versione 1.107.0 di LiteLLM sul Python Package Index (PyPI), una delle librerie open source più utilizzate per l'accesso ai modelli linguistici di grandi dimensioni. I ricercatori di sicurezza di SafeDep, StepSecurity e Aikido hanno confermato che la release malevola conteneva un sofisticato ladro di credenziali e una backdoor per l'esecuzione remota di codice ogni ora, rappresentando una minaccia immediata per sviluppatori, pipeline CI/CD e infrastrutture AI.
Il pacchetto compromesso, pubblicato il 21 ottobre 2026, è stato scaricato da migliaia di sviluppatori prima che PyPI lo mettesse in quarantena entro due ore. Tuttavia, il danno potrebbe essere già stato fatto, poiché il malware è progettato per esfiltrare credenziali sensibili dai sistemi infetti.
TL;DR: L'Impatto in Breve
- Pacchetto Compromesso:
litellm==1.107.0su PyPI - Malware: Ladro di credenziali (
cook.py) e caricatore di codice remoto (sitecustomize.py) - Esecuzione: Viene eseguito automaticamente a ogni avvio dell'interprete Python, senza bisogno di import
- Obiettivi: Chiavi SSH, credenziali cloud, password del browser, token di strumenti AI e chiavi API del proxy LiteLLM
- Stato: Release rimossa da PyPI; anche le immagini Docker sono state ritirate
- Azione Richiesta: Ruota tutte le credenziali e ricostruisci gli ambienti colpiti da fonti attendibili
Come Funziona l'Attacco: Un'Analisi Approfondita del Malware
Le ruote malevole di litellm-1.107.0 contenevano tre file extra installati direttamente nella radice di site-packages: cook.pth, cook.py e sitecustomize.py. Il difetto critico di progettazione è che Python esegue automaticamente i file .pth e sitecustomize.py a ogni avvio dell'interprete, il che significa che il malware viene eseguito indipendentemente dal fatto che LiteLLM venga mai importato dall'applicazione.
Payload 1: Il Ladro di Credenziali (cook.py)
Il file cook.pth contiene una singola riga, import cook, che attiva l'esecuzione di cook.py. Questo file Python di 22KB contiene codice offuscato che, una volta decodificato, rivela un modulo sofisticato per il furto di credenziali chiamato privcollect. I ricercatori di sicurezza notano che il ladro prende di mira un'ampia gamma di dati sensibili:
- Credenziali Cloud: Configurazioni AWS, Google Cloud, Azure, Kubernetes e Docker
- Segreti degli Sviluppatori: Chiavi SSH, chiavi GPG, chiavi private TLS e cronologia della shell
- Token di Strumenti AI: Claude, GitHub Copilot, Cursor e oltre 20 altri strumenti di sviluppo AI
- Dati del Browser: Password salvate e cronologia di navigazione da Chrome, Firefox e altri browser
- Database del Proxy LiteLLM:
LiteLLM_CredentialsTableeLiteLLM_ProxyModelTable, che contengono le chiavi API dei provider LLM - Segreti CICD: Configurazioni runner GitLab, credenziali Jenkins e token Terraform
I dati rubati vengono crittografati utilizzando uno schema ibrido: AES-256-CBC per il payload e RSA-OAEP con una chiave pubblica incorporata da 4096 bit per la chiave di sessione. Il bundle crittografato viene quindi inviato come file tar.gz al dominio fittizio www.litellm.dev tramite una richiesta POST a /healthcheck con un token bearer hardcoded.
Payload 2: La Backdoor Oraria (sitecustomize.py)
Il secondo payload, sitecustomize.py, è probabilmente più pericoloso. Crea un demone in background che si stacca dal processo padre e viene eseguito ogni ora. Il demone esegue le seguenti azioni:
- Legge un indirizzo del server di comando e controllo (C2) da un repository GitHub (
letters9813/pythonclient-test) - Esegue nuovamente il ladro di credenziali incorporato (senza il marcatore una volta per host)
- Scarica ed esegue codice Python arbitrario dal server C2
Questa architettura fornisce all'attaccante accesso remoto completo ai sistemi infetti. Sebbene l'account GitHub sia stato eliminato ore dopo l'attacco, qualsiasi host che ha eseguito il demone prima dell'eliminazione potrebbe aver già ricevuto ed eseguito payload di secondo stadio, potenzialmente inclusi ransomware o altri strumenti distruttivi.
Il Vettore d'Attacco: Come il Malware è Entrato
Gli investigatori hanno scoperto che la distribuzione sorgente (sdist) di litellm-1.107.0 conteneva una singola riga sospetta nel file pyproject.toml sotto la sezione [tool.maturin]: data = "cook". Questa direttiva istruiva il sistema di build a copiare la cartella cook/ nella ruota, che pip installa quindi in site-packages.
L'analisi di SafeDep ha rivelato che il sorgente della release non corrispondeva al corrispondente tag git v1.107.0. Invece, lo sdist era basato su un commit successivo del ramo principale (a8113b0) con diverse modifiche, inclusa la reversione della versione a 1.107.0 e l'iniezione della riga data = "cook". I ricercatori hanno valutato con moderata-alta fiducia che l'attaccante avesse accesso alla pipeline di rilascio privata di BerriAI, suggerendo una credenziale di manutentore compromessa o un insider malevolo.
Cronologia dell'Attacco
Tutti gli orari sono UTC del 21-10-2026:
- 06:59 - Tag
v1.107.0creato, ma dichiara versione 1.108.0 - 08:50 - Commit legittimo del ramo principale
a8113b0creato - 08:56 - 10:46 - Dieci commit dell'attaccante sovrapposti al commit legittimo
- 11:20 - 11:37 - Ruote malevole costruite (macOS, Linux, Windows)
- 11:39 - 11:40 -
1.107.0caricato su PyPI - 11:50 - Release GitHub
v1.107.0pubblicata dal bot - 12:06 - Compromissione segnalata ai manutentori di LiteLLM
- 13:23 - Versione rimossa da PyPI
- 13:40 - Account GitHub dell'attaccante eliminato
- 13:50 - I manutentori riconoscono l'incidente come SEV-0
- 14:32 - Immagini Docker malevole rimosse
La velocità della risposta di PyPI e il riconoscimento da parte dei manutentori sono encomiabili, ma la finestra di esposizione è stata significativa. LiteLLM ha oltre 92 milioni di download mensili, rendendo questo uno degli attacchi alla supply chain più impattanti dell'anno.
Perché Questo è Importante: Il Rischio per la Supply Chain AI
Questo incidente evidenzia una tendenza in crescita: gli attaccanti prendono sempre più di mira l'infrastruttura AI. LiteLLM non è solo una comodità per gli sviluppatori; è un componente critico dei gateway AI che gestiscono le chiavi API per OpenAI, Anthropic, Azure e altri importanti provider LLM. Una compromissione di questa libreria dà agli attaccanti accesso diretto alle chiavi che alimentano le applicazioni AI aziendali.
Questa è la seconda volta che LiteLLM viene compromesso quest'anno, dopo l'incidente di marzo che ha coinvolto le versioni 1.82.7 e 1.82.8. La ricorrenza suggerisce che la pipeline di rilascio del progetto presenta persistenti lacune di sicurezza che gli attaccanti stanno attivamente sfruttando.
Indicatori di Compromissione (IOC)
Amministratori di sistema e team di sicurezza dovrebbero immediatamente verificare i seguenti indicatori:
Indicatori di Rete
- Richieste POST a
www.litellm.dev/healthcheck - Intestazione HTTP
X-Token: XWiA8gZNa7NcX2XRoAEb - Richieste a
raw.githubusercontent.com/letters9813/pythonclient-test/main/domain.txt - Connessioni in uscita a
169.254.169.254(servizio metadata AWS) da processi Python
Indicatori sull'Host
- Presenza di
cook.pth,cook.pyesitecustomize.pyinsite-packages - File
/tmp/.pc_once_72129118c59f5636c0bbe/tmp/remote_code_loader.lock - Variabile d'ambiente
PRIVCOLLECT_ACTIVE=1 - Processi demone Python staccati (PID padre 1, sessione propria)
Passaggi di Recupero e Mitigazione
Gli esperti di sicurezza di Aikido e Wiz raccomandano le seguenti azioni immediate per chiunque possa aver installato la versione compromessa:
- Presumi la compromissione: Tratta tutti i sistemi che hanno installato
litellm==1.107.0come completamente compromessi. - Ruota tutte le credenziali: Revoca e ruota le chiavi cloud, le chiavi SSH, le sessioni del browser, i token del repository e le credenziali dei servizi AI da un sistema pulito.
- Ricostruisci gli ambienti: Non limitarti a reinstallare LiteLLM; ricostruisci gli ambienti colpiti da fonti attendibili e blocca le distribuzioni dei container a digest di immagini verificati.
- Esamina i log: Controlla i log cloud e del controllo del codice sorgente per accessi imprevisti dopo la data di installazione.
- Scansiona per IOC: Usa gli indicatori sopra per identificare altri sistemi potenzialmente infetti.
L'ultima versione sicura di LiteLLM è la 1.106.2, secondo l'analisi di Wiz. Anche i candidati alla release 1.107.0rc1 e rc2 sono confermati puliti, così come i pacchetti compagni litellm-proxy-extras==0.4.110 e litellm-enterprise==0.1.78.
Il Punto Fondamentale
La compromissione di LiteLLM serve come un duro promemoria che il software open source, per quanto reputato, non è immune a sofisticati attacchi alla supply chain. L'incidente sottolinea la necessità di pratiche di sicurezza rigorose nell'infrastruttura AI, inclusa la verifica dell'integrità dei pacchetti, l'uso di attestazioni di provenienza e il mantenimento di politiche complete di rotazione delle credenziali.
Mentre l'ecosistema AI continua a crescere a ritmo serrato, la comunità della sicurezza deve rimanere vigile. Gli attaccanti stanno chiaramente prendendo di mira gli strumenti in cui gli sviluppatori hanno maggiore fiducia, e l'incidente di LiteLLM probabilmente non sarà l'ultimo del suo genere. Le organizzazioni dovrebbero considerarlo un campanello d'allarme per verificare l'intera supply chain del software, non solo le applicazioni che costruiscono, ma anche le librerie e i framework che le sostengono.
Related News

DeepSeek apre le fonti di DeepInfer: il motore dietro i suoi 155 trilioni di token giornalieri

Nuovi Limiti ai Link di Meta: Le Pagine Facebook Ora Pagano per Pubblicare

Istruzioni AI Nascoste di WhatsApp Vietano i Rinvii agli Enti Regolatori nelle Pagine di Aiuto

Timestral di Mistral: Un Modello per Serie Temporali da 209M che Supera i Giganti su CPU

HybridAgents: Agenti LLM che Pensano nello Spazio Latente, Agiscono tramite Testo

