水曜日にPyPIとDockerレジストリへ公開されたLiteLLMの悪意あるリリースには、クラウドのログイン情報や開発者のシークレット、AIサービスのAPIキーを盗み出すマルウェアが仕込まれていました。このバージョンをインストールした利用者は、情報を窃取される恐れがあります。

セキュリティ研究者のKevin Beaumont氏はMastodonで、「LiteLLMがまた侵害された」と投稿しました。
8月にはHudson Rockが、3月に発生した前回のLiteLLMサプライチェーン攻撃で盗まれた153GBのアーカイブを分析しました。その結果、AWS、Samsung、Cisco、Salesforceなど2,488の企業ドメインとの関連が判明しています。CloudSEKは、影響を受けた組織の数を約2,500としています。
LiteLLMのブログ記事は、次のように説明しています。「米太平洋時間10月21日午前4時、LiteLLMのリリースパイプラインが侵害され、v1.107.0がDockerレジストリとPyPIに公開されました。このバージョンには、認証情報を盗み出し、リモートコード実行ツールを読み込むコンパイル済みマルウェアが含まれていました」
「これより前のバージョンはすべて安全です。影響を受けたリリースは取り下げました」
悪意あるパッケージがPyPI上に存在したのは、UTCの11時39分から13時23分までです。v1.107.0、latest、main-latest、main-stableのタグが付いたDockerイメージは、11時46分から14時20分まで不正なビルドを配布していました。
Wizの研究者Benjamin Read氏とRami McCarthy氏は、「最新の安全なバージョンはv1.106.2だ」と説明しています。ただし、アップデートするだけでは十分ではありません。Aikidoの研究者Ilyas Makari氏は、取り下げ前に1.107.0をインストールした場合、認証情報が侵害されたものとみなし、ローテーションするよう助言しています。
公開状態の環境から窃取されたトークン
LiteLLMによると、攻撃者は同社エンジニア3人のGitHubアカウントを悪用しました。GitHub CLIのOAuthトークンを盗んで使ったとみられます。1つ目のアカウントはリリースパイプラインの改変とリリースの実行に、2つ目はその承認に、3つ目はワークフローの記録の削除に使われました。この削除により、調査側が参照できるログは限られています。
同社は、インターネットに公開されていた社内のLiteLLM環境で、見慣れないユーザーアカウントを発見しました。名前は一見無害なものでした。「攻撃者はこの環境に侵入したとみている」と同社は述べています。さらに、環境のログからトークンが抜き取られ、リリースワークフローの侵害に使われたといいます。
LiteLLMは、Claude Codeが利用者のGitHub CLI OAuthトークンをレスポンスボディに埋め込むケースを確認しています。レスポンスボディをログに記録している場合、これらのトークンがLiteLLMのログに残る可能性があります。
LiteLLMは、「攻撃者が社内環境へどのように侵入したかはまだ確認できていないが、最近修正された脆弱性を突かれた可能性を疑っている」と説明しました。
同社は、インシデントは封じ込め済みで調査は継続中だとしています。現在は、組織全体のすべての認証トークンを洗い出し、失効またはローテーションする作業を進めています。LiteLLMのプライベートレジストリを利用するエンタープライズ顧客に影響はありませんでした。
Pythonの起動のたびに動く悪意あるLiteLLMのコード
サプライチェーンセキュリティ企業のSocketは、LiteLLMの週間ダウンロード数を約2,300万と見積もっています。侵害されたインストール環境では、プロバイダーのAPIキーやクラウドのID情報、データベースの接続文字列まで狙われる恐れがあると警告しています。
同社の分析では、汚染されたリリースは、macOS、Linux、Windows向けの7つのビルドとしてPyPIに公開されました。悪意あるコードはPythonのスタートアップファイルに仕込まれています。そのため、影響を受けた環境では、アプリケーションがLiteLLMを読み込まなくても、Pythonが起動するたびに実行されます。
プロジェクトのコンテナイメージのビルド記録を見ると、リリースワークフローはソースとしてBerri-AI/litellmというリポジトリを記録していました。正規のBerriAI/litellmとはハイフン1つの違いです。
このスティーラーは、AWS、Azure、Google Cloud、Kubernetes、Dockerの認証情報に加え、Gitの認証情報、SSH鍵、GPG鍵、ブラウザーに保存されたログイン情報とCookie、閲覧履歴、シェルの履歴を狙います。
Codex、Claude、Gemini、Cursorの認証ファイルも探します。LiteLLMプロキシ環境のデータベースから、保存済みの認証情報やモデル設定を取り出そうとする動作もあります。ただし研究者は、これは攻撃者の意図を示すにとどまり、特定の環境で実際に成功した証拠ではないと注意を促しています。
収集されたデータは暗号化され、litellm[.]devドメイン上の「healthcheck」アドレスへ送信されます。別のコンポーネントは、GitHub上のファイルを定期的に確認しています。追加のPythonコードをダウンロードして実行するためのドメインを取得するためです。Socketの研究者が10月21日にこのファイルを確認した時点では空でした。ただ、スティーラーはこのファイルとは無関係に動作し、ファイルの内容は後から書き換えられる可能性があります。
盗まれたキーは数時間で試用
Wizの研究者は、盗まれた認証情報が実際に使われている形跡を確認しました。被害者のシステムからデータが流出して約4時間半後、攻撃者は動作を始めました。侵害されたCIランナーやKubernetesノードから盗んだAWS認証情報の有効性を検証し、Amazon Bedrock上のAIモデルにアクセスできるかを調べていました。Wizはこの活動をLLMjackingと関連づけています。
一部の環境では、攻撃者はさらにIAMロール、ユーザー、アクセスキーを列挙し、アカウントやログの詳細も調べました。
Aikido、Wiz、Socketはそれぞれ、侵害の痕跡(IoC)とクリーンアップ手順を含む詳細な分析を公開しています。LiteLLMの利用者やセキュリティチームは、これらを参照できます。
翻訳元: https://www.helpnetsecurity.com/2026/10/22/litellm-compromised-supply-chain-attack-pypi-docker/