Artificial Intelligence · Cybersecurity
LiteLLM release pipeline pushed malicious package
LiteLLM said attackers used stolen GitHub CLI credentials to publish a poisoned 1.107.0 release to PyPI, Docker Hub and GHCR, while researchers said it stole secrets and fetched remote code.
- LiteLLM said attackers compromised its release pipeline on 21 October 2026 and published version 1.107.0 to PyPI, Docker Hub and GHCR.
- The malicious package was said to collect credentials and keys, then contact a remote server to fetch and run further code.
- Aikido researcher Ilyas Makari said the malware used both a .pth file and sitecustomize.py to start a daemon that checked GitHub for a command-and-control domain.
- Wiz said it saw stolen credentials used about 4.5 hours after exfiltration, including AWS instance role credentials from CI runners and Kubernetes nodes.
- LiteLLM said it suspected GitHub CLI OAuth tokens were exposed through logs from Claude Code response bodies and may have been taken from an internet-facing internal deployment.
LiteLLM said attackers compromised its release process on 21 October 2026 and published version 1.107.0 to PyPI, Docker Hub and GHCR. It said users who pulled unpinned installs or the listed container tags within specific windows were affected.
The package was said to include code that gathered secrets and sent them out, then could load and execute further Python code from a remote server. The article described the release as a remote access trojan and said the stolen data covered system, browser, developer, cloud and AI tool secrets.
Aikido researcher Ilyas Makari said the malware used a .pth file and a sitecustomize.py file to start a background process that repeatedly checked GitHub for a current command-and-control domain. Wiz said the GitHub text file used for that purpose held only test values before GitHub removed it.
LiteLLM said it had already hardened its release process after a similar incident in March, but later opened release access for two internal engineers to publish bugfix backports. It said the attacker used three sets of developer GitHub CLI credentials, including one with workflow permissions, then disabled branch protections with an owner token and pushed the altered code through a workflow that pointed at a lookalike repository.
LiteLLM also said it found a public internal deployment with an unexpectedly named user account and suspected that the attacker used that system to obtain GitHub CLI OAuth tokens from logs. The company said it was still unclear how that deployment became public, while Socket said there was no evidence yet tying the case to the March attack.
Named in this story
People
- Ilyas Makari
- Aikido researcher who described the background daemon
- Benjamin Read
- a Wiz researcher who commented on the malware technique
- Rami McCarthy
- a Wiz researcher who commented on the malware technique
- Guy Korolevski
- a JFrog security researcher who urged credential rotation and rebuilds
Organisations
- Aikido
- the security firm whose researcher analysed the malware
- Wiz
- the cloud security company that observed credential abuse
- GitHub
- the platform that hosted the dead-drop repository and later removed test values
- Socket
- the security company that said the March incident was not linked
- TeamPCP
- the group linked to the March 2026 attack by earlier reporting
- JFrog
- the company whose researcher gave remediation advice
Products and systems
- LiteLLM
- the package whose release pipeline was compromised
- Docker Hub
- one of the registries that received the poisoned release
- Python Package Index
- the PyPI repository that received the poisoned release
- GHCR
- another registry that received the poisoned release
- Claude Code
- the tool LiteLLM said could place GitHub CLI tokens into response bodies
- Berri-AI/litellm
- the lookalike repository used in the compromised workflow
- BerriAI/litellm
- the repository the attacker impersonated in the workflow
How the source tells it
The piece is urgent and cautionary, using threat labels, narrow exposure windows and remediation advice, while still marking some of the causal chain as unverified.
- alarm loaded labels for the payload and its behaviour turn the incident into a security threat narrative
- urgency tight time windows and immediate advice to remove, isolate and rotate credentials create pressure to act at once
- speculation the suspected access path is framed with tentative language and a likely explanation rather than a proven one