L’azienda LiteLLM ha recentemente rivelato che l’attacco alla sua supply chain, avvenuto la scorsa settimana, è stato innescato da una chiave master esposta in modo accidentale su un repository pubblico di GitHub lo scorso maggio.
Il controverso episodio ha avuto inizio quando qualcuno ha caricato una versione compromessa (1.107.0) del popolare gateway AI open source su PyPI e i suoi registri di container mercoledì scorso. Questa versione alterata conteneva un infostealer e un trojan remoto capace di eseguire codice arbitrario sui sistemi infetti.
Nonostante la versione trojanizzata sia rimasta disponibile su PyPI per meno di due ore prima di essere quarantinata, ha già accumulato circa 49.000 download, secondo quanto riportato da Wiz.
In un postmortem rilasciato venerdì, LiteLLM ha ricostruito la catena di attacco legata al rilascio compromesso, risalendo a un file di configurazione contenente una chiave master che era stato imprecisamente commesso nel repository pubblico di LiteLLM-Labs/lite-harness il 27 maggio. Questa chiave apparteneva a un tool open source utilizzato internamente da LiteLLM per orchestrare agenti AI. Sebbene i programmatori del progetto abbiano rapidamente individuato l’errore e rimosso il commit esposto, non hanno revocato la chiave master.
“Il 10 ottobre, l’attore malevolo ha utilizzato questa chiave per accedere alla nostra piattaforma LiteLLM Agent ed estrarre questo token OAuth di GitHub CLI,” riportano i dettagli dell’incidente. “Da questo punto in poi, l’attore ha avuto accesso di livello proprietario a tutti i repository nel nostro GitHub.”
Ciò è particolarmente preoccupante poiché i token GitHub CLI sono “post-2fa”, il che significa che non attivano i flussi di autenticazione in modalità sudo di GitHub, normalmente richiesti per eseguire azioni sui repository di alto impatto.
Il token ha consentito all’attaccante di effettuare commit malevoli in branch di altri repository interni, incluse le procedure progettate per rubare eventuali token e segreti disponibili durante il processo di sviluppo della continuous integration. Questo ha permesso loro di sottrarre altri token OAuth di GitHub CLI collegati a due ingegneri con privilegi di manutenzione.
Inoltre, hanno acquisito token per diversi altri sistemi interni. “Esaminando l’attività dell’attore su questi altri sistemi, emergono tentativi di identificare ed esfiltrare ulteriori chiavi e token, con un focus primario sui token per l’API di inference upstream,” ha notato LiteLLM.
A questo punto, avendo rubato diverse identità privilegiate, il trasgressore poteva apportare modifiche ai repository di GitHub senza suscitare sospetti, poiché le azioni e le approvazioni apparivano tutte provenienti da ingegneri legittimi e accreditati.
In risposta a questa situazione, gli sviluppatori di LiteLLM stanno revocando ogni token associato a tutti i sistemi interni e alle piattaforme dei fornitori. “Questo incidente ha fornito una forte illustrazione dei rischi associati al mancato rinnovo di una chiave potenzialmente esposta,” hanno scritto.
Gli infostealers nascosti all’interno del pacchetto compromesso erano progettati per raccogliere una grande quantità di informazioni sensibili, inclusi credenziali e cookie dei browser Chrome, Firefox, Edge e Safari, oltre a credenziali AWS, chiavi di account di servizio per Google Cloud Platform e token di Microsoft Azure. Sono stati anche sottratti chiavi API per OpenAI, Anthropic, Cohere e altri fornitori di LLM.
Pertanto, se hai installato ed eseguito la versione 1.107.0, assume che tutte le credenziali accessibili al sistema interessato potrebbero essere state rubate. È consigliabile investigare sui sistemi colpiti, cambiare le password e rinnovare le chiavi esposte. Una preghiera al santo patrono delle supply chain non guasterebbe, comunque.



