SANDCLOCK: LiteLLM-Supply-Chain-Angriff greift CI/CD-Secrets ab

Schritt für Schritt
So lief der Angriff ab
Klicken Sie auf eine Phase für Details – oder lassen Sie die Animation durchlaufen.
PHASE 1/6 · Vorbereitung der Lieferkette

Die Angreifer bauten ihre Infrastruktur auf und kompromittierten mit Trivy ein vorgelagertes Scanning-Werkzeug.

T1608 – Stage Capabilities T1583.001 – Acquire Infrastructure: Domains
  • 19.03.2026: Kompromiss des Security-Scanners Trivy als vorgelagerter Angriffsweg
  • 23.03.2026: Registrierung der Domains models.litellm.cloud und checkmarx.zone
  • Kampagne zugeschrieben als TeamPCP / SANDCLOCK
  • Gestohlene CI/CD- und PyPI-Zugangsdaten ebneten den Weg zu LiteLLM
PHASE 2/6 · Erstzugriff auf die Lieferkette

Über einen kompromittierten Maintainer-Zugang wurden zwei bösartige LiteLLM-Versionen direkt auf PyPI hochgeladen.

T1195.001 – Supply Chain Compromise: Compromise Software Dependencies and Development Tools T1078 – Valid Accounts
  • 24.03.2026 10:39 UTC: Version 1.82.7, 10:52 UTC: Version 1.82.8 veröffentlicht
  • Kompromittierter Maintainer- bzw. Veröffentlichungszugang
  • Reguläre abgesicherte GitHub-Release-Wege wurden umgangen
  • LiteLLM wird typischerweise 15–20 Mio. Mal pro Woche installiert
PHASE 3/6 · Ausführung

Der Schadcode aktivierte sich beim Import oder sogar automatisch beim Start des Python-Interpreters.

T1059.006 – Command and Scripting Interpreter: Python T1204.003 – User Execution: Malicious Image
  • 1.82.8 nutzte litellm_init.pth – Ausführung ohne Import beim Python-Start
  • 1.82.7 platzierte den Code in litellm/proxy/proxy_server.py, ausgelöst beim Import
  • Besonders gefährlich in CI/CD-Build-Pipelines
  • Über 119.000 Downloads der betroffenen Versionen
PHASE 4/6 · Sammlung von Zugangsdaten

Ein Credential-Stealer sammelte gezielt Geheimnisse aus Umgebung, Dateien und Cloud-Diensten.

T1552.001 – Unsecured Credentials: Credentials In Files T1552.005 – Unsecured Credentials: Cloud Instance Metadata API T1082 – System Information Discovery
  • Erfasst: API-Schlüssel, Umgebungsvariablen, SSH-Schlüssel, Git-/Registry-Tokens, .env-Dateien
  • Cloud-Zugangsdaten für AWS, GCP und Azure
  • Kubernetes-Service-Account-Tokens, Datenbank- und LDAP-Konfigurationen, Shell-Historien
  • Analysen von OSV, Datadog und Snyk (SNYK-PYTHON-LITELLM-15762713, PYSEC-2026-2)
PHASE 5/6 · Exfiltration

Die gestohlenen Daten wurden lokal verschlüsselt und per HTTPS an die Angreifer-Domain gesendet.

T1041 – Exfiltration Over C2 Channel T1567 – Exfiltration Over Web Service
  • Übertragung an models.litellm.cloud per HTTPS
  • Daten vor dem Versand lokal verschlüsselt
  • Resecurity: 152,5-GiB-Archiv mit 415.427 Secret-Capture-Dateien
  • Manifeste zu 898 GitHub-Ownern und 2.038 Repositories
PHASE 6/6 · Auswirkung

Der Vorfall exponierte potenziell tausende Unternehmen und CI/CD-Pipelines, bis PyPI das Paket unter Quarantäne stellte.

  • Expositionsfenster: LiteLLM ~40 Min., PyPI 2 Std. 32 Min. bis zur Quarantäne
  • CloudSEK: >2.500 Unternehmen, 434.000 CI/CD-Pipelines potenziell exponiert (keine bestätigten Opferzahlen)
  • LiteLLM rotierte Zugangsdaten und zog Mandiant zur Forensik hinzu
  • Saubere Release v1.83.0 aus gehärteter CI/CD-v2-Pipeline am 30.03.2026
