April 2, 2026·27 min read·7 views·7 providers

LiteLLM Supply Chain Attack — Trivy, TeamPCP & CanisterWorm

Comprehensive analysis of the March 2026 Trivy→LiteLLM compromise and CanisterWorm propagation: scope, AI impact, credential risks, and mitigations.

Key Finding

On March 19, attackers force-pushed 76 of 77 version tags in aquasecurity/trivy-action, with related compromise activity also affecting aquasecurity/setup-trivy and Trivy’s build/update ecosystem.

high confidenceSupported by anthropic, gemini, gemini-lite, grok-premium, openai
Justin Furniss
Justin Furniss

@Parallect.ai and @SecureCoders. Founder. Hacker. Father. Seeker of all things AI

anthropicgeminigemini-litegrok-premiumopenaiperplexitygrok

TeamPCP Supply Chain Attack: Cross-Provider Synthesis Report

Trivy → LiteLLM → CanisterWorm | March 24–26, 2026 | ONGOING


Executive Summary

  • Confirmed cascade attack across five ecosystems: TeamPCP exploited a misconfigured GitHub Actions workflow in Aqua Security's Trivy repository (February 28, escalating March 19), stole PyPI publishing credentials from LiteLLM's CI/CD pipeline, and published backdoored versions 1.82.7 and 1.82.8 on March 24, 2026 — packages that were live for approximately 5–6 hours before PyPI quarantined them. The malicious .pth file auto-executed on every Python process startup, not just on explicit import, making this unusually persistent and stealthy [4].

  • Blast radius is AI-specific and uniquely dangerous: LiteLLM's 95 million monthly downloads [2] and presence in 36% of monitored cloud environments [9] means the credential harvest targeted API keys for OpenAI, Anthropic, Google Vertex AI, Azure, and AWS simultaneously — not just code or infrastructure, but the authentication layer for the entire AI economy. Direct dependencies include CrewAI, DSPy, Browser-Use, Mem0, Instructor, Guardrails, Agno, Camel-AI, and Opik [2].

  • CanisterWorm represents a qualitative escalation: The self-propagating npm worm used an Internet Computer Protocol (ICP) blockchain canister for command-and-control — making it resistant to traditional takedown — and autonomously republished backdoored versions to 47–140+ npm packages by stealing and reusing npm publishing tokens found on infected hosts [4].

  • The irony is structural, not incidental: Trivy is a security scanner explicitly trusted with elevated CI/CD privileges. Its compromise turned the security layer itself into an exfiltration platform. This is not an edge case — it is a systemic design flaw in how the industry grants implicit trust to security tooling [3].

  • Immediate actionable response: Organizations should audit Python environments for litellm_init.pth in site-packages, rotate all cloud credentials and LLM API keys exposed in any CI/CD pipeline that ran trivy-action between March 19–24, 2026, and treat any system that installed LiteLLM 1.82.7 or 1.82.8 as fully compromised pending forensic review [3].


Cross-Provider Consensus

The following findings were independently confirmed by multiple providers and represent the highest-confidence conclusions of this synthesis.


CONSENSUS 1: Attack dates, versions, and timeline

Confidence: HIGH Providers: Anthropic, Gemini, Gemini-Lite, Grok-Premium, OpenAI, Grok

All providers independently confirmed that LiteLLM versions 1.82.7 (published 10:39 UTC) and 1.82.8 (published 10:52 UTC) on March 24, 2026 contained malicious payloads [4]. The Trivy tag poisoning occurred March 19, 2026, with 76 of 77 version tags in aquasecurity/trivy-action force-pushed to malicious commits [2]. The packages were live approximately 5–6 hours before removal [2].


CONSENSUS 2: LiteLLM's install base — ~95 million monthly downloads

Confidence: HIGH Providers: Anthropic, Gemini, Gemini-Lite, Grok-Premium, Grok, OpenAI

Every provider citing quantitative data converged on approximately 95 million monthly downloads [2], with Grok-Premium noting the range as 95–97 million [2] and approximately 3.4 million daily downloads [12]. Wiz Research independently reported LiteLLM present in 36% of monitored cloud environments [9].


CONSENSUS 3: The .pth file auto-execution mechanism

Confidence: HIGH Providers: Anthropic, Gemini, Gemini-Lite, Grok-Premium, OpenAI, Grok

All providers confirmed that version 1.82.8 introduced litellm_init.pth, a Python path configuration file that executes automatically on every Python interpreter startup — not only when LiteLLM is explicitly imported [2]. This is a critical distinction: any Python process on an affected system, including unrelated scripts, would trigger the credential harvester. Version 1.82.7 injected its payload into proxy_server.py, which executes on import [1].


CONSENSUS 4: Credential exfiltration targets and encryption

Confidence: HIGH Providers: Anthropic, Gemini, Gemini-Lite, Grok-Premium, Grok

Providers independently confirmed the malware harvested: AWS/GCP/Azure cloud tokens, SSH keys, Kubernetes secrets, .env files, cryptocurrency wallets, LLM API keys, shell history, CI/CD secrets, Slack webhooks, and Discord webhooks [3]. Data was encrypted with AES-256 and RSA-4096 and exfiltrated as tpcp.tar.gz to models.litellm[.]cloud, with a fallback to checkmarx.zone [3].


