<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
  <title>Supply Chain Watch · GitHub Actions</title>
  <link>https://vanemmerik.ai/supply-chain/</link>
  <description>Supply Chain Watch entries: GitHub Actions.</description>
  <language>en</language>
  <item>
    <title>[Context] Update: LiteLLM traces its poisoned 1.107.0 release to a master key leaked in May; CI secrets were stolen from Oct 10</title>
    <link>https://vanemmerik.ai/supply-chain/2026-10-24/#litellm-root-cause-leaked-master-key</link>
    <guid isPermaLink="false">vea-sc-2026-10-24-litellm-root-cause-leaked-master-key</guid>
    <pubDate>Sat, 24 Oct 2026 16:01:00 +0000</pubDate>
    <description>LiteLLM&#x27;s Oct 23 write-up says a master key for its Agent Platform was committed to a public repo in May and never revoked. On Oct 10 the attacker used it to pull an org owner&#x27;s unscoped GitHub CLI token, then ran throwaway CI branches that shipped repository secrets to a webhook, yielding two more maintainer tokens; the owner token overrode branch protection to point the Oct 21 release at a lookalike fork. Socket separately found two successful secret-stealing cache.yml runs on Oct 10 and Oct 12 (branches ci-tmp-a351cc and ci-tmp-4d8517) targeting 20 secrets, including AI provider keys and a GitHub App private key. This corrects LiteLLM&#x27;s earlier theory that a token leaked through internal logs. Affected artifacts are unchanged: only 1.107.0 on PyPI and its Docker images; LiteLLM says it is revoking every token and key. What to do: If 1.107.0 ever ran, the earlier guidance stands: rebuild, pin 1.106.2 and rotate. For your own org, revoke keys that were ever committed (even if force-pushed away) and alert on workflow files appearing on short-lived branches.</description>
  </item>
</channel>
</rss>
