LiteLLM traces its poisoned release to an admin key leaked in May and never revoked
LiteLLM's October 23 attack-chain report says an Agent Platform admin key committed to a public repo on May 27 was deleted but never revoked. On October 10 it returned a GitHub org owner's unscoped CLI OAuth token, which led to stolen maintainer tokens and the 1.107.0 release.
LiteLLM published the attack chain behind its malicious 1.107.0 release on October 23. On May 27 an opencode.json file holding an administrative key for the internal LiteLLM Agent Platform was committed to the public LiteLLM-Labs/lite-harness repository. A follow-up commit deleted it about three hours later, but the file stayed in public history until October 22 and, in LiteLLM's words, "nobody followed through on revoking the administrative key." On October 10 an attacker used the key, and an agent-listing API call returned the GitHub CLI OAuth token of one of two organization owners. LiteLLM says that token is unscoped and is not subject to GitHub's 2FA re-authentication for sensitive actions. Within an hour the attacker ran workflows that posted CI secrets, including two more maintainers' tokens, to an external endpoint. On October 21 those tokens overrode branch protection, approved the production gate and published the release.
Why it matters
Deleting a leaked secret from a repository is not remediation; revoking it is. One forgotten key chained into three human-linked tokens because the agent platform stored an org owner's personal token instead of a scoped credential, and because two engineers' tokens satisfied a recently relaxed release approval rule.
Treat any secret that reached a public commit as compromised, even after a force-push, and rotate it the same day (secrets in repositories and CI covers the pattern). Never give automation an owner's CLI token: use a GitHub App or a fine-grained token scoped to the repos it needs. Keep CI secrets out of workflows that run on unprotected branches, and require release approvals from identities that cannot also trigger the build. Our October 21 post covers cleanup for affected installs.
Source: LiteLLM
Related on Start with Identity
- BlogGheist turns stolen GitHub tokens into secret dumps through Actions logs
Wiz reported on October 25 that the Gheist campaign used stolen GitHub tokens from infostealer logs and past supply-chain leaks to plant more than 13,500 ci-syn
- BlogGhostAction returns: about 1,900 hijacked GitHub accounts pushed secret-stealing workflows to 30,000 repos
GitGuardian counts more than 30,000 repositories and about 1,900 compromised GitHub accounts in GhostAction's October wave, which committed workflows that dump
- BlogZeabur to shut down after a non-expiring admin token opened its shared cluster
Zeabur says an attacker used a shared-cluster admin token created in January 2024 with no expiry, plus internal AWS keys, all stored in plaintext in a private c
- GlossaryAPI Key
A static secret string used to authenticate an application or caller to an API. Simple but weak: it does not expire on its own, is easy to leak, and should be v
- GuideAPI Key Rotation Automation Guide
A practical guide to automating API key rotation with zero downtime, covering rotation strategies, secrets management integration, dual-key patterns, monitoring
- VendorAzure Key Vault
strong_contender