CONSENSUS 5: CanisterWorm's self-propagation mechanism

Confidence: HIGH Providers: Anthropic, Gemini, Gemini-Lite, Grok-Premium, OpenAI, Grok

All providers confirmed CanisterWorm hunts for npm authentication tokens on infected hosts, enumerates all packages the victim has publishing rights to, injects a malicious postinstall hook, bumps the patch version, and autonomously publishes the modified package back to npm [5]. The use of ICP blockchain for C2 was confirmed by Anthropic, Gemini, Gemini-Lite, and Grok-Premium [4].


CONSENSUS 6: Kubernetes lateral movement capability

Confidence: HIGH Providers: Anthropic, Gemini, Gemini-Lite, Grok-Premium, Grok

Multiple providers confirmed that if the compromised runner or container was inside a Kubernetes cluster, the payload attempted to deploy privileged pods named node-setup-* to every node in the cluster, effectively achieving cluster-wide compromise [2]. Persistence was established via a hidden systemd user service named sysmon.service at ~/.config/sysmon/sysmon.py [2].


CONSENSUS 7: Direct downstream AI framework dependencies

Confidence: HIGH Providers: Anthropic, Gemini, Gemini-Lite, Grok-Premium, Grok, OpenAI

Multiple providers independently confirmed that CrewAI, DSPy, Browser-Use, Opik, Mem0, Instructor, Guardrails, Agno, and Camel-AI directly depend on LiteLLM [2]. Microsoft GraphRAG, Google ADK, and MLflow were cited as indirect dependents [3]. Over 600 public GitHub repositories had unpinned LiteLLM dependencies [2].


CONSENSUS 8: The initial Trivy breach stemmed from incomplete remediation

Confidence: HIGH Providers: Anthropic, Gemini, Gemini-Lite, Grok-Premium, OpenAI

Providers agreed that Aqua Security discovered and disclosed the initial breach (February 28, 2026), rotated credentials, but left residual access paths open [6]. The attacker retained access through credentials that survived the incomplete rotation, enabling the March 19 escalation [2]. Gemini-Lite specifically noted this as "exploiting residual credentials from an incompletely remediated incident" [3].


CONSENSUS 9: Lockfiles provided protection; bare pip install did not

Confidence: HIGH Providers: Anthropic, Grok-Premium, OpenAI

Repositories using poetry.lock or uv.lock were protected because the lockfile pinned LiteLLM to a safe version regardless of what was published to PyPI. Repositories performing bare pip install litellm without version pinning were vulnerable [13]. Standard hash verification (pip install --require-hashes) would have passed because the malicious content was published using legitimate credentials and the RECORD file hashes were regenerated by the attacker [2].


Unique Insights by Provider

Anthropic

  • The fallback exfiltration mechanism via GitHub: If outbound network traffic was blocked (e.g., egress-restricted CI environments), the malware fell back to using stolen GitHub tokens to create a public repository named tpcp-docs as an exfiltration channel [2]. This demonstrates sophisticated operational planning for air-gapped or restricted environments — a detail no other provider highlighted with this specificity.

  • Checkmarx KICS compromise as intermediate step: On March 23, TeamPCP leveraged previously stolen CI/CD secrets to compromise Checkmarx's GitHub Actions for two repositories: ast-github-action and kics-github-action [2]. This establishes a three-tool compromise chain (Trivy → KICS → LiteLLM) that makes the campaign's scope even broader than the LiteLLM headline suggests.

  • The extortion dimension: The International Cyber Digest reported that TeamPCP is actively extorting several multi-billion-dollar companies using the 300 GB of stolen data [95]. This transforms the incident from a credential theft into an ongoing ransomware-adjacent operation with immediate financial consequences for named victims.

  • LAPSUS$ collaboration allegation: CSO Online reported that TeamPCP may be collaborating with LAPSUS$ [77]. This is flagged as low confidence (0.66) and should be treated as unverified, but if true, it would connect this campaign to a known financially motivated threat actor with a history of targeting technology companies.

Gemini

  • The ICP canister governance problem: Gemini specifically elaborated that ICP canisters are decentralized, tamper-proof smart contracts that require a complex governance vote to take down [6]. This is not merely a technical detail — it means traditional law enforcement and platform takedown mechanisms are structurally ineffective against CanisterWorm's C2 infrastructure. This is a novel and significant escalation in attacker operational security.

  • The three-stage payload structure: Gemini provided the most detailed breakdown of the malicious LiteLLM payload as a three-stage operation: Stage 1 (credential harvest), Stage 2 (persistence via systemd), Stage 3 (Kubernetes lateral movement and beacon for follow-on payloads) [2]. This staged architecture suggests professional malware development, not opportunistic tooling.

  • Wiper capability against Iranian locales: Gemini flagged (at low confidence, 0.58) that CanisterWorm allegedly executed a destructive wiper attack (rm -rf / --no-preserve-root) against hosts and local Kubernetes clusters when Iranian locales were detected [2]. This is flagged as low confidence and potentially unverified, but if accurate, it adds a geopolitical dimension and destructive capability that dramatically changes the threat model.

