Schadhafte LiteLLM-Version 1.107.0 auf PyPI stiehlt Zugangsdaten, warnt Wiz

Das Sicherheitsunternehmen Wiz berichtet, dass am 21. Oktober eine schadhafte Version des Python-Pakets LiteLLM, 1.107.0, auf PyPI hochgeladen wurde. Sie soll auf den Systemen, auf denen sie installiert wird, Zugangsdaten stehlen. Laut Wiz wurden zudem manipulierte LiteLLM-Docker-Images veröffentlicht. Die jüngste sichere Version ist v1.106.2.
- Eine schadhafte LiteLLM-Version 1.107.0 wurde laut Wiz am 21. Oktober um 11:39 Uhr UTC auf PyPI hochgeladen und ab 1:20 Uhr UTC unter Quarantäne gestellt.
- Auch Docker-Images auf GHCR und Docker Hub, darunter die Tags latest, main-latest und main-stable, enthielten die manipulierte Version.
- Die Malware stiehlt Secrets aus System, Browser, Entwicklungsumgebung, Cloud und KI-Tools und sendet sie an die vom Angreifer kontrollierte Domain www.litellm.dev.
- Die jüngste sichere Version ist v1.106.2.
Was passiert ist
Laut Wiz wurde die schadhafte LiteLLM-Version 1.107.0 am 21. Oktober um 11:39 Uhr UTC auf PyPI hochgeladen. Ab 1:20 Uhr UTC stellte PyPI sie unter Quarantäne. LiteLLM ist ein weit verbreitetes Paket in der KI-Entwicklung, und die Kompromittierung reicht über PyPI hinaus.
Wiz zufolge enthielten auch LiteLLM-Docker-Container auf GHCR und Docker Hub die manipulierte Version. Betroffen waren die Tags v1.107.0, latest, main-latest und main-stable. Die jüngste sichere Version ist laut dem Bericht v1.106.2.
So funktioniert die Malware
Bei der Installation des schadhaften Pakets werden drei Dateien direkt in das Stammverzeichnis von site-packages entpackt: cook.pth, cook.py und sitecustomize.py. Wiz erklärt, dass diese Dateien so ausgelegt sind, dass sie bei jedem Start eines Python-Interpreters ausgeführt werden.
Beim Start verarbeitet der Interpreter cook.pth, das einen Befehl zum Import von cook enthält und so cook.py lädt. Diese Datei entschleiert sich selbst, führt eine Stealer-Routine aus und schreibt eine Markierung nach /tmp/.pc_once_72129118c59f5636c0bb. Wiz weist darauf hin, dass dieser Schritt unter Windows scheitert, da der Pfad /tmp/ dort häufig nicht existiert.
Die Stealer-Routine sammelt Secrets aus System, Browser, Entwicklungsumgebung, Cloud und KI-Tools, verschlüsselt sie und sendet sie per POST-Anfrage an www.litellm.dev/healthcheck. Laut Wiz wird diese Domain vom Angreifer kontrolliert und gibt sich als LiteLLM-Infrastruktur aus.
Python-Interpreter versuchen außerdem, sitecustomize.py auszuführen, allerdings nur auf Linux- und MacOS-Rechnern. Das Skript versucht, eine Datei namens domain.txt von einem GitHub-Dead-Drop abzurufen. Bekommt es eine Antwort, versucht es, ein Python-Skript der zweiten Stufe von http://<domain>/codepy herunterzuladen und auszuführen. Zum Zeitpunkt der Analyse von Wiz war domain.txt nie befüllt worden. Das Repository wurde um 13:30 Uhr UTC entfernt.
Betroffene Artefakte
Wiz hat SHA256-Hashes veröffentlicht, damit Teams die manipulierten Builds erkennen können. Die Liste umfasst sieben Wheel-Dateien der Version 1.107.0:
- macOS-Builds für x86_64 und arm64
- manylinux_2_28-Builds für aarch64 und x86_64
- musllinux_1_2-Builds für aarch64 und x86_64
- ein Windows-Build für win_amd64
Außerdem nennt Wiz Hashes für Container-Images: ghcr.io/berriai/litellm:v1.107.0, ghcr.io/berriai/litellm-database:v1.107.0, ghcr.io/berriai/litellm-non_root:v1.107.0 und docker.io/litellm/litellm, jeweils für linux/amd64 und linux/arm64.
Was das für Nutzer bedeutet
Wer LiteLLM 1.107.0 von PyPI installiert oder die betroffenen Container-Tags gezogen hat, sollte die Umgebung als möglicherweise kompromittiert betrachten, da der Stealer auf Secrets aus Cloud, Entwicklung und KI-Tools abzielt. Wiz nennt v1.106.2 als letzte sichere Version und listet die Hashes auf, mit denen sich betroffene Instanzen identifizieren lassen. Wiz-Kunden verweist das Unternehmen auf den Hinweis im Threat Intel Center mit dem Titel Supply Chain Attack Targeting LiteLLM.
Da auch die Container-Tags latest, main-latest und main-stable betroffen waren, können Deployments, die statt fixierter Versionen auf wandernde Tags setzen, den schadhaften Build ohne bewusstes Update übernommen haben.
Wiz: LiteLLM Compromised, Steals Credentials


