LiteLLM supply chain attack: quando il guardiano apre la porta
Il 24 marzo 2026, due versioni di LiteLLM pubblicate su PyPI contenevano un infostealer a tre stadi. Novantacinque milioni di download mensili, tre ore di esposizione, credenziali cloud e chiavi SSH nel mirino. Il LiteLLM supply chain attack non è l’ennesima storia di maintainer distratto: è la dimostrazione che lo stack AI ha una superficie d’attacco che la maggior parte dei team non ha ancora misurato.

La timeline: cinque giorni da Trivy a PyPI
Il 19 marzo, il gruppo TeamPCP — tracciato anche come DeadCatx3, PCPcat e CipherForce — compromette la pipeline CI/CD di Trivy, lo scanner di vulnerabilità open source di Aqua Security. Il bottino è il token PYPI_PUBLISH associato al progetto LiteLLM.
Quattro giorni dopo, Checkmarx individua attività sospetta. Ma è tardi: il 24 marzo alle 10:39 UTC appare litellm 1.82.7 su PyPI. Tredici minuti dopo, 1.82.8. PyPI mette in quarantena entrambe le versioni circa tre ore più tardi. In quella finestra, chiunque abbia eseguito pip install litellm — o aggiornato un progetto con dipendenza non pinnata — ha scaricato il malware.
La scoperta concreta arriva da FutureSearch: un plugin MCP in Cursor scarica litellm come dipendenza transitiva, la macchina esaurisce la RAM per una fork bomb. Qualcuno nota, scava, trova.
Come funziona il malware: il meccanismo .pth
Le due versioni usano approcci distinti. La 1.82.7 incorpora il payload dentro proxy_server.py (doppio base64), attivo solo quando viene importato il modulo proxy. La 1.82.8 è più aggressiva: installa litellm_init.pth nella directory site-packages/. I file .pth vengono eseguiti da Python ad ogni avvio dell’interprete, prima di qualsiasi script utente, indipendentemente da qualsiasi import.




