47.000 Downloads in 46 Minuten: LiteLLM gehackt
Jemand hat manipulierte LiteLLM-Pakete auf PyPI geschoben. In nicht mal einer Stunde wurden sie 47.000 Mal heruntergeladen.
Was passiert ist
LiteLLM ist ein beliebtes Python-Paket, das als Proxy für verschiedene LLM-APIs dient. Angreifer haben kompromittierte Versionen auf PyPI hochgeladen — den zentralen Paketmanager für Python. Die vergifteten Pakete waren 46 Minuten lang live, bevor sie entdeckt und entfernt wurden.
Zahlenbox
- 47.000** — Downloads der kompromittierten Pakete
- 46 Minuten** — so lange waren die Pakete online
- 2.337** — Pakete, die LiteLLM als Abhängigkeit nutzen
- 88%** — davon hatten KEINE Version gepinnt
Das eigentliche Problem
Daniel Hnyk hat über den BigQuery-PyPI-Datensatz die Zahlen rekonstruiert. Sein Befund ist brutal: Von den 2.337 Paketen, die LiteLLM als Dependency einbinden, hatten nur 12% ihre Versionen so fixiert, dass sie die manipulierte Version automatisch ausgeschlossen hätten.
💡 Was das bedeutet
Wer `litellm` ohne Versions-Pin in seinen Requirements hat, hat sich das kompromittierte Paket möglicherweise automatisch gezogen. CI/CD-Pipelines, Docker-Builds, frische Installationen — alles, was in diesen 46 Minuten ein `pip install` lief, ist potenziell betroffen. Supply-Chain-Angriffe brauchen keine Wochen. Sie brauchen Minuten.
✅ Pro
- PyPI hat schnell reagiert und die Pakete entfernt
- Die Community hat den Angriff transparent aufgearbeitet
❌ Con
- 88% aller abhängigen Pakete waren schutzlos
- 46 Minuten reichten für 47.000 Downloads
- Kein automatischer Schutzmechanismus hat gegriffen
Pinnt eure Versionen
Die Lektion ist simpel und wird trotzdem ignoriert: `litellm>=1.0` in den Requirements ist eine Einladung für Angreifer. Wer Versionen nicht pinnt, spielt russisches Roulette mit seiner Software-Lieferkette. Und 88% der LiteLLM-Nutzer hatten den Revolver am Kopf.