| |

LiteLLM 95% Pre-Publication Exposure Correction: Trivy Was the Primary Vector — One Unrevoked Token, 20 Days, 76 of 77 trivy-action Tags Poisoned — Most of 2,488 Affected Organizations Never Installed LiteLLM at All

CRITICAL CORRECTION TO ARTICLE #59 — IF YOU CONCLUDED YOU WERE NOT AFFECTED, RE-READ THIS: (1) The primary exposure vector was Trivy, not LiteLLM 1.82.7/1.82.8. SOCRadar confirmed: most of the 2,488 organizations were affected earlier — via the Trivy incident beginning March 19, not the LiteLLM PyPI window on March 24. (2) The affected population is larger than previously reported. Trivy has far more daily users than LiteLLM. Any organization that used Trivy in CI/CD around March 19–24, 2026 — regardless of LiteLLM usage — should treat this as a potential exposure event. (3) Your audit window starts March 19, not March 24. If you investigated the LiteLLM breach and concluded you were safe because you didn’t install versions 1.82.7 or 1.82.8, your investigation is incomplete. Go back to March 19 and audit from there. (4) The specific Trivy components affected: malicious Trivy v0.69.4 release · force-pushed changes to 76 of 77 trivy-action version tags · replaced affected setup-trivy tags. If any of these were in your pipeline around March 19, your CI runner environment was exposed. (5) CVE-2026-33634 is in CISA KEV. This is a formal KEV entry — check whether your organization has complied with the remediation requirements under BOD 26-04. (6) Rotate everything in any CI/CD environment that used Trivy around March 19–24: AWS/GCP/Azure IAM keys · Kubernetes tokens · SSH keys · GitHub/GitLab PATs · AI provider API keys · Salesforce/Slack secrets · Any .env contents readable by the runner. (7) The FBI FLASH advisory (FLASH-20260702-01) covers this full chain — not just the LiteLLM packages. Affiliated actors are actively weaponizing credentials from both the Trivy and LiteLLM stages.
Pipeline chain code Trivy LiteLLM supply chain CVE-2026-33634 TeamPCP root cause correction 2026
One unrevoked automation token. Twenty days. 76 of 77 trivy-action version tags replaced with malicious code. Any CI/CD pipeline that used Trivy during that window — regardless of whether it ever installed LiteLLM — was exposed. The 40-minute LiteLLM PyPI window was the last step of a three-step chain, not the first. Most victims were hit at step one. | DataWater Threat Brief, August 16, 2026

Sources: SecurityWeek — “Over 2,500 Organizations Impacted by LiteLLM Supply Chain Attack” (SOCRadar correction: most organizations affected via Trivy incident, not LiteLLM packages — primary correction source) · CloudSEK — “2,500+ Companies and 434,000 CI/CD Pipelines Exposed” (primary research, full chain analysis including unrevoked token and 20-day window detail) · The Hacker News — “Malicious LiteLLM Releases Tied to Trivy Hack May Have Exposed 2,100+ Organizations” (CVE-2026-33634 CISA KEV confirmation, trivy-action tag detail) · The CyberSec Guru — Full attack chain forensics (76 of 77 trivy-action version tags, setup-trivy replacement) · Help Net Security — “153GB of stolen credentials surface after LiteLLM supply chain attack” (Hudson Rock 153GB archive detail) · BreachHistory — Full forensic reconstruction (Snyk, Trend Micro, Cycode public forensics cited) · OODAloop — CloudSEK quote: “one unrevoked token, three tools deep” | CVE: CVE-2026-33634 — CISA KEV (added March 26, 2026) — BerriAI LiteLLM 1.82.7–1.82.8 + Trivy components | Root cause: Leaked automation token, rotated but not fully revoked — left ~20-day window for force-push over Trivy’s published version tags | Trivy components affected: v0.69.4 release · 76 of 77 trivy-action version tags · setup-trivy tags | Trivy compromise date: March 19, 2026 | LiteLLM packages date: March 24, 2026 | LiteLLM PyPI window: ~40 minutes | Trivy exposure window: ~20 days | Scope: 2,488 corporate domains · 118,829 CI runner dumps · 433,909 files · 153GB | SOCRadar finding: Most of 2,500 affected organizations were hit via Trivy, not LiteLLM packages | TeamPCP targeting intent: LiteLLM was never directly targeted — it was collateral damage from Trivy compromise flowing automatically into LiteLLM’s build pipeline | FBI FLASH: FLASH-20260702-01 — covers full chain, affiliated actors actively weaponizing

“Trivy, then the build system, then the LiteLLM release: one un-revoked token, three tools deep. That chain is what turns a single credential leak into ecosystem-wide exposure.” — CloudSEK. Most of the 2,488 affected organizations were hit at step one. The 40-minute PyPI window was the last move, not the first. If you cleared yourself on LiteLLM 1.82.7/1.82.8 and never checked Trivy, your investigation is not complete.

