You did everything right. Popular library, not some random one. Kept it updated. And that was exactly the problem.
On 21 October someone got into the release pipeline of LiteLLM. If you don't know it, it's the Python thing a lot of AI apps use to talk to OpenAI, Claude, Gemini and the rest through one API. Around 92 million downloads a month on PyPI. Big.
The attacker pushed version 1.107.0. The app code was NOT changed. They just dropped three extra files next to it, and one of them runs every time Python starts. Even when you run pip to check what's wrong.
What it takes? Cloud keys, GitHub and npm tokens, your .env files, SSH keys. And also browser saved logins and cookies. Basically everything a vibecoder keeps on one laptop.
Good news - security companies caught it within six minutes, and the bad version was on PyPI for less than two hours. BleepingComputer has the exact hours and the Docker tags, so you can check yours: https://www.bleepingcomputer.com/news/security/litellm-release-pipeline-hacked-to-distribute-info-stealer-malware/
If you installed it or pulled "latest" during those hours, go back to 1.106.2, rebuild from a clean backup and change every key that was on that machine. Just deleting the package is not enough.
BTW if you can't say right now which version of anything is inside your app, that's the real lesson. Pin your versions guys. "Latest" is not a version, it's a gamble :)
Get an email when Thomas publishes
More from
Thomas G. →