Live › campaign › CMP-202610-litellm-1-107-0-on-pypi-and-docker-shipped-a-credential-stea
Go to dashboardOn 2026-10-21 an attacker used stolen BerriAI GitHub tokens (an org owner's GitHub CLI token obtained 2026-10-10 via a leaked, never-revoked LiteLLM Agent Platform master key) to hijack the release workflow and build litellm 1.107.0 from a lookalike repo Berri-AI/litellm. All seven PyPI wheels and the v1.107.0 Docker images (ghcr.io/berriai/litellm, litellm-database, litellm-non_root, docker.io/litellm/litellm; plus latest, main-latest, main-stable between 11:46 and 14:20 UTC on Oct 21) carry cook.pth, cook.py and sitecustomize.py. These run on every Python start: a stealer (privcollect) takes browser passwords, SSH/GPG keys, cloud credentials, process environments, AI coding tool configs and provider API keys from the LiteLLM proxy DB and posts them to www.litellm.dev; a daemon pulls and runs attacker Python hourly from a GitHub dead drop. About 49,000 PyPI downloads before removal. Anyone using LiteLLM SDK or proxy with an open litellm>= pin, or tracking latest image tags, is at risk. PyPI removed the release; clean releases resumed 2026-10-24.
Summary written from the sources below. Check the originals before acting.
First seen by InfraStack 2026-10-26 21:02 UTC. All times on this page are UTC.
| Product | Ecosystem | Affected | Fixed in |
|---|---|---|---|
| litellm | pypi | = 1.107.0 | – |
| ghcr.io/berriai/litellm | docker | v1.107.0; latest, main-latest, main-stable pulled 2026-10-21 11:46-14:20 UTC | – |
| docker.io/litellm/litellm | docker | v1.107.0; latest, main-latest, main-stable pulled 2026-10-21 11:46-14:20 UTC | – |
Each row is the first time that source carried this signal. The analyst’s rows are its own findings.
This page as .md · .json · in your agent: get_signal("CMP-202610-litellm-1-107-0-on-pypi-and-docker-shipped-a-credential-stea")