On August 16, 2026, SOCRadar published a material correction to the LiteLLM supply chain breach narrative: most of the 2,488 organizations identified as victims in the 153GB credential archive were exposed earlier than previously reported — via the Trivy incident beginning March 19, not via the LiteLLM PyPI window on March 24. According to CloudSEK, TeamPCP, the threat actor behind multiple high-profile open source software (OSS) compromises, never targeted LiteLLM directly. The open source Python library and proxy server was compromised after its CI pipeline installed the compromised Trivy version automatically.

This correction changes two things that directly affect enterprise security teams. First, the affected population is larger: Trivy is one of the most widely used open-source vulnerability scanners in the world — far more organizations use Trivy in CI/CD than use LiteLLM. Second, the audit window starts earlier: organizations that investigated the LiteLLM breach and concluded they were safe because they never installed versions 1.82.7 or 1.82.8 conducted an incomplete investigation. The correct starting point is March 19 — five days before the LiteLLM packages appeared on PyPI — when TeamPCP’s poisoned Trivy began flowing into pipelines across the ecosystem.

The corrected attack chain — three tools, one token, 20 days

DataWater’s Article #59 described the attack chain accurately in its architecture, but the full forensic picture now available from CloudSEK, The CyberSec Guru, and BreachHistory adds precision that changes the operational implications for affected organizations:

StageDateWhat HappenedWho Was ExposedDuration
Stage 0 — Root causeBefore March 19TeamPCP obtained a Trivy automation token. The token had been rotated but not fully revoked — leaving an active credential that still had write access to Trivy’s GitHub repository and publication infrastructure.No organizations yet — attacker has access but hasn’t actedUnknown pre-incident period
Stage 1 — Trivy compromiseMarch 19, 2026TeamPCP used the unrevoked token to publish malicious Trivy v0.69.4 and force-push malicious code over 76 of 77 trivy-action version tags and replace affected setup-trivy tags. Any CI/CD pipeline using these tags received poisoned scanner code that harvested all secrets accessible to the runner environment.Every organization using Trivy via affected version tags in CI/CD — the primary victim population~20 days
Stage 2 — LiteLLM build poisonedMarch 19–24, 2026LiteLLM’s build pipeline used Trivy unpinned from the system package manager (apt). When the compromised Trivy ran inside LiteLLM’s CI environment, the attacker’s code accessed secrets available to that environment — including LiteLLM’s PyPI publishing tokens.LiteLLM’s own CI infrastructure — this is how TeamPCP obtained the ability to publish to PyPI as LiteLLMDays between Trivy compromise and package publication
Stage 3 — LiteLLM PyPI packagesMarch 24, 2026TeamPCP used the stolen PyPI tokens to publish malicious LiteLLM versions 1.82.7 and 1.82.8 to the Python Package Index. These packages contained a .pth Python startup hook harvesting all secrets from any environment that installed them.Organizations that installed LiteLLM 1.82.7 or 1.82.8 during the ~40-minute window — a subset of total victims~40 minutes

CloudSEK’s Threat Intelligence team obtained the exposure data through its intelligence sources, including records relating to organizations, CI/CD pipelines, and credential/token exposures associated with the March 2026 supply-chain cascade involving compromised Trivy, Checkmarx KICS, and related components. The key operational finding in the corrected narrative: “Trivy, then the build system, then the LiteLLM release: one un-revoked token, three tools deep. That chain is what turns a single credential leak into ecosystem-wide exposure.”

The specific Trivy components affected — what to check in your pipeline

On March 19, attackers used compromised credentials to publish a malicious Trivy v0.69.4 release, force-push malicious changes to 76 of 77 affected trivy-action version tags, and replace the affected setup-trivy tags. These are the three specific Trivy components that security teams need to audit in their pipeline histories:

  1. Trivy v0.69.4 package: If any pipeline installed Trivy v0.69.4 from any source around March 19–24, that installation contained malicious code. Check pip install trivy, apt install trivy, and container image pulls that included Trivy at this version.
  2. trivy-action version tags (76 of 77 affected): The trivy-action GitHub Action is how most CI/CD pipelines integrate Trivy into GitHub Actions workflows. If your pipeline used trivy-action without pinning to a specific commit SHA — using a version tag like @v0.x.x instead — you received the poisoned version during the ~20-day compromise window. Audit your GitHub Actions workflow files for any trivy-action references that were tag-based rather than commit-pinned.
  3. setup-trivy tags: A second GitHub Action for Trivy installation was also replaced. Same audit applies — tag-based references during the window received malicious code.

