Fetching from the wire…
Top 5 · 2026-03-25 · source-backed
A month ago, TeamPCP compromised Trivy's GitHub Actions runners. Then they trojanized LiteLLM on PyPI. Now Wiz Research confirms they've expanded to npm via a worm called CanisterWorm, using stolen publish tokens to push malicious packages across JavaScript's package ecosystem. Datadog Security Labs, Snyk, and Sonatype are all tracking the campaign independently. Reports indicate the group is collaborating with LAPSUS$ on extortion operations.
Let's talk about the LiteLLM numbers, because Simon Willison actually quantified the blast radius. During the roughly 46-minute window the backdoored packages (litellm 1.82.7 and 1.82.8) were live on PyPI before quarantine, there were 47,000 downloads. The malicious .pth file executed automatically on every Python process startup, silently POSTing SSH keys, cloud credentials, crypto wallets, and CI/CD secrets to a fake litellm.cloud domain. LiteLLM gets 3.4 million daily downloads. Forty-six minutes was enough.
Andrej Karpathy called it "software horror" in a post that hit 13,382 likes and 2.9 million views. His point was about cascading dependencies: over 2,000 commonly used AI tools including DSPy, MLflow, and Open Interpreter depend on LiteLLM. The attack was only discovered because the attacker's own code had a bug that crashed a developer's machine when an MCP plugin in Cursor pulled LiteLLM as a transitive dependency.
Read that again. The detection mechanism was the attacker's incompetence.
Microsoft published a full defensive playbook on March 24 covering how to detect compromised GitHub Actions runners, audit CI/CD secret exposure, and identify TeamPCP's credential-harvesting techniques. This is the first major vendor defense guide for the campaign.
What builders should do right now: enable package cooldowns. Willison documented that seven major package managers now support this. pnpm, Yarn, Bun, Deno, uv, pip, and npm all let you block fresh releases for a configurable window. I've set mine to 72 hours. You lose the ability to install a package that was published today. You gain protection against every supply chain attack that gets caught within three days. That's a trade I'll make every time.
This is no longer an isolated incident. It's a coordinated, multi-ecosystem campaign targeting the AI development toolchain specifically. The attacker is getting better. The toolchain needs to catch up.
Each link below shares sources, entities, or timing with this story.
Every Python process on your machine just became a potential credential exfiltration endpoint if you installed the wrong version of LiteLLM today. LiteLLM versions 1.82.7 and 1.82.8, published to PyPI on March 24, contained a malicious .pth file that executes automatically on...
Hudson Rock got hold of the archive and counted it. 433,909 files. 118,829 CI runner dumps traced to 2,488 corporate domains. AWS keys, Salesforce client secrets, Slack signing secrets, Azure environment variables, and AI provider API keys belonging to NVIDIA, Volkswagen, Micr...
A single compromised GitHub Actions workflow. That's all it took. TechCrunch reports AI recruiting startup Mercor ($10B valuation) confirmed a security incident traced back to a supply chain attack on the open-source LiteLLM proxy. The attack chain is a case study in cascading...
A security scanner. The tool your team trusts to find vulnerabilities. That was the entry point. The TeamPCP campaign compromised Aqua Security's Trivy scanner (a GitHub Action used in CI/CD pipelines), then used that foothold to backdoor LiteLLM's CI/CD pipeline, then pivoted...
Two AI toolchain CVEs hit CISA's Known Exploited Vulnerabilities catalog this week, and the attack chain connecting them is the kind of thing that should change how you think about supply chain trust. CVE-2026-33017: Langflow, the popular agent workflow builder, has an unauthe...
Google's Agent Development Kit for Python listed litellm>=1.75.5 as an optional dependency. No upper bound. No pin. During the week of March 24, LiteLLM versions 1.82.7 and 1.82.8 were compromised by the TeamPCP group with a three-stage payload: credential harvesting, Kubernet...
MindPattern daily
One email a day at 7 AM. Sources and a take on every story. Unsubscribe anytime.