Gemini-Lite

  • The "God-mode" access design problem: Gemini-Lite articulated most clearly that security scanners require "God-mode" access by design — they must read environment variables, configuration files, and secrets to perform their jobs [3]. This is not a misconfiguration; it is the intended architecture. The implication is that the entire category of security scanning tools represents a structural attack surface that cannot be eliminated without fundamentally changing how scanning works.

  • PCAST timing and policy window: Gemini-Lite noted that the incident coincided with the reconstitution of PCAST by the Trump administration [5], creating a specific policy window. The recommendation that PCAST categorize AI infrastructure as Critical Infrastructure is framed as time-sensitive given this political context.

Grok-Premium

  • Specific named enterprise victims: Grok-Premium cited reports that Netflix, Stripe, and Temporal are among major companies known to have integrated LiteLLM [4]. This is medium confidence (0.74) and should be independently verified, but if accurate, it names specific high-value targets for follow-on investigation.

  • 60,000+ compromised servers claim: Grok-Premium noted that some intelligence summaries cite 60,000+ compromised servers [5], significantly higher than the 1,000 enterprise SaaS environments cited by other providers [2]. This discrepancy is flagged in the Contradictions section.

  • AI-assisted malware development: Grok-Premium and Anthropic both noted that researchers assessed CanisterWorm's code was developed rapidly with AI assistance [2]. This is a significant meta-observation: AI tools may be accelerating the development of supply chain attack tooling.

OpenAI

  • The Codecov parallel as the most instructive precedent: OpenAI specifically drew the parallel to the 2021 Codecov breach [101] — another CI/CD tool compromise that stole secrets from pipelines — as the most directly analogous historical incident. The key lesson from Codecov was that pipelines were subsequently segmented and tokens rotated more frequently. OpenAI's analysis suggests the LiteLLM incident should trigger the same response at scale for AI pipelines specifically.

  • PEP 458 and the signing gap: OpenAI specifically cited PEP 458 as an upcoming implementation that will sign PyPI repository metadata to prevent tampering [3]. This is a concrete, named technical standard that other providers did not reference, providing a specific policy recommendation anchor.

  • The "behavioral fingerprint" defense concept: OpenAI introduced the concept of establishing behavioral baselines for libraries and alerting when a new version exhibits anomalous behavior (e.g., opening network connections or reading environment variables when it never did before) [2]. Socket.dev's AI scanner flagging the Nx compromise via this method is cited as proof of concept [2].

Grok (Raw Report)

  • 47,000 downloads in 46 minutes: Grok's raw report provided the most specific download count for the malicious versions — approximately 47,000 downloads in the 46-minute window between publication and yanking [6]. This is a critical forensic data point for estimating the true blast radius.

  • 2,290 dependent packages and 1,120 GitHub repos: Grok cited specific dependency graph statistics — 2,290 dependent packages and 1,120 GitHub repositories using LiteLLM as of March 2026 [8]. This provides a more precise measure of transitive exposure than the "600+ public GitHub projects" figure cited by other providers [3].

  • Ransomware partnership allegation: Grok's raw report mentioned a "Vect partnership" for ransomware deployment via stolen credentials [17]. This is unverified and not corroborated by other providers, but warrants monitoring.


Contradictions and Disagreements

CONTRADICTION 1: Number of compromised npm packages (CanisterWorm scope)

  • Anthropic states "47+ npm packages" [19]
  • Grok-Premium states "47 to 140+ packages" [5]
  • Grok's raw report states "45–64+ npm packages"
  • Gemini-Lite states "approximately 50+ npm packages" [2]Assessment: The range 47–140+ reflects different measurement points in time as CanisterWorm continued propagating. The lower bound (47) likely reflects initial detection; the upper bound (140+) may reflect subsequent spread. This is not a true contradiction but a temporal measurement problem. Do not treat any single number as definitive while the incident is ongoing.

CONTRADICTION 2: Number of compromised organizations

  • Anthropic and Grok-Premium cite "at least 1,000 enterprise SaaS environments" [2]- Grok-Premium separately notes "60,000+ compromised servers" from some intelligence summaries [5]
  • Grok's raw report states "47,000+ downloads" of malicious versions [6]

Assessment: These figures measure different things. "1,000 enterprise SaaS environments" may refer to confirmed forensic cases. "60,000+ servers" may refer to systems that executed the malicious code. "47,000 downloads" refers to PyPI download counts, which include automated mirrors and bots. None of these figures are mutually exclusive, but they should not be conflated. The true number of organizations with credential exposure is unknown and likely falls between 1,000 and 47,000.


CONTRADICTION 3: Whether the wiper capability is real

  • Gemini reports (low confidence, 0.58) that CanisterWorm executed rm -rf / --no-preserve-root against Iranian-locale hosts [2]- No other provider corroborates this claim
  • Anthropic does not mention it
  • Grok-Premium does not mention it

Assessment: This claim should be treated as unverified and potentially false. The 0.58 confidence rating from Gemini itself signals uncertainty. The geopolitical targeting logic (Iranian locales) is plausible given nation-state involvement patterns, but the specific wiper claim requires independent forensic confirmation before being cited in any official capacity.


