Kompromittierung von litellm 1.82.7/1.82.8: Mechanismus zum Diebstahl von Zugangsdaten via PyPI
Die litellm-Bibliothek in den Versionen 1.82.7 und 1.82.8 auf PyPI enthält bösartigen Code, der SSH-Schlüssel, Cloud-Zugangsdaten, Kubernetes-Geheimnisse und API-Schlüssel stiehlt. Der Angriff nutzt die Lieferkette und löst sich automatisch aus, wenn der Python-Interpreter gestartet oder das Modul importiert wird. Betroffene Systeme umfassen solche mit transitiven Abhängigkeiten, wie z. B. die MCP-Plugins von Cursor.
Erkennung des Vorfalls
Der Angriff wurde durch eine Fork-Bombe in einer .pth-Datei sichtbar, die die Ressourcen des Hosts erschöpft hat. Ohne diesen Bug hätte die Malware unbemerkt operieren können. Die Versionen wurden am 24. März 2026 zwischen 10:39–10:52 UTC veröffentlicht, ohne jegliche GitHub-Updates – der bösartige Code wurde nur in PyPI-Artefakten injiziert und umging so die Code-Überprüfung.
Forscher von FutureSearch stellten das Fehlen von Release-Tags fest. Das Repository ist sauber, was typisch für Supply-Chain-Angriffe ist.
Technische Details der Malware
Stufe 1: Datensammlung
Payload extrahiert:
- SSH-Schlüssel und -Konfigurationen.
.env-Dateien.- AWS-, GCP-, Azure-Zugangsdaten.
- Kubeconfig und Kubernetes-Geheimnisse.
- Datenbankpasswörter.
- Shell-Verlauf.
- Crypto-Wallet-Dateien.
- Umgebungsvariablen.
Abfragen werden an die IMDS-Endpunkte der Cloud-Provider gesendet.
Stufe 2: Exfiltration
Die Daten werden mit AES-256-CBC verschlüsselt (unter Verwendung eines hartcodierten RSA-4096-Öffentlichen Schlüssels) und an models.litellm[.]cloud gesendet – eine inoffizielle Domain.
Stufe 3: Persistenz
In Kubernetes unternimmt die Malware:
- Liest alle Cluster-Geheimnisse über den Service-Account-Token aus.
- Erstellt privilegierte
alpine:latest-Pods imkube-systemmit gemountetem Host-FS. - Installiert den Backdoor
~/.config/sysmon/sysmon.py. - Registriert einen systemd-User-Service, der auf allen Knoten läuft.
Version 1.82.8 verwendet litellm_init.pth (34.628 Bytes), das automatisch von Python ausgeführt wird. 1.82.7 enthält obfuskiereten Code in proxy/proxy_server.py.
Erkennung und Behebung
Überprüfen Sie Systeme mit diesen Befehlen:
# litellm-Version
pip show litellm
# Spuren im uv-Cache
find ~/.cache/uv -name "litellm_init.pth"
# Backdoor
ls ~/.config/sysmon/sysmon.py
ls ~/.config/systemd/user/sysmon.service
In Kubernetes: kubectl get pods -n kube-system | grep node-setup-.
Falls Versionen 1.82.7/1.82.8 installiert sind:
pip uninstall litellm
rm -rf ~/.cache/uv
# Oder: pip cache purge
Rollback auf 1.82.6 (22. März, sauber nach Endor Labs). Rotieren Sie alle Zugangsdaten: SSH-Schlüssel, Cloud-Token, kubeconfig, API-Schlüssel, DB-Passwörter. Überprüfen Sie CI/CD-Pipelines und Docker-Images der letzten 24–48 Stunden.
Kontext der TeamPCP-Kampagne
Der Angriff ist Teil der TeamPCP-Kampagne (seit Dezember 2025):
- März: Trivy (75/76 Tags von
trivy-action). - 21.–23. März: KICS/Checkmarx, OpenVSX, CanisterWorm in npm (64+ Pakete).
- März: litellm.
Gemeinsame Marker: AES-256 + RSA-4096, ein öffentlicher Schlüssel. Das GitHub-Issue #24512 in litellm wurde als „not planned“ mit verdächtigen Kommentaren geschlossen – mögliche Konto-Kompromittierung.
Indikatoren für Kompromittierung
- C2-Domain:
models.litellm[.]cloud. - Datei:
litellm_init.pth. - SHA-256:
ceNa7wMJnNHy1kRnNCcwJaFjWX3pORLfMh7xGL8TUjg. - Backdoor:
~/.config/sysmon/sysmon.py. - K8s: Pods
node-setup-*imkube-system.
Wichtige Punkte
- Bösartiger Code in
.pthlöst sich ohneimportaus und betrifft alle Python-Prozesse. - Exfiltration ist verschlüsselt; C2 ist eine gefälschte litellm-Domain.
- Kubernetes-Exploit ermöglicht vollen Cluster-Zugriff über privilegierte Pods.
- Teil der TeamPCP-Kette: Überwachen Sie Trivy, KICS, npm-Pakete.
- Rollback auf 1.82.6 + vollständige Rotation der Zugangsdaten ist zwingend erforderlich.
— Editorial Team
Noch keine Kommentare.