Kurz & knapp beantwortet
Häufige Fragen zu diesem Vorfall
Bin ich von dem LiteLLM-Angriff betroffen?
Betroffen sind ausschließlich die PyPI-Versionen litellm 1.82.7 und 1.82.8, die am 24. März 2026 zwischen 10:39 und ca. 13:11 UTC verfügbar waren. Sie sind gefährdet, wenn Sie LiteLLM in diesem Zeitfenster per pip installiert oder ausgeführt haben – direkt oder als Unterabhängigkeit eines anderen Pakets. Wer das offizielle LiteLLM-Proxy-Docker-Image nutzte, war laut Hersteller nicht betroffen.
Wie prüfe ich, ob ich die schädliche Version installiert hatte?
Durchsuchen Sie Ihre Abhängigkeitsdateien (requirements.txt, poetry.lock, Dockerfiles etc.) sowie Build- und Deployment-Logs vom 24. März 2026 nach den Zeichenketten litellm==1.82.7 und litellm==1.82.8. Suchen Sie auf einem isolierten Dateisystem im site-packages-Verzeichnis nach der Datei litellm_init.pth, die auf Version 1.82.8 hinweist. Prüfen Sie außerdem DNS- und Proxy-Logs auf Verbindungen zu models.litellm.cloud und checkmarx.zone.
Was muss ich jetzt konkret tun?
Trennen Sie verdächtige Hosts, Container und CI-Runner vom Netz, bevor Sie sie analysieren, da bei Version 1.82.8 schon das Starten von Python den Schadcode auslösen kann. Aktualisieren Sie auf die saubere Version v1.83.0 oder eine geprüfte Release wie v1.82.6. Dokumentieren Sie für jedes betroffene System, welche Zugangsdaten der Prozess lesen konnte, und rotieren Sie diese anschließend.
Welche Daten wurden bei dem Angriff gestohlen?
Der Schadcode war ein Credential-Stealer, der gezielt Zugangsdaten sammelte: API-Schlüssel, Umgebungsvariablen, SSH-Schlüssel, Git- und Registry-Tokens, .env-Dateien, Cloud-Zugangsdaten für AWS, GCP und Azure, Kubernetes-Service-Account-Tokens sowie Datenbank- und LDAP-Konfigurationen. Die gestohlenen Daten wurden verschlüsselt und per HTTPS an die Angreifer-Domain models.litellm.cloud übertragen.
Reicht ein Update auf die neue Version aus, um sicher zu sein?
Nein. Ein Update entfernt zwar den Schadcode, aber bereits abgeflossene Zugangsdaten bleiben in den Händen der Angreifer. Sie müssen alle Zugangsdaten rotieren, die die betroffenen Prozesse lesen konnten, und je nach Betroffenheit personenbezogener Daten Ihre DSGVO-Pflichten prüfen. Die kompromittierten Versionen wurden bereits von PyPI entfernt.
Weitere Security-News
Das könnte Sie auch interessieren
Kritische Elementor-Pro-Lücke: Angreifer können WordPress-Seiten komplett übernehmen
Ein Datei-Upload-Bug in Elementor Pro bis 4.2.1 erlaubt RCE ohne Login. Version 4.2.2 schließt die Lücke – jetzt aktualisieren!
Pods-Plugin: Kritische Lücke erlaubt Admin-Übernahme ohne Login
Eine kritische Schwachstelle im WordPress-Plugin Pods lässt Angreifer ohne Login Admin-Passwörter überschreiben. Über 100.000 Sites betroffen.
miniOrange SAML SSO: Kritischer Bypass macht Angreifer zu WordPress-Admins
Zwei kritische Auth-Bypässe im miniOrange SAML SSO Plugin erlauben gefälschte SAML Assertions – bis hin zum vollen Admin-Zugriff.