- On 21 October LiteLLM 1.107.0 sat on PyPI from 11:39 to 13:23 UTC: about 49,000 downloads according to Wiz.
- It stole cloud credentials, AI service keys, SSH keys and developer tool sessions. The first stolen credentials were used about 4.5 hours later.
- The same month, malware on npm wrote Claude Code and VS Code configuration into repositories so it would run again whenever the project was opened.
- The perimeter is no longer the network. It is the point where someone decides what enters the software, at which version and with which keys.
- Six questions for the team, and one answer to have ready: how fast we replace a stolen key.
Two hours, thousands of installs
LiteLLM is a library that works as a switchboard between a company’s software and AI models: OpenAI, Anthropic, Google and the rest go through it, with their keys. It is free, it has about 23 million downloads a week according to Datadog, and on Wednesday 21 October a poisoned release came out. According to LiteLLM’s own account version 1.107.0 was on PyPI, the public Python package registry, from 11:39 to 13:23 UTC, and in the official Docker images until 14:20.
In that window, according to Wiz, it was downloaded about 49,000 times. Downloads like these often come from automated systems that update themselves: that is their job. The release carried a program that started every time Python did and collected everything it found: AWS, Google Cloud and Azure credentials, OpenAI and Anthropic keys, SSH keys, and Claude, Codex, Cursor and Copilot sessions.
See the data as a table
| Event | From | To |
|---|---|---|
| LiteLLM 1.107.0 on PyPI | 11:39 | 13:23 |
| Official Docker images | 11:46 | 14:20 |
| Stolen credentials in use | 16:20 | 17:01 |
| About 4.5 hours to replace the keys | 11:39 | 16:20 |
It was LiteLLM’s second attack of this kind in 2026; the first was in March. The cause, according to the company, was three developers’ GitHub credentials in the wrong hands, one of them belonging to one of the organisation’s two owners. How they got out is still a hypothesis.
…identified a supply-chain attack involving malicious code in the LiteLLM 1.107.0 PyPI release.
The perimeter moved
For twenty years security was about walls: firewalls, remote access, employee passwords. October’s attacks touched no wall. They came in with the software companies install every day, and they worked with the company’s keys.
The same month, StepSecurity reconstructed the tensorlake case, an npm package: the malware used stolen GitHub tokens to write Claude Code and VS Code configuration into every repository it could reach. Each time a developer opened the project, their coding agent ran the malware again. And if someone revoked the stolen token, the program wiped the user’s home folder.
On 13 October an npm publishing flaw went public: more than 1,500 packages, with over 10 million downloads, could be published by anyone who re-registered the name of an abandoned repository. GitHub had closed it on 2 October. The people who found it say they saw no exploitation.
- 13 Octnpm publishing flaw: more than 1,500 packages publishable by whoever re-registers an abandoned repository name.Public package registries
PyPI, npm: most of the code your software runs comes from here.
- Repositories and contributions
Code, configuration and instructions that arrive with a pull request or an automatic update.
What gets in, at which version, with which permissions, and who approves it. The only point where a person decides.
- 8 OctThe tensorlake package: malware wrote Claude Code and VS Code configuration into repositories.Coding agents and their configuration
They run commands with the developer’s identity.
- 21 OctLiteLLM 1.107.0 compromised, online for about two hours.LLM gateway
One service holding the keys to every AI model.
- 21 OctCredentials stolen through LiteLLM used by attackers about 4.5 hours later.Cloud and AI service keys
The first thing the malware looks for.
- Company data and systems
Customers, orders, documents, email. The end of the chain.
The map has a single point where a person decides: the gate, where someone sets what gets in, at which version and with which permissions. Everything after it runs on its own, with your keys. That is where to look.
tensorlake 0.5.144 is compromised on NPM
Update or not: the wrong answer is “always”
The instinctive reaction to an attack like this is “update everything, now”. That is exactly the behaviour LiteLLM 1.107.0 exploited: the systems that always install the latest release took it first. The opposite reaction, never updating, leaves open the holes that fixes close.
The answer is a rule, not a reflex. Versions are pinned and changed when someone decides, after a check. Security fixes get a fast lane with a written deadline. And the most valuable keys never sit where freshly downloaded code runs.
Oh, you aren’t updating your dependencies every hour? Well, too bad, you are vulnerable…
Six questions for the team, on Monday morning
You do not need technical skills to ask them. You need answers with a name and a date.
- 01
Do we use LiteLLM or another gateway for AI models? Which version, and who installed it?
If the answer is “I don’t know”, that is already an answer: nobody holds the list of what runs.
- 02
Are library versions pinned, or do they update themselves?
Pinned means they change only when someone decides and records it.
- 03
Where do the AI service and cloud keys live, and who can read them?
A dedicated vault, limited access, different keys for different environments. Never in the code, never in the logs.
- 04
Which coding-agent configuration files are in the repository, and who approves them?
Files such as .claude/settings.json or .vscode/tasks.json run commands. Treat them as code.
- 05
If a key is stolen tomorrow, how fast do we replace it?
In October the first stolen credentials were used about four and a half hours after the theft.
- 06
Who tells us when a component we use is compromised?
You need a person or a service watching for it. Reading about it in the news the next day is late.
Questions
We do not use LiteLLM. Does this concern us?
Yes, because the mechanism is the same for any library your software downloads from a public registry. LiteLLM is October’s example; in March it was another release of the same library, and in October an npm package too. The question is how libraries get in, not which ones.
What is a company’s AI supply chain?
The set of AI tools around the software: AI service keys, gateways such as LiteLLM, coding agents and their configuration, MCP servers, AI libraries. They entered almost every company within two years, often without anyone putting them on a list.
What should anyone who installed LiteLLM 1.107.0 have done?
According to LiteLLM, assume the theft succeeded on any internet-connected machine where it was installed, replace every credential on it and go back to version 1.106.2. For the tensorlake malware, analysts recommend removing its monitoring program before revoking tokens.
How do you review a project’s AI supply chain?
Start with a list: keys, gateways, AI libraries, agent configuration, MCP servers. Then look at who can change each of them and what happens if they do. Yempik Security Audit runs this review automatically, together with the rest of the code security audit.
Sources
- [1]LiteLLM: Contained, Oct 21, 2026 LiteLLM release v1.107.0 Compromised. docs.litellm.ai
- [2]Wiz Research: LiteLLM compromised, steals credentials (21 October 2026). www.wiz.io
- [3]Datadog Security Labs: LiteLLM supply chain compromise (21 October 2026). securitylabs.datadoghq.com
- [4]StepSecurity: tensorlake npm compromised (8 October 2026). www.stepsecurity.io
- [5]Help Net Security: SlugFest, an npm Trusted Publishing flaw (13 October 2026). www.helpnetsecurity.com
- [6]GitHub Changelog: unvalidated npm trusted publishing configurations now expire (2 October 2026). github.blog
Yempik uses AI libraries and coding agents in its own work and made the audit tool mentioned here public. The times are those stated by LiteLLM; the download count and credential use are Wiz’s measurements.
Do you know what is in your AI supply chain?
Yempik Security Audit reviews keys, gateways, agent configuration and dependencies, together with the rest of the code.
See the audit