LiteLLM 1.107.0: geleakter Schlüssel wurde zu Malware auf PyPI

LiteLLM 1.107.0, die am 21. Oktober 2026 mit Malware verbreitete Version, hat jetzt einen Root-Cause-Bericht. LiteLLM hat den Bericht zu dem Vorfall veröffentlicht, bei dem die Version 1.107.0 seines Pakets vergiftet wurde. Die Schlussfolgerung ist eindeutig: Es musste keine Software-Schwachstelle ausgenutzt werden. Ein Master-Key, der im Mai in ein öffentliches Repository gelangt war, wurde nie widerrufen und ermöglichte es einem Angreifer fünf Monate später, den Release-Prozess des Projekts zu übernehmen und offizielle Pakete mit Malware zu veröffentlichen.

Das bösartige Paket litellm==1.107.0 war etwa zwei Stunden lang auf PyPI verfügbar, von 11:39 bis 13:23 UTC, und die Docker-Images mit den Tags v1.107.0, latest, main-latest und main-stable blieben bis 14:20 UTC auf Docker Hub und bis 13:51 UTC in der GitHub Container Registry kompromittiert. Der Code stahl Zugangsdaten und lud Tools zur Remote-Code-Ausführung, und er lief, sobald Python auf dem Rechner startete – selbst wenn niemand LiteLLM nutzte. Schätzungen von Wiz auf Basis von ClickPy-Daten gehen von etwa 49.000 Downloads der kompromittierten Version im Expositionsfenster aus. LiteLLM verzeichnet rund 23 Millionen Downloads pro Woche.

Wie es geschah

Am 27. Mai 2026 wurde eine Konfigurationsdatei namens opencode.json mit dem Master-Key eines internen LiteLLM-Systems (der Agent Platform) in ein öffentliches GitHub-Repository hochgeladen. Die Datei wurde etwa drei Stunden später gelöscht, doch der Commit blieb bis zum 22. Oktober in der öffentlichen Historie – und der Schlüssel wurde, in LiteLLMs eigenen Worten, nie widerrufen.

Am 10. Oktober nutzte der Angreifer diesen Schlüssel und fand in den Antworten der Plattform ein GitHub-Login-Token, das einem der Eigentümer der GitHub-Organisation von LiteLLM gehörte. Mit diesem Token stahl er die Token zweier weiterer Ingenieure und nutzte am 21. Oktober alle drei, um den Release-Prozess auf ein ähnlich aussehendes Repository umzuleiten (Berri-AI/litellm statt des legitimen BerriAI/litellm), die Veröffentlichung freizugeben und die Aufzeichnungen zu löschen. In derselben Woche hatte LiteLLM die Freigaberegel für Releases vorübergehend gelockert, damit zwei Ingenieure täglich Bugfix-Backports veröffentlichen konnten – und der Angreifer nutzte genau diese Lücke aus.

Wer betroffen ist und was zu tun ist

Wer litellm==1.107.0 von PyPI installiert oder eines der betroffenen Images am 21. Oktober ausgeführt hat, sollte die Umgebung als kompromittiert betrachten. LiteLLM empfiehlt, Umgebungen und Images von Grund auf neu zu erstellen und dabei die Version 1.106.2 oder eine andere explizite Version von vor dem Vorfall zu pinnen – idealerweise per Image-Digest statt per Tag bereitzustellen. Außerdem müssen von einem sauberen Rechner aus alle Zugangsdaten rotiert werden, die der betroffene Host erreichen konnte: KI-Anbieter-Schlüssel in der Proxy-Datenbank, LiteLLM-Master- und Virtual-Keys, das Datenbankpasswort, Git-, SSH- und Paket-Registry-Token sowie Cloud-Rollen. Microsoft veröffentlichte am 23. Oktober ausführliche Erkennungsanleitungen mit der Exposure-ID TVM-2026-0003 und Erkennungen namens Trojan:PyPI/LiteLlmSupplyChain.

Ein wichtiges Detail: Die bösartigen Images tragen eine gültige Signatur des alten LiteLLM-Signaturschlüssels. Eine gültige Signatur dieses Schlüssels beweist daher nichts über die Images der Version 1.107.0. Die Releases ab 1.106.3, die am 24. Oktober erschienen, nutzen bereits einen neuen Cosign-Schlüssel. Enterprise-Kunden, die LiteLLMs private Registry nutzen, waren von dem Vorfall nicht betroffen.

Was LiteLLM ändern wird

Am 30. Oktober veröffentlichte LiteLLM die Liste der Änderungen: Die Release-Freigabe liegt wieder bei einem einzigen dedizierten Konto, das an ein physisches Gerät im Büro gebunden ist; Eigentümerkonten können keine OAuth-Apps mehr autorisieren und nicht mehr per Token gesteuert werden; Secret-Scanning-Alarme werden erst geschlossen, wenn der Widerruf bestätigt ist; GitHub-Audit-Logs speisen die Alarmierung; und ein externer Verifizierer vergleicht veröffentlichte PyPI- und Docker-Artefakte mit dem getaggten Quellcode und kann Abweichungen automatisch zurückziehen. Ein Teil der Maßnahmen ist bereits abgeschlossen, der Rest ist zwischen dem 15. November 2026 und dem 31. Januar 2027 fällig.

Separat dazu legte LiteLLM am 27. Oktober eine andere kritische Schwachstelle offen, die nur Proxys mit Enterprise-Lizenz betrifft (GHSA-w4c7-34wj-hqm8, CVSS 10.0, keine CVE), behoben in den Versionen 1.103.10, 1.104.8, 1.105.6 und 1.106.5. Open-Source-Installationen ohne Lizenz sind davon nicht betroffen.

Was noch unbekannt ist

Bisher hat niemand den Angriff einem Akteur zugeordnet, und es gibt keine öffentliche Bestätigung, wie viele Installationen es gab oder ob die gestohlenen Zugangsdaten verwendet wurden. LiteLLM gibt an, zu glauben, alle Token nachverfolgt zu haben, die der Angreifer erreichen konnte.

Titelbild: Offizielle LiteLLM-Grafik, via litellm.ai.

Quellen: Offizieller Vorfallbericht von LiteLLM; AI Cyber Brief — LiteLLM explains its poisoned release; DEV Community — Deleting the File Didn't Revoke the Key.

Transparenz: Dieser Artikel wurde mit Unterstützung künstlicher Intelligenz erstellt, auf Grundlage öffentlicher Beiträge und im Text zitierter Internetquellen. Wir empfehlen, die Originalquellen zur Bestätigung der Angaben zu konsultieren.

Von Muse