LiteLLM-releasepipeline opnieuw gekaapt: infostealer verspreid als v1.107.0 op PyPI en Docker Hub
In de ochtend van 21 oktober 2026 verscheen een kwaadaardige LiteLLM-release op PyPI en in de officiële Docker-images van het project. Versie 1.107.0 vervoerde een credential stealer en een remote-code-loader in plaats van de code die de maintainers hadden geschreven. Volgens de eigen security-update van LiteLLM was de releasepipeline zelf gecompromitteerd, met gelekte GitHub-credentials uit ontwikkelaarsaccounts van het project. De kwaadaardige wheels stonden minder dan twee uur op PyPI, en de besmette Docker-tags overleefden de hele middag. In een ecosysteem van geautomatiseerde builds en vastgezette dependencies was dat ruim lang genoeg om gevolgen te hebben.
Een schone tag, een vergiftigde build
De openbaarmaking leest als een checklist van hoe broos vertrouwen in pakketten is. LiteLLM meldt dat de aanvaller GitHub CLI OAuth-tokens bemachtigde van drie ontwikkelaarsaccounts, blijkbaar vastgelegd in de logs van een internet-exposed interne LiteLLM-implementatie; een van de accounts was van een GitHub-organisatie-eigenaar. Met die credentials werd branch-bescherming omzeild, werd een workflowwijziging geforceerd gepusht en werd de pipeline gericht op een lookalike-repository: Berri-AI/litellm, één streepje verwijderd van het echte BerriAI/litellm. De officiële git-tag van v1.107.0 bleef schoon; de kwaadaardige artifacts werden gecompileerd vanuit het nep-repository."Deze versie bevatte gecompileerde malware die inloggegevens steelt en tools laadt voor het uitvoeren van externe code." — security-update van LiteLLM, 21 oktober 2026De detectie was in elk geval snel. Zoals BleepingComputer meldt, markeerden securitybedrijven waaronder Socket en Endor Labs de release binnen ongeveer zes minuten, en PyPI had de wheels om 13:23 UTC verwijderd; Docker Hub werd die middag schoongeveegd. LiteLLM zegt dat klanten van zijn privé-enterpriseregistry niet zijn getroffen. Zes minuten telt nog steeds wanneer een pakket zo'n 92 miljoen downloads per maand trekt en bedrijven als NVIDIA, Netflix en Okta tot zijn gebruikers behoren, volgens BleepingComputer.
Waar de stealer op jacht gaat
De mechanica van de payload verklaart de keiharde adviezen. De wheels dropten drie bestanden — cook.pth, cook.py en sitecustomize.py — in de site-packages-map van Python. Python voert die bestandstypes uit bij elke start van de interpreter, dus elk Python-proces op de machine draaide de malware, ook als LiteLLM nooit werd geïmporteerd. De technische uiteenzetting van Datadog Security Labs voegt toe dat het verwijderen van het litellm-pakket de bestanden niet wegneemt; ze moeten met de hand worden gewist. Kodems incidentanalyse documenteert waar de stealer op uit was:- Cloud- en infrastructuurcredentials: AWS-, Azure- en GCP-keys inclusief instance-metadata-tokens, plus Kubernetes-, Docker- en Terraform-secrets
- AI-specifiek materiaal: LLM-provider-API-keys, credentials in de LiteLLM-proxydatabase en sessiebestanden van AI-codingtools
- Developer- en registry-tokens: Git-credentials, GitHub-, npm- en PyPI-tokens, SSH-, GPG- en TLS-keys
- Lokale secrets: .env-bestanden, omgevingsvariabelen, shell- en database-histories
- Browserdata: opgeslagen wachtwoorden, cookies en auto-invulgegevens
Tweede pipeline-incident van het jaar
Het is de tweede gecompromitteerde release van LiteLLM in 2026. In maart plaatste een actor die bekendstaat als TeamPCP een backdoor in versies 1.82.7 en 1.82.8, nadat een Trivy-scanner in de CI/CD-pipeline van het project was gecompromitteerd en een PyPI-token was gestolen. Datadog verbindt de twee campagnes alleen via het doelwit: een verband tussen de actoren is niet aangetoond. Het patroon is het ongemakkelijke — een gateway die in het middelpunt van duizenden AI-stacks zit en providerkeys en cloudcredentials bewaart, zag zijn distributiekanaal in acht maanden twee keer gesaboteerd.Het eerste uur, volgens het runbook
Kodem voorzag zijn indicatoren van een first-hour-responserunbook, en het advies van LiteLLM is net zo keihard. De gedeelde kern:- Blokkeer litellm 1.107.0 bij de package-proxy, stop met het uitrollen van floating tags als latest en pin de laatste schone release, 1.106.2, op hash — images op digest
- Voer geen python of pip uit op getroffen hosts vóór de opruiming, want elke interpreterstart voert de payload opnieuw uit
- Isoleer hosts en containers en verwijder daarna met de hand cook.pth, cook.py, sitecustomize.py en hun gecompileerde .pyc-bestanden
- Roteer vanaf een schone machine: cloudrollen, providerkeys in de proxydatabase, LiteLLM-master- en virtual-keys, het databasewachtwoord, registry- en GitHub-tokens
- Doorzoek cloud-auditlogs op GetCallerIdentity-aanroepen en credentialgebruik vanuit onverwachte infrastructuur sinds 11:39 UTC op 21 oktober










