INC-26-0015 confirmed critical TeamPCP Compromises LiteLLM via Poisoned Trivy Security Scanner (2026)
LiteLLM (BerriAI) developed and Organizations using LiteLLM for AI model routing deployed LiteLLM AI Gateway / Proxy, harming Developers and organizations that installed compromised LiteLLM versions 1.82.7 or 1.82.8 and Users whose cloud credentials, SSH keys, and Kubernetes tokens were exfiltrated ; possible contributing factors include adversarial attack, inadequate access controls, and misconfigured deployment.
Threat actor(s): TeamPCP (also known as PCPcat, Persy_PCP, ShellForce, DeadCatx3)
Incident Details
| Date Occurred | 2026-03-24 |
| Severity | critical |
| Evidence Level | primary |
| Impact Level | Sector-wide |
| Domain | Security & Cyber |
| Primary Pattern | PAT-SEC-008 AI Supply Chain Attack |
| Secondary Patterns | PAT-AGT-006 Tool Misuse & Privilege Escalation |
| Regions | north america, europe, asia |
| Sectors | Technology |
| Affected Groups | Developers & AI Builders, Business Organizations, Critical Infrastructure Operators |
| Exposure Pathways | Adversarial Targeting, Infrastructure Dependency |
| Causal Factors | Adversarial Attack, Inadequate Access Controls, Misconfigured Deployment |
| Assets & Technologies | Large Language Models, Identity Credentials |
| Entities | LiteLLM (BerriAI)(developer, victim), ·Organizations using LiteLLM for AI model routing(deployer), ·TeamPCP (also known as PCPcat, Persy_PCP, ShellForce, DeadCatx3)(threat actor) |
| Harm Types | operational, financial |
Criminal group TeamPCP compromised the LiteLLM AI proxy library — downloaded approximately 3.4 million times daily from PyPI — by first poisoning the Trivy security scanner's GitHub Action to steal PyPI publishing tokens, then uploading backdoored LiteLLM versions that harvested cloud credentials, SSH keys, and Kubernetes tokens from affected environments.
Incident Summary
TeamPCP, a criminal group active since December 2025, compromised the LiteLLM AI proxy library on March 24, 2026, by first poisoning the Trivy security scanner’s GitHub Action on March 19 to exfiltrate PyPI publishing tokens from LiteLLM’s CI/CD pipeline.[2] LiteLLM is downloaded approximately 3.4 million times daily from PyPI and is used by organizations including NASA, Netflix, and Stripe for routing requests across AI model providers.[2] Two backdoored versions (1.82.7 and 1.82.8) were published within thirteen minutes of each other, containing credential-harvesting payloads that collected environment variables, SSH keys, cloud provider credentials (AWS, GCP, Azure), Kubernetes tokens, and database passwords, then encrypted and exfiltrated the data to a command-and-control domain.[1][2] PyPI quarantined the compromised versions after approximately three hours, during which roughly 47,000 downloads occurred.[1] Nine major AI projects including DSPy, MLflow, OpenHands, and CrewAI subsequently filed security patches due to ecosystem exposure.[2]
Key Facts
- Attack chain: TeamPCP rewrote Git tags in the Trivy GitHub Action to point to malicious release v0.69.4, which harvested CI/CD credentials; when LiteLLM’s pipeline ran Trivy without pinned versions, the
PYPI_PUBLISHtoken was exfiltrated[2] - Compromised versions: LiteLLM v1.82.7 (published 10:39 UTC) and v1.82.8 (published 10:52 UTC) on March 24, 2026[1]
- Payload mechanism: Three-stage malware — (1) information collection targeting SSH keys, cloud credentials, and Kubernetes configs; (2) AES-256 encryption with RSA key wrapping and exfiltration to
models.litellm.cloud; (3) persistence via systemd backdoor service and Kubernetes pod deployment[2] - Exposure window: Approximately three hours before PyPI quarantine[1]
- Download scale: LiteLLM averages 3.4 million daily PyPI downloads; compromised versions received approximately 47,000 downloads during the exposure window[2]
- Attribution: TeamPCP (aliases: PCPcat, Persy_PCP, ShellForce, DeadCatx3) used identical RSA key pairs across Trivy, KICS, and LiteLLM attacks, representing “Phase 09” of an ongoing multi-ecosystem campaign[2]
- Ecosystem impact: Nine major AI projects filed security patches; LiteLLM engaged Google Mandiant for forensic analysis[2][1]
- Remediation: Compromised packages removed from PyPI; maintainer credentials rotated; releases paused pending supply chain review; SHA-256 checksums published for verified releases[1]
Threat Patterns Involved
Primary: AI Supply Chain Attack — TeamPCP executed a multi-stage supply chain compromise that cascaded from a security scanning tool (Trivy) to a widely deployed AI infrastructure library (LiteLLM). The attack exploited the trust relationship between CI/CD pipelines and their dependencies: by poisoning a security tool that projects integrate specifically to improve security, the attackers turned the software supply chain’s own defense mechanisms into an attack vector.
Secondary: Tool Misuse & Privilege Escalation — The compromised LiteLLM versions escalated from a package installation to full system compromise, deploying a three-stage payload that harvested credentials, established persistence via systemd backdoor services and Kubernetes pod deployment, and exfiltrated encrypted data to a command-and-control domain.
Significance
- Cascading supply chain risk in AI infrastructure — The Trivy-to-LiteLLM attack chain demonstrates that AI infrastructure libraries inherit the security posture of every upstream dependency in their CI/CD pipeline, creating cascading failure paths that bypass the library’s own security practices
- Security tools as attack vectors — The compromise of Trivy — a security scanner organizations integrate specifically to detect vulnerabilities — illustrates the particularly damaging potential of supply chain attacks that weaponize trust in security tooling itself
- Speed of impact at AI scale — Three hours of exposure to a library downloaded 3.4 million times daily resulted in approximately 47,000 potentially compromised installations, highlighting the damage velocity possible when widely adopted AI infrastructure components are compromised
- Organized criminal targeting of AI ecosystem — TeamPCP’s documented multi-phase campaign across PyPI, npm, Docker Hub, GitHub Actions, and OpenVSX represents systematic criminal targeting of the AI development ecosystem rather than opportunistic attacks
Timeline
TeamPCP rewrites Git tags in the Trivy GitHub Action repository to point to malicious release v0.69.4
Compromised LiteLLM v1.82.7 published to PyPI with credential-harvesting payload in proxy_server.py
Compromised LiteLLM v1.82.8 published with additional malicious litellm_init.pth file
PyPI quarantines compromised versions after approximately three hours
Community scripts contributed for scanning CI/CD pipelines
Additional indicators of compromise identified
LiteLLM publishes SHA-256 checksums for verified safe releases
Outcomes
- Recovery:
- Compromised packages removed from PyPI; maintainer credentials rotated; new authorized maintainers established; releases paused pending supply chain review
- Other:
- Google Mandiant engaged for forensic analysis; nine major AI projects (DSPy, MLflow, OpenHands, CrewAI) filed security patches
Use in Retrieval
INC-26-0015 documents TeamPCP Compromises LiteLLM via Poisoned Trivy Security Scanner, a critical-severity incident classified under the Security & Cyber domain and the AI Supply Chain Attack threat pattern (PAT-SEC-008). It occurred in North America, Europe, Asia (2026-03-24). This page is maintained by TopAIThreats.com as part of an evidence-based registry of AI-enabled threats. Cite as: TopAIThreats.com, "TeamPCP Compromises LiteLLM via Poisoned Trivy Security Scanner," INC-26-0015, last updated 2026-03-29.
Sources
- LiteLLM Security Update — March 2026 (primary, 2026-03-24)
https://docs.litellm.ai/blog/security-update-march-2026 (opens in new tab) - Poisoned Security Scanner Backdooring LiteLLM (analysis, 2026-03)
https://snyk.io/articles/poisoned-security-scanner-backdooring-litellm/ (opens in new tab) - Inside the LiteLLM Supply Chain Compromise (analysis, 2026-03)
https://www.trendmicro.com/en_us/research/26/c/inside-litellm-supply-chain-compromise.html (opens in new tab)
Update Log
- — First logged (Status: Confirmed, Evidence: Primary)