CONTRADICTION 4: LAPSUS$ collaboration

  • Anthropic cites CSO Online reporting potential LAPSUS$ collaboration [77], confidence 0.66
  • No other provider corroborates this
  • Grok-Premium does not mention it

Assessment: Treat as unverified. LAPSUS$ has historically been a financially motivated group with a pattern of social engineering, which is consistent with this campaign's profile. However, a single low-confidence source is insufficient to attribute collaboration. This claim could be disinformation, speculation, or accurate intelligence that has not yet been publicly confirmed.


CONTRADICTION 5: Perplexity's epistemological objection

  • Perplexity declined to analyze the incident, stating it cannot verify events beyond its April 2024 training cutoff and should not generate fabricated statistics
  • All other providers analyzed the incident using the provided source registry

Assessment: Perplexity's objection is methodologically sound in isolation but is superseded by the fact that this synthesis has access to 147 cited sources from March 2026. Perplexity's caution is noted and its general framework observations (real risks in .pth mechanisms, real vulnerabilities in package registries) are incorporated where applicable. Its refusal to fabricate statistics is actually a useful calibration signal — it means any statistics in this report that are not directly sourced should be treated with appropriate skepticism.


CONTRADICTION 6: Whether this is "the first major AI supply chain attack"

  • Gemini-Lite, OpenAI, Grok-Premium, and Anthropic all describe this as "the first major AI-specific supply chain attack" or "the first major cascading AI supply chain attack" [4]- The Ultralytics/YOLO attack (December 2024) also targeted an AI library (PyPI) and was used for cryptomining [3]- The Nx npm attack (August 2025) leaked 2,349 GitHub, cloud, and AI credentials [70]

Assessment: The "first" claim requires qualification. Ultralytics was an AI library attack but was cryptomining-focused, not credential-theft-focused, and did not target the AI orchestration layer. The Nx attack leaked AI credentials but was not AI-infrastructure-specific. The LiteLLM attack is arguably the first attack that specifically targeted the AI gateway layer — the component that centralizes authentication to frontier AI models — making it qualitatively different even if not strictly "first." The claim should be stated as "the first major attack targeting the AI orchestration/gateway layer" rather than "the first AI supply chain attack."


Detailed Synthesis

The Architecture of the Attack

The TeamPCP campaign represents what security researchers are calling a "cascading supply chain compromise" — an attack that uses each compromised component as a stepping stone to the next, amplifying reach with each hop [Anthropic, Gemini]. Understanding it requires tracing the full chain from its origin.

The initial breach began on February 28, 2026, when an attacker using the handle hackerbot-claw exploited a misconfigured pull_request_target GitHub Actions workflow in the Trivy repository [2]. This specific misconfiguration is well-documented in the security community — it allows pull requests from forks to access secrets that should be restricted to the base repository. The attacker extracted a personal access token with write access to all 33+ repositories in the Aqua Security GitHub organization [2].

Aqua Security discovered and disclosed the breach, rotated credentials, and believed the incident was contained [6]. It was not. The credential rotation was incomplete, and residual access paths remained open [Anthropic, Gemini-Lite]. This is the first critical failure point: incident response that does not achieve complete credential invalidation effectively hands the attacker a second chance.

On March 19, 2026, TeamPCP exercised that second chance with precision. They force-pushed malicious commits to 76 of 77 version tags in aquasecurity/trivy-action and all 7 tags in aquasecurity/setup-trivy [2]. This is a particularly insidious technique: rather than publishing a new malicious version that users might notice, they retroactively poisoned existing, trusted version references. Any CI/CD pipeline pinned to trivy-action@v0.20.0 or any other existing tag now pulled malicious code — and the pipeline's version reference appeared unchanged [Gemini, OpenAI].

The malicious Trivy action did something elegant in its malice: it continued performing legitimate vulnerability scanning while simultaneously scraping the memory of Runner.Worker processes for GitHub Personal Access Tokens, npm publishing tokens, and PyPI tokens [2]. It queried the AWS Instance Metadata Service at 169.254.169.254 for IAM credentials [2]. It searched for Slack and Discord webhooks [2]. All harvested secrets were bundled into an AES-256 and RSA-4096 encrypted archive named tpcp.tar.gz and exfiltrated to scan.aquasecurtiy[.]org — a typosquatted domain designed to evade casual log inspection [2]. If outbound traffic was blocked, the malware fell back to using stolen GitHub tokens to create a public repository named tpcp-docs as an exfiltration channel [2] — a detail that demonstrates sophisticated contingency planning.

The LiteLLM Pivot

LiteLLM's CI/CD pipeline ran Trivy as part of its build process, pulling it from apt without a pinned version [2]. This is the second critical failure point: treating a security tool as implicitly trusted without pinning it to a verified version. The poisoned Trivy action exfiltrated LiteLLM's PYPI_PUBLISH token from the GitHub Actions runner environment [2].

