Vai al contenuto
AI.info

The Pulse

LiteLLM: la release 1.107.0 compromessa ha sottratto credenziali

LiteLLM afferma che una release compromessa del suo gateway di IA ha esposto al furto di credenziali gli utenti che hanno installato la versione 1.107.0 o eseguito immagini container interessate. L’azienda ha ricondotto l’attacco a credenzi

LiteLLM: la release 1.107.0 compromessa ha sottratto credenziali

AI.info Team · Scritto con l’IA · verificato ·

Il 21 ottobre, il processo di rilascio di LiteLLM ha pubblicato una versione malevola del suo gateway di IA, mettendo a rischio le credenziali per servizi cloud, strumenti di sviluppo e servizi di IA degli utenti che hanno installato il pacchetto o eseguito i container interessati. Secondo l’azienda, la release compromessa, la versione 1.107.0, è rimasta su PyPI per circa due ore e nelle immagini Docker per circa due ore e mezza, prima che gli artefatti interessati venissero rimossi.

L’esposizione ha riguardato i sette file wheel della versione 1.107.0 su PyPI e le immagini su Docker Hub e GitHub Container Registry contrassegnate con v1.107.0, latest, main-latest e main-stable. LiteLLM afferma che la sua release enterprise privata non è stata interessata e che le versioni precedenti sono sicure. In un aggiornamento del 22 ottobre nella segnalazione relativa all’incidente su GitHub, l’azienda ha dichiarato che l’indagine proseguiva e che i rilasci regolari restavano sospesi.

Le credenziali di tre sviluppatori hanno consentito di modificare il processo di rilascio

Nel ricostruire l’attacco, LiteLLM riferisce del furto di credenziali della GitHub CLI associate a tre account di sviluppatori. Gli aggressori le hanno usate per aggirare le protezioni dei branch, modificare il processo di rilascio privato e indirizzare una build verso un repository dal nome simile, Berri-AI/litellm, anziché verso il repository del progetto, BerriAI/litellm. Il tag v1.107.0 del codice sorgente ufficiale non conteneva i file malevoli.

Per riuscire nel suo intento, l’aggressore ha dovuto compromettere più controlli di sicurezza indipendenti.

Il rapporto sull’incidente di LiteLLM, redatto congiuntamente da Krrish Dholakia (amministratore delegato), Ishaan Jaffer (direttore tecnico), Oliver Jensen (direttore della sicurezza) e Nate Armstrong (responsabile degli ingegneri Rust)

Secondo la cronologia dell’azienda, il 21 ottobre alle 10:08 UTC una modifica non autorizzata al processo di rilascio ha aggirato le protezioni dei branch. Una build di staging ha usato il repository dal nome simile prima dell’avvio della pipeline di produzione; una seconda credenziale di sviluppatore ha permesso di superare il passaggio di approvazione per la produzione. Un terzo account è stato poi usato per cancellare i registri dei processi di produzione e staging, riducendo i log disponibili per l’indagine.

LiteLLM ritiene che un aggressore abbia avuto accesso a un’istanza interna esposta su Internet e ne abbia recuperato dai log i token OAuth della GitHub CLI. L’azienda afferma di aver osservato situazioni in cui Claude Code inserisce il token della GitHub CLI di un utente nel corpo di una risposta: se la risposta viene registrata nei log, il token potrebbe essere esposto. LiteLLM non ha confermato come l’aggressore abbia inizialmente ottenuto accesso all’istanza e indica una vulnerabilità corretta di recente come una delle possibilità al vaglio.

Python eseguiva il payload senza importare LiteLLM

I ricercatori di sicurezza di Datadog Security Labs hanno trovato tre file aggiunti nella directory site-packages di Python: cook.pth, cook.py e sitecustomize.py. Poiché Python elabora questi file di avvio quando si avvia un interprete, il programma che sottraeva le credenziali poteva essere eseguito anche se un’applicazione non importava mai LiteLLM. I file potevano inoltre essere eseguiti di nuovo quando gli utenti avviavano Python o pip nell’ambiente interessato.

Il malware cercava credenziali cloud, segreti SSH e Git, password dei browser, chiavi API dei fornitori di servizi di IA e credenziali per strumenti di programmazione tra cui Claude, Codex, Gemini, Cursor e Copilot. Su un proxy LiteLLM configurato con un database, poteva anche interrogare le tabelle contenenti le chiavi dei fornitori archiviate. Un componente separato controllava un file ospitato su GitHub alla ricerca di istruzioni ed era progettato per scaricare ed eseguire codice Python remoto; Datadog ha dichiarato che il file conteneva soltanto valori di test e di non aver osservato un payload di seconda fase.

LiteLLM invita gli utenti esposti a considerare rubati i propri segreti

L’azienda consiglia agli utenti che hanno installato v1.107.0 o eseguito un’immagine interessata durante il periodo di esposizione di considerare compromesso l’ambiente. Indica di rimuovere i file di avvio prima di lanciare nuovamente Python, ricostruire l’ambiente da zero usando la versione 1.106.2 e sostituire tutte le credenziali a cui l’host interessato poteva accedere, comprese le chiavi dei fornitori, i ruoli cloud e le password dei database. LiteLLM avverte che l’assenza di un file marcatore non dimostra che il sistema sia pulito.

Secondo l’azienda, entro le 14:20 UTC del 21 ottobre i tag e le varianti delle immagini interessati su Docker Hub erano stati rimossi o reindirizzati ad artefatti verificati come puliti; PyPI aveva rimosso v1.107.0 entro le 13:23 UTC. Nell’aggiornamento del 22 ottobre pubblicato nella segnalazione relativa all’incidente del progetto, LiteLLM ha riferito che non vi erano stati sviluppi sostanziali dall’aggiornamento precedente e che i suoi registry restavano bloccati per i nuovi rilasci. L’azienda ha dichiarato che avrebbe smesso di pubblicare aggiornamenti programmati ogni due ore, per pubblicarne invece quando fossero emersi sviluppi significativi.

Fonti

Esplora

Altri articoli