Skip to content

Tools

An unrevoked key opened the door to LiteLLM’s poisoned release

3-line summary

  1. LiteLLM’s October 23 investigation identified an unrevoked master key as the entry point.
  2. The October 21 release carried malicious startup hooks absent from its source archive.
  3. Affected artifacts were removed; the advisory calls for rebuilding compromised environments and rotating credentials.
PracticalDevelopers
An old metal key beside folded paper and an open storage case, a conceptual still life
AI-generated editorial image · Conceptual scene · AI Ping

LiteLLM traced its poisoned release to an exposed, unrevoked key in its October 23 investigation. The Agent Platform master key appeared publicly on May 27. Overwriting the commit left the key usable when the attacker accessed the platform on October 10.

The affected release was 1.107.0 on October 21. LiteLLM lists exposure windows of 11:39–13:23 UTC for PyPI and 11:46–14:20 UTC for Docker Hub. Tags including latest also referenced it. The company says its separate private enterprise registry was unaffected.

LiteLLM is an open-source gateway connecting applications to multiple AI providers through one interface. Provider credentials stay at the gateway, while applications and users receive virtual keys with budgets and rate limits. The service also records the cost of requests passing through it.

The experimental Agent Platform filed GitHub pull requests. LiteLLM says the attacker took its stored owner-level GitHub CLI credential, then obtained two engineers’ credentials through CI. The final report corrects the suspicion that deployment logs supplied the first credential.

Datadog identified three stolen identities used to launch, approve and erase build records. Berri-AI/litellm, one hyphen away from the genuine repository, became the source. Legitimate publication channels distributed the malicious artifacts, with provenance recording that substitution.

JFrog found three extra files in all seven platform wheels, absent from the source archive. Timestamps and metadata favored inclusion during wheel construction over later manual repacking. Source-archive review alone could miss executable content in the installable package. JFrog identified a credential collector and a separate remote loader.

A red object hidden inside a box beside papers
Conceptual release artifact · AI-generated editorial image · AI Ping

Python’s documentation describes startup processing of import lines in .pth files and the sitecustomize module. These mechanisms normally run before application code, regardless of whether a particular library will be used. JFrog found that the malicious files exploited these hooks, executing without an application importing LiteLLM.

Datadog identified collection of cloud, developer, AI-tool and browser credentials. On a configured LiteLLM proxy, the malware also queried database tables holding upstream provider credentials. Upstream AI services were among the targets.

Startup hooks before application code
Normal Python startup, simplified · Diagram: AI Ping

The loader checked hourly for a location to fetch further code. Datadog reported only test values in that lookup file and no second-stage payload observed in the wild. That observation does not negate the collector’s separate credential-stealing function.

LiteLLM removed affected artifacts or redirected tags to clean builds. Its advisory says package-folder removal alone leaves startup hooks behind. The response guidance covers rebuilding affected environments and rotating credentials reachable from them, including provider keys stored in the proxy database.

Sources

Corrections

  • Clarified the wording for GitHub access credentials.
  • Fixed a Korean grammar typo introduced while clarifying access credentials.
  • How-to guideAbout 15 min reading

    Before you paste: choosing suitable practice material

    Start with invented notes rather than real customer records. Learn what to check about account data handling, unnecessary details, instructions inside documents and sharing.

    BeginnerOffice workersBeginners
  • How-to guideAbout 18 min reading

    Evaluate AI work beyond first impressions

    Build a small evaluation set, compare drafts against evidence, change one instruction and test on a fresh case. No code required.

    AdvancedPlanningDesignersMarketersSalesProduct researchOffice workersDevelopers