On March 24, 2026, at 10:39 UTC, TeamPCP used that token to publish litellm version 1.82.7 directly to PyPI [5]. Thirteen minutes later, at 10:52 UTC, they published 1.82.8 [4]. The two versions had different payload architectures: 1.82.7 injected its credential-harvesting code into proxy_server.py, which executes on import [1]. Version 1.82.8 added litellm_init.pth — a Python path configuration file that executes automatically on every Python interpreter startup, regardless of whether LiteLLM is explicitly imported [2].

The .pth mechanism is particularly dangerous because it is a legitimate Python feature, not an exploit. Python processes .pth files in site-packages on startup as part of normal path configuration. The malicious litellm_init.pth was correctly declared in the wheel's RECORD file with a matching hash [2]. Standard integrity checks passed. pip install --require-hashes would have passed [13]. The package was indistinguishable from a legitimate release by any automated verification mechanism, because it was published using legitimate credentials [Anthropic, OpenAI].

The three-stage payload executed as follows [Gemini]: Stage 1 harvested SSH keys, cloud tokens (AWS, GCP ADC, Azure), .env files, cryptocurrency wallets, LLM API keys, shell history, and Kubernetes secrets. Stage 2 established persistence via a hidden systemd user service named sysmon.service at ~/.config/sysmon/sysmon.py [2]. Stage 3 attempted Kubernetes lateral movement — if the compromised container was inside a Kubernetes cluster, the payload deployed privileged pods named node-setup-* to every node, mounting the host filesystem and achieving cluster-wide compromise [2].

Grok's raw report provides the most specific forensic data point: approximately 47,000 downloads of the malicious versions occurred in the 46-minute window before PyPI quarantined the packages [6]. Given LiteLLM's 3.4 million daily downloads [12], this represents a narrow but significant exposure window. The packages were live for approximately 5–6 hours total [2].

CanisterWorm: The Ecosystem Jump

The stolen npm tokens harvested from thousands of CI/CD pipelines running the compromised Trivy action became the fuel for CanisterWorm, which was unleashed into the Node.js ecosystem on March 20, 2026 [14]. The worm's propagation mechanism is self-contained and automated: upon installation on a developer's machine, it hunts for local npm authentication tokens, queries the npm registry API to enumerate all packages the victim has publishing rights to, injects a malicious postinstall hook, bumps the patch version, and autonomously publishes the modified package back to npm [5].

The C2 infrastructure choice is significant [Gemini, Gemini-Lite]: CanisterWorm used an Internet Computer Protocol (ICP) blockchain canister for command-and-control. ICP canisters are decentralized, tamper-proof smart contracts that require a complex governance vote to take down [6]. This is not merely a technical curiosity — it means that traditional law enforcement mechanisms (domain seizure, hosting provider takedown requests) are structurally ineffective. The C2 infrastructure is, by design, beyond the reach of any single jurisdiction or platform operator.

Initial reports confirmed compromise of packages in namespaces including @emilgroup, @teale.io, and @opengov [2]. The total number of affected packages ranges from 47 (initial detection) to 140+ (subsequent spread) across providers [2], reflecting the ongoing nature of the propagation at the time of this analysis.

The Irony Problem: Security Tools as Attack Vectors

The structural irony of this campaign cannot be overstated [OpenAI, Gemini-Lite]. Trivy is not merely a popular tool — it is a tool that organizations deploy specifically to improve their security posture. It is recommended in security best practices. It is trusted by definition. And that trust is precisely what made it valuable as an attack vector.

Security scanners require what Gemini-Lite describes as "God-mode" access by design [3]: they must read environment variables, configuration files, and secrets to perform their jobs. When a scanner is compromised, the security tool itself becomes an exfiltration platform with pre-authorized access to everything it was supposed to protect. The Codecov breach of 2021 [101] established this pattern; the Trivy compromise confirms it is repeatable and scalable.

The deeper problem is that the industry has no good answer to this. You cannot sandbox a security scanner without preventing it from scanning. You cannot restrict its network access without preventing it from downloading vulnerability databases. The tool's legitimate functionality and its potential malicious functionality are architecturally identical. The only defenses are: (1) pinning the scanner to a verified cryptographic hash rather than a mutable version tag, (2) running the scanner in a separate job that does not have access to publishing credentials, and (3) monitoring the scanner's own behavior for anomalies [Anthropic, OpenAI, Gemini-Lite].

Comparison to Historical Incidents

Placing this incident in historical context requires precision [OpenAI, Grok-Premium]:

SolarWinds (December 2020) [105]: A nation-state actor (APT29/Cozy Bear) inserted the Sunburst backdoor into SolarWinds' build system, compromising approximately 18,000 customers. The attack was highly targeted — fewer than 100 organizations were subjected to active espionage. SolarWinds was a precision instrument for intelligence collection. The TeamPCP campaign is broader, faster, and more financially motivated, but lacks SolarWinds' surgical targeting of specific high-value government networks.

Log4Shell (December 2021) [106]: A vulnerability in a ubiquitous logging library affected an estimated 3 billion assets, with 48% of corporate networks globally seeing exploit attempts. Log4Shell was a vulnerability, not a backdoor — it required active exploitation. The LiteLLM attack was a deliberate compromise that required no exploitation by downstream victims; installation was sufficient. Log4Shell's breadth was greater; LiteLLM's stealth was superior.

