Fetching from the wire…
Top 5 · 2026-03-24 · source-backed
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 every Python startup. Not on import. On startup. The payload dumps environment variables, queries cloud metadata endpoints (IMDS for AWS/GCP/Azure), and exfiltrates SSH keys, cloud credentials, Kubernetes configs, and crypto wallets encrypted with AES-256-CBC to a lookalike domain. LiteLLM gets 3.4 million downloads per day. 97 million monthly. The malicious versions were live for approximately three hours before PyPI quarantined them.
Here's what caught me off guard: the attack didn't start with LiteLLM. Threat actor TeamPCP first compromised Aqua Security's Trivy GitHub Action on March 19. Trivy. The vulnerability scanner. They compromised the tool that's supposed to catch this exact kind of thing, then used the CI/CD credentials it had access to in LiteLLM's pipeline to publish the poisoned packages directly to PyPI. They also hit Checkmarx and KICS GitHub Actions. Five days from scanner compromise to package backdoor.
This is a new pattern and it's ugly. Compromising a security scanner gives you access to everything it scans. It's the supply chain attack equivalent of stealing a master key from the locksmith. Your security tooling is now an attack surface, not just a defense layer.
The actionable response is already shipping across the package manager ecosystem. Simon Willison documented the cooldown features now production-ready: pnpm minimumReleaseAge (v10.16), Yarn npmMinimalAgeGate (v4.10), npm min-release-age (v11.10), and Bun's equivalent. A conservative 60-day setting would have completely blocked this attack. The malicious versions existed for 3 hours. Even a 24-hour cooldown would have saved you. Set this in your lockfile config today. Not tomorrow. Right now. If you're running LiteLLM in production, audit your CI/CD pipeline for Trivy GitHub Actions and check whether versions 1.82.7 or 1.82.8 ever touched your environment.
Each link below shares sources, entities, or timing with this story.
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...
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...
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...
The token was rotated. It was never revoked. That gap was about twenty days wide, and it was enough. CloudSEK disclosed that Team PCP compromised LiteLLM PyPI versions 1.82.7 and 1.82.8 by taking over the Trivy security scanner inside LiteLLM's build process. The mechanism: a...
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...
MindPattern daily
One email a day at 7 AM. Sources and a take on every story. Unsubscribe anytime.