The critical detail about the 20-day window: unlike the LiteLLM 40-minute PyPI exposure, the Trivy compromise was active for approximately 20 days. The initial entry point was the Trivy security scanner used inside LiteLLM’s build pipeline, which stayed compromised for roughly 20 days. During those 20 days, every automated CI/CD run that pulled Trivy via affected version tags — including routine daily builds, nightly security scans, and PR validation workflows — harvested and exfiltrated the runner’s secrets. Organizations running daily CI with Trivy may have had credentials stolen on multiple separate occasions during the window, across multiple pipelines and environments.

CVE-2026-33634 — in CISA KEV, added March 26

The ecosystem compromise is tracked as CVE-2026-33634, added to CISA’s Known Exploited Vulnerabilities catalog on March 26. The Hacker News confirmed on August 12 that the CVE record now lists BerriAI LiteLLM 1.82.7 through 1.82.8 as affected alongside the Trivy components. The CVE’s inclusion of Trivy components alongside the LiteLLM packages is the formal confirmation that this is a single chained incident, not two separate events. The CISA KEV entry was added two days after the LiteLLM packages appeared on PyPI — meaning CISA was tracking this from the start. For federal agencies and organizations operating under BOD 26-04, remediation requirements under the KEV entry apply to both the Trivy components and the LiteLLM packages.

Why the correction matters — the three categories of wrongly-cleared organizations

SOCRadar’s finding that most victims were exposed via Trivy rather than LiteLLM packages creates three specific categories of organizations that may have incorrectly concluded they are not affected:

  1. “We don’t use LiteLLM” — incorrect clearance. The majority of affected organizations never installed LiteLLM at all. They used Trivy in their CI/CD pipelines and were compromised directly. If your organization used Trivy via affected version tags around March 19–24, you are in the primary victim population regardless of LiteLLM usage.
  2. “We checked, we didn’t install 1.82.7 or 1.82.8” — incomplete investigation. This conclusion only addresses Stage 3 of the attack chain. It says nothing about whether your Trivy usage in the weeks preceding March 24 exposed your CI runner environment through Stage 1. An organization that uses Trivy daily in GitHub Actions and never installed LiteLLM may have had credentials harvested on every daily build run for 20 days.
  3. “We use LiteLLM but not those versions” — may also be incomplete. If your organization uses LiteLLM and also uses Trivy, both exposure vectors need to be audited independently. Clearing one does not clear the other.

The complete remediation checklist — updated for Trivy as primary vector

  1. Audit pipeline history for Trivy usage March 19–April 8, 2026. Search GitHub Actions logs, CI system logs, and container build logs for any invocation of trivy-action, setup-trivy, or Trivy v0.69.4 during the ~20-day window. This is the primary exposure check, regardless of LiteLLM usage.
  2. For any pipeline that ran Trivy via affected tags during the window: rotate all credentials readable by that runner. AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY · GCP service account credentials · Azure client secrets and tenant tokens · GitHub and GitLab personal access tokens · Kubernetes service account tokens · SSH private keys accessible to the runner · All AI provider API keys (OpenAI, Anthropic, Google, Mistral, etc.) · Database connection strings · Slack signing secrets · Salesforce client secrets · Any .env file contents accessible to the runner environment.
  3. Separately audit for LiteLLM 1.82.7/1.82.8 installation. Check pip freeze outputs, container layer histories, and package lock files for any record of these versions. This is a secondary check — not the primary exposure vector for most organizations.
  4. Check CVE-2026-33634 remediation status under BOD 26-04. Federal agencies: verify both the Trivy components and LiteLLM packages are addressed in your KEV remediation tracking.
  5. Pin all third-party GitHub Actions to commit SHAs, not version tags. The Trivy compromise was possible because tag-based references could be replaced with malicious code — a commit SHA reference would have been immutable and unaffected. Audit every GitHub Actions workflow file for tag-based Action references and convert to commit SHA pinning. This is the single most effective prevention for this attack class in the future.
  6. Implement token rotation with full revocation verification. The root cause of this entire incident is a token that was rotated but not fully revoked. Audit your token lifecycle processes: when a token is rotated, confirm the old token is invalidated — not just that a new token was issued. Check GitHub, PyPI, npm, and all other publishing platforms where your organization has automation tokens.
  7. Review cloud audit logs back to March 19. AWS CloudTrail, GCP Audit Logs, Azure Monitor — look for anomalous API calls, unusual IAM activity, or unexpected data access patterns that may reflect credential use by TeamPCP-affiliated actors during or after the exposure window.

Related DataWater Coverage — The Full Supply Chain Arc

Sources and further reading


DataWater publishes daily cybersecurity intelligence for enterprise and government security leaders. Article #61 — August 16, 2026. Correction to: Article #59 — LiteLLM Supply Chain Breach (August 13). Previous: Taiwan AI Agent Swarm (August 15) · SharePoint CVE-2026-55040 (August 12). Full archive →

Similar Posts