XZ Utils (March 2024) [2]: A patient, multi-year social engineering operation by a single actor who became a trusted maintainer and inserted a subtle backdoor into a core compression library. XZ Utils was caught before reaching major distributions. The TeamPCP campaign is faster (days, not years), noisier, and more financially motivated, but lacks XZ Utils' sophistication and patience.

The LiteLLM/TeamPCP campaign occupies a distinct position: it is the first major attack that specifically targeted the AI orchestration layer — the component that centralizes authentication to frontier AI models [Gemini-Lite, OpenAI, Grok-Premium]. Previous attacks targeted general software infrastructure. This attack targeted the specific layer where AI API keys aggregate. That is a qualitative difference, not merely a quantitative one.

The claim that this is "the first major AI supply chain attack" requires the qualification noted in the Contradictions section: Ultralytics (December 2024) [2] and the Nx npm attack (August 2025) [70] both involved AI-adjacent infrastructure. But neither targeted the AI gateway layer specifically. LiteLLM's role as the de facto proxy for 100+ LLM providers [3] makes this attack categorically different — it is an attack on the authentication infrastructure of the AI economy itself.

The AI-Specific Threat Model

What can an attacker do with API keys for OpenAI, Anthropic, Google, and Azure from thousands of companies? [Grok-Premium, Gemini-Lite, OpenAI]

The most immediate and monetizable threat is LLMjacking [2]: reselling stolen API keys on darknet markets or using them directly to run expensive inference at victims' expense. Enterprise API keys can represent $100,000+/month in compute capacity [Anthropic]. This is the AI equivalent of stealing credit card numbers — immediate, liquid, and scalable.

Beyond direct financial abuse, stolen LLM API keys enable:

Data exfiltration via model queries: If the API key is connected to a RAG (Retrieval-Augmented Generation) pipeline, an attacker can query the model to extract sensitive documents stored in the connected vector database [4]. The model becomes an unwitting data exfiltration tool.

Training data poisoning: If the API key has access to fine-tuning endpoints, an attacker can inject malicious training data to bias model outputs [3]. This is a slow-burn attack — the poisoned model continues operating normally for most queries while producing subtly manipulated outputs for specific inputs.

Impersonation and prompt injection at scale: With valid API keys, an attacker can make requests that appear to originate from the legitimate organization, potentially bypassing rate limits, content filters, or audit logs that are keyed to the organization's identity.

Competitive intelligence: For organizations using LLMs for proprietary analysis, an attacker with API access can replay queries to extract the organization's analytical frameworks, proprietary data, and decision-making patterns.

The threat model for stolen LLM API credentials is fundamentally different from stolen database credentials or SSH keys. Database credentials give access to static data. LLM API credentials give access to a dynamic, intelligent system that can be weaponized against its own users.

Accountability and the Open-Source Paradox

The accountability question has no clean answer [OpenAI, Gemini-Lite, Anthropic]. Multiple parties bear partial responsibility:

Aqua Security failed to complete credential rotation after the initial February 28 breach [6]. For a commercial security company, this is a significant operational failure. The incomplete remediation directly enabled the March 19 escalation.

LiteLLM's maintainers ran Trivy in their CI/CD pipeline without pinning it to a cryptographic hash [2]. This is a common practice — the security community has been warning about mutable version tags for years, but adoption of SHA pinning remains low. LiteLLM is a small team managing critical infrastructure used by 95 million monthly downloads [2]. The resource asymmetry between the maintainers' capacity and the security requirements of their install base is a structural problem, not an individual failure.

PyPI lacks automated, real-time verification to prevent poisoned packages from being published by legitimate but stolen maintainer tokens [5]. The registry's own RECORD hashes were regenerated by the attacker [13]. PyPI's Trusted Publishers feature (OIDC-based, eliminating long-lived API tokens) exists but was not in use [13]. Adoption of security features that require maintainer action will always lag behind the threat.

The open-source model itself creates a structural vulnerability: small maintainer teams with limited resources are responsible for critical infrastructure used by millions of organizations [Gemini-Lite, OpenAI]. This is not a new observation — it was made after Heartbleed, after Log4Shell, after XZ Utils. The difference now is that the infrastructure being maintained is the authentication layer for a trillion-dollar AI industry.

Policy Implications and PCAST

The Trump administration's reconstitution of PCAST — with members including technology executives — coincided with this incident [3]. The timing creates a specific policy window [Gemini-Lite, Grok-Premium, OpenAI].

There is currently no federal framework for AI supply chain security [Anthropic]. The regulatory landscape focuses on AI safety (model behavior, bias, alignment) while largely ignoring the software infrastructure that AI systems are built on [Anthropic]. This is analogous to regulating the safety of cars while ignoring the safety of the roads they drive on.

The post-Log4Shell White House summit [2] produced increased funding for OpenSSF and broader awareness of open-source security risks. A comparable response to the LiteLLM incident should include:

  1. Mandatory SBOMs for AI systems deployed in critical infrastructure — so that when a component like LiteLLM is compromised, affected organizations can be identified and notified within hours, not weeks [Anthropic, OpenAI, Grok-Premium].

  2. Supply chain security standards for AI model providers — requiring that organizations offering AI APIs verify the integrity of client-side libraries that aggregate their credentials.

  3. Incident disclosure requirements for supply chain compromises affecting AI infrastructure — currently, there is no mandatory reporting timeline for incidents like this.

  4. Federal funding for open-source security infrastructure — specifically for the small maintainer teams responsible for critical AI libraries. The resource asymmetry between maintainer capacity and security requirements cannot be solved by individual organizations acting alone.

Concrete Technical Defenses

The synthesis of provider recommendations converges on a hierarchy of defenses, ordered by effectiveness:

Tier 1 — Immediate (implement now):

  • Audit Python environments for litellm_init.pth in site-packages [3]- Rotate all cloud credentials and LLM API keys exposed in CI/CD pipelines that ran trivy-action between March 19–24, 2026
  • Pin all GitHub Actions to full SHA hashes, not mutable version tags [3]- Enable PyPI Trusted Publishers (OIDC) to eliminate long-lived API tokens from CI pipelines [13]

Tier 2 — Short-term (implement within 30 days):

  • Use lockfiles (poetry.lock, uv.lock) for all Python dependencies — this was the single most effective protection in this incident [Anthropic, OpenAI]
  • Separate CI/CD jobs: security scanning in a context without publishing credentials; publishing in a minimal job without scanning tools [OpenAI]
  • Implement behavioral monitoring for dependencies — tools like Socket.dev that flag anomalous behavior (new network connections, environment variable reads) in package updates [2]Tier 3 — Medium-term (implement within 90 days):
  • Adopt reproducible builds so that published artifacts can be verified against source commits [OpenAI, Gemini-Lite]
  • Implement hardware-backed signing (HSM or cloud KMS) for package publishing, so that stolen credentials alone are insufficient to publish [OpenAI, Gemini-Lite]
  • Deploy internal package mirrors with vetted versions rather than pulling directly from public registries [OpenAI]
  • Adopt SLSA Level 3 provenance for critical AI libraries [Grok, OpenAI]

Tier 4 — Structural (industry-wide):

  • Mandate PEP 458 implementation for PyPI repository metadata signing [OpenAI]
  • Require multi-party verification for package publishing (analogous to multi-signature cryptocurrency transactions)
  • Establish government-funded security audits for critical open-source AI infrastructure

Evidence Explorer

Select a citation or claim to explore evidence.

Go Deeper

Follow-up questions based on where providers disagreed or confidence was low.

Forensic verification of the wiper capability claim — does CanisterWorm actually execute destructive payloads against Iranian-locale hosts, and if so, what does this imply about TeamPCP's geopolitical motivations or nation-state affiliation?

This claim (from Gemini, confidence 0.58 [src_16, src_17]) is unverified by any other provider but has significant implications for attribution and threat actor classification. If true, it suggests state-sponsored or state-aligned actors with specific geopolitical targeting, which would change the entire accountability and response framework. If false, it may be disinformation designed to obscure attribution.

Comprehensive mapping of which specific organizations installed LiteLLM 1.82.7 or 1.82.8 during the 46-minute exposure window, cross-referenced against PyPI download logs and known LiteLLM enterprise customers

The gap between "47,000 downloads" (Grok ) and "1,000 confirmed enterprise SaaS environments" (Anthropic [src_5, src_77]) represents tens of thousands of potentially compromised organizations that have not been identified or notified. PyPI download logs are available to PyPI administrators and potentially to law enforcement. This research would enable targeted victim notification and is the most urgent gap in the current response.

Technical analysis of whether ICP blockchain-based C2 infrastructure can be disrupted through governance mechanisms, and what legal or technical frameworks exist for doing so

CanisterWorm's use of ICP canisters for C2 [src_5, src_6, src_23, src_24] represents a novel and potentially durable evasion technique. If traditional takedown mechanisms are ineffective, defenders need to understand what alternatives exist — whether through ICP's own governance processes, network-level blocking, or other means. This has implications beyond this specific incident for any future malware using blockchain-based C2.

Systematic audit of which other widely-used AI infrastructure libraries (LangChain, vLLM, Hugging Face Transformers, etc.) have similar CI/CD configurations — specifically, which use unpinned security scanning tools with access to publishing credentials in the same job

The LiteLLM compromise was enabled by a specific CI/CD anti-pattern: running a security scanner (Trivy) in the same job context as publishing credentials, without pinning the scanner to a verified hash [src_4, src_13]. This anti-pattern is likely widespread across the AI open-source ecosystem. Identifying which other critical libraries share this configuration would enable proactive remediation before the next TeamPCP-style attack.

Policy analysis of whether existing CISA critical infrastructure designation frameworks can be extended to cover AI gateway libraries, and what specific regulatory requirements would be triggered by such designation

Multiple providers recommend treating AI infrastructure as critical infrastructure [Anthropic, Gemini-Lite, OpenAI, Grok-Premium], but the specific legal and regulatory pathway for doing so is unclear. CISA's existing frameworks were designed for physical infrastructure sectors (energy, water, finance). Extending them to open-source software libraries raises novel questions about who bears compliance obligations (volunteer maintainers? commercial stewards? downstream enterprises?) and what specific requirements would apply. This research would provide the policy foundation for the PCAST recommendations multiple providers suggest [src_98, src_143, src_144].

Key Claims

Cross-provider analysis with confidence ratings and agreement tracking.

385 claims · sorted by confidence
1

LiteLLM has approximately 95–97 million monthly downloads on PyPI.

high·anthropic, gemini, gemini-lite, grok-premium, openai·wifitalents.comcyberinsider.comendorlabs.com+4·
2

On March 19, attackers force-pushed 76 of 77 version tags in aquasecurity/trivy-action, with related compromise activity also affecting aquasecurity/setup-trivy and Trivy’s build/update ecosystem.

high·anthropic, gemini, gemini-lite, grok-premium, openai·thehackernews.compaloaltonetworks.commicrosoft.com+4·
3

LiteLLM is an AI gateway / routing library with a standardized API, used in major AI frameworks and often embedded as a transitive dependency.

medium·anthropic, gemini, gemini-lite, grok-premium, openai, perplexity·wifitalents.comdocs.vllm.aiblog.dreamfactory.com+12·
4

The report says the Trivy/LiteLLM compromise was the first major AI-specific supply chain attack.

medium·gemini, gemini-lite, grok-premium, openai, perplexity·techcrunch.comthehackernews.comcyberinsider.com+13·
5

LiteLLM is a proxy/gateway layer that routes and unifies API calls across many large language model providers, including major providers such as OpenAI, Anthropic, Google, and Azure.

medium·gemini, grok-premium, openai, gemini-lite·wifitalents.comthehackernews.comblog.gitguardian.com+4·
6

The malicious LiteLLM releases were versions 1.82.7 and 1.82.8.

medium·anthropic, gemini, gemini-lite, openai·futuresearch.aithehackernews.comcyberinsider.com+4·
7

CanisterWorm was self-propagating, including in the TeamPCP supply-chain campaign.

medium·anthropic, gemini, grok-premium, openai·securityboulevard.commicrosoft.comarcticwolf.com+3·
8

Stolen CI/CD or PyPI credentials were used to publish two malicious LiteLLM versions to PyPI (including versions 1.82.7 and 1.82.8 on March 24).

medium·anthropic, gemini-lite, grok-premium, openai·futuresearch.aithehackernews.comtrendmicro.com+6·
9

LiteLLM’s CI/CD pipeline used Trivy for scanning, with Trivy pulled from apt without a pinned version or action hash.

medium·anthropic, grok-premium, gemini, openai·snyk.ioendorlabs.comkaspersky.com+1·
10

CanisterWorm used an Internet Computer Protocol (ICP) blockchain canister for command-and-control (C2).

medium·anthropic, gemini, gemini-lite, grok-premium·mend.ioresearch.jfrog.comsecurityboulevard.com+3·
11

Log4Shell was a critical RCE/vulnerability in a ubiquitous logging library and was exploited in the wild, affecting millions of devices.

medium·anthropic, grok-premium, openai, perplexity·blog.checkpoint.comreversinglabs.com·
12

The SolarWinds compromise affected approximately 18,000 organizations/customers.

medium·anthropic, grok-premium, openai, perplexity·reversinglabs.comtherecord.media·
13

The XZ Utils backdoor was a long-running social-engineering operation in which an attacker gained maintainer trust and inserted a malicious backdoor into the XZ Utils compression library.

medium·anthropic, grok-premium, openai, perplexity·jfrog.comsecuritylabs.datadoghq.comreversinglabs.com·
14

TeamPCP triggered a secondary npm worm called CanisterWorm, which impacted the Node.js/npm ecosystem.

medium·gemini, grok-premium, gemini-lite·futuresearch.aimend.ioresearch.jfrog.com+3·
15

TeamPCP exploited a Trivy compromise on March 19 to steal CI/CD credentials, leveraging residual credentials from an earlier incomplete remediation at Aqua Security.

medium·gemini-lite, grok-premium, openai·thehackernews.compaloaltonetworks.commicrosoft.com+3·

Sources

116 unique sources cited across 385 claims.

Government3 sources
News & Media37 sources
White House calls summit on open source security following Log4j attacks | TechRadar
techradar.comvia gemini, gemini-lite, grok-premium, openai, perplexity, anthropic
150 claims
150 claims
SolarWinds says fewer than 100 customers were impacted by supply chain attack | The Record from Recorded Future News
therecord.mediavia gemini, gemini-lite, grok-premium, openai, perplexity, anthropic
144 claims
There’s a new supply chain attack targeting customers of a phone system with 12 million users | TechCrunch
techcrunch.comvia gemini, gemini-lite, grok-premium, openai, perplexity, anthropic
143 claims
142 claims
142 claims

Topics

LiteLLM compromiseTrivy supply chain attackTeamPCPCanisterWormAI supply chain securityPyPI backdoorLLM API key exfiltrationsoftware supply chain attacks 2026

Share this research

Read by 7 researchers

Share:

Research synthesized by Parallect AI

Multi-provider deep research — every angle, synthesized.

Start your own research