ハッカーはLiteLLMのGitHub組織にアクセスし、認証情報を盗むワークフローを実行していました。これは、悪意あるパッケージlitellm==1.107.0を配布した10月21日のサプライチェーン攻撃の11日前にあたります。
倫理的ハッキングツール
今回の調査結果から、不正なリリースに先立つ侵害期間が、従来の想定より長かったことがわかりました。Socketは、2026年10月10日と10月12日にBerriAI/litellm内で実行された悪意あるワークフローを回収しています。
2つのワークフローはいずれも、保守作業を装ったコミットメッセージci: bump cache configを使い、.github/workflows/cache.ymlを追加していました。このファイルは、継続的インテグレーション(CI)のシークレットを収集し、攻撃者が管理するエンドポイントへ送信するよう設計されています。
LiteLLMのGitHubリポジトリに侵入したハッカー
攻撃者は正規のコミットから一時的なブランチを作成し、悪意あるワークフローをプッシュしました。そしてGitHub Actionsが実行されるのを待ってから、ブランチを削除しています。
これらのブランチはci-tmp-a351ccとci-tmp-4d8517という名前で、ワークフローをmainにマージしないまま姿を消しました。このため、通常のリポジトリレビューでは発見しにくい状態でした。

10月10日のワークフローには、6つのシークレットを狙う1つのジョブが含まれていました。対象はGH_TOKEN、GitHub Appの秘密鍵、LiteLLM・Linear・Together AIに関連する認証情報などです。
このジョブは取得した値を/tmp/c.envに書き込み、/tmp/c.b64にエンコードしたうえで、curlを使ってwebhook.siteにPOSTしていました。末尾の|| trueにより、送信エラーは握りつぶされます。
そのため、情報の持ち出しに失敗した場合でも、ジョブは成功と報告される可能性があります。GitHub Actionsのパフォーマンス指標には、約4秒の実行が1回成功したと記録されていました。しかし、この指標だけでは、収集側が認証情報を受け取ったかどうかは確認できません。
10月12日の亜種では、収集対象が6つのジョブに拡大し、そのうち5つは設定済みのGitHub環境に紐づいていました。2つのワークフロー全体で、攻撃者は20種類の異なるシークレット名を参照しています。対象はOpenAI、Anthropic、AWS Bedrock、GitGuardian、PostgreSQL、Redis、およびLinearのブラウザセッション情報です。

ブランチ削除後も、永続的な環境デプロイメント記録が残っており、ワークフローの実行を裏付けています。LiteLLMの調査によると、最初の侵入経路は、5月27日に誤って公開コミットされ、失効されないままだったAgent Platformのマスターキーでした。
攻撃者は10月10日、このキーを使って、組織オーナーのGitHub CLI用OAuthトークンを取得しました。このトークンは権限が制限されていませんでした。これにより、さらなる認証情報の窃取が可能になりました。LiteLLMによると、監査ログ上のトークンハッシュから、BerriAI/litellmから盗まれたGH_TOKENが、悪意ある本番リリースの承認に使われたことが判明しています。
別の保守担当者のトークンも盗まれ、リリースワークフローの記録を削除するために使われました。10月21日、攻撃者はオーナー権限でブランチ保護を回避し、リリースパイプラインを、名前が酷似したBerri-AI/litellmリポジトリへ向け直しました。
セキュリティ脆弱性パッチ適用
その後、このパイプラインは、7つの悪意あるPyPI wheelと、侵害されたコンテナイメージに署名して公開しました。LiteLLMはレジストリをロックし、信頼できる1人を除くGitHub組織のメンバーをすべて削除しました。あわせて、社内システムとベンダー全体で認証情報の失効を進めています。
Socketは次のように注意を促しています。10月10日は同社が裏付けられた最も古い活動であり、必ずしも侵入の始まりとは限りません。削除されたブランチと成功ステータスのワークフローが残っているため、侵害の全期間と範囲には重要な不確実性が残ります。
IOC(侵害指標)
| カテゴリ | 指標/値 | 関連する日付/詳細 |
|---|---|---|
| 情報送信先エンドポイント | hxxps://webhook[.]site/65a42464-3cfa-4b02-a18c-17a6d7b86f37 |
2026年10月10日 |
| 情報送信先エンドポイント | hxxps://webhook[.]site/4da03473-a3e7-4dc2-a087-9c564b4208e1 |
2026年10月12日 |
| HTTPリクエストヘッダー | X-Tag: lm1 |
10月10日のワークフロー |
| HTTPリクエストヘッダーの値 | X-Tag: org, X-Tag: e2e, X-Tag: intpg, X-Tag: intprov, X-Tag: intredis, X-Tag: intrp |
10月12日のワークフロー |
| 悪意あるワークフローファイル | .github/workflows/cache.yml |
シークレットの持ち出しに使われたワークフロー |
| Gitコミット | b69bc36fd4e23b23ea09f4ce63a92b07258f5044 |
2026年10月10日 |
| Gitコミット | 1a6e3c1e41f1b5c8eeaeeb2ae94bcd95390fa891 |
2026年10月12日 |
| 一時ブランチ | ci-tmp-a351cc |
10月10日に作成・削除 |
| 一時ブランチ | ci-tmp-4d8517 |
10月12日に作成・削除 |
| 環境デプロイメントの参照 | ci-tmp-4d8517 |
デプロイメントはActiveのまま残存 |
| ランナーのファイルシステム上のアーティファクト | /tmp/c.env |
収集したシークレット値を含むファイル |
| ランナーのファイルシステム上のアーティファクト | /tmp/c.b64 |
持ち出し用に準備されたBase64エンコード済みファイル |
注記: IPアドレスとドメインは、誤って名前解決されたりハイパーリンク化されたりするのを防ぐため、意図的に無害化([.]など)しています。元に戻す(re-fang)のは、MISP、VirusTotal、自社のSIEMなど、管理された脅威インテリジェンス基盤の中に限ってください。
16,000以上のSOCチームが、脅威調査の効率化と手作業の削減のためにANY.RUNを利用しています。 チームでの導入を検討する
翻訳元: https://gbhackers.com/hackers-breached-litellm-github-repository/