セキュリティとプライバシー

LiteLLMサプライチェーン攻撃、未失効のマスターキーとWebhookによるデータ流出が原因

失効処理が行われていなかったLiteLLM Agent Platformのマスターキーにより、攻撃者はリリースパイプラインを乗っ取り、悪意のあるPyPIパッケージを公開し、Webhookを通じて認証情報を窃取しました。

データパイプラインからWebhookエンドポイントへキーが漏洩している様子を描いたイラスト
この記事用に生成されたイラスト

英語の原文から自動翻訳されました。

LiteLLMは2026年10月24日、5月に漏洩したマスターキーに起因する重大なサプライチェーン侵害について公表しました。攻撃者はこのアクセス権限を利用し、人気Pythonパッケージのバージョン1.107.0に悪意あるコードを注入し、開発者の認証情報やシステム環境を狙いました。

何が起きたか

この事件は2026年5月27日に始まりました。LiteLLM Agent Platformのマスターキーを含む設定ファイルが、誤って公開GitHubリポジトリにコミットされたのです。チームは迅速にコミットを強制プッシュで上書きし、失効が必要であることを認識しましたが、マスターキー自体は一度も失効されませんでした。2026年10月10日、IPアドレス69.48.229.143から活動していた攻撃者が、依然として有効だったこのキーを使ってAgent Platformにアクセスしました。そこから、スコープが制限されておらず、組織オーナーのアカウントに関連付けられていたGitHub CLI OAuthトークンを抽出しました。

オーナーレベルのアクセス権を得た攻撃者は、一連の隠密な操作を実行しました。10月10日、彼らは内部リポジトリに短命なブランチを作成し、追加の認証情報を収集するために設計されたワークフローを実行しました。これらのブランチは数分以内に削除され、標準的な履歴にはほとんど痕跡を残しませんでした。10月21日までに、攻撃者はブランチ保護を上書きし、リリースパイプラインを酷似したリポジトリ(lookalike repository)を指すように変更しました。盗んだエンジニアのトークンを使用して、LiteLLMバージョン1.107.0をPyPI、Docker Hub、およびGHCRへリリースするようにトリガーし、承認した後、生産記録を削除して痕跡を消去しました。

悪意のあるパッケージは、セキュリティ研究者からの報告を受け、同日中にPyPIによって隔離され、コンテナレジストリからも削除されました。LiteLLMは、攻撃者がリリース制限をさらに緩和できた可能性がありますが、検出を逃れるために行わなかった可能性が高いと確認しています。同社は現在、内部システムおよびベンダープラットフォームに関連するすべてのトークンの失効作業を進めています。

仕組み

攻撃者が認証情報を窃取するための主要な手法は、使い捨てブランチに悪意あるGitHub Actionsワークフローを注入することでした。cache.ymlという名前のこれらのワークフローは、すべてのpushイベントで実行されるよう設定されていました。Anthropic、OpenAI、AWS Bedrock、GitGuardianなどのAPIキー、データベース認証情報、ブラウザセッション状態などのシークレットを収集しました。盗まれたデータは、ユーザーが受信HTTPリクエストを検査できるサービスであるwebhook.site上の攻撃者管理のエンドポイントへ流出させられました。

公開後、侵害されたLiteLLMバージョン1.107.0には、ライブラリがインポートされなくてもPython起動時に自動的に実行されるマルウェアが含まれていました。このマルウェアには、開発ツール、クラウド環境、ブラウザ全体で認証マテリアルをスキャンする認証情報収集モジュールが含まれていました。また、Unix向けのバックドアがインストールされており、毎時間攻撃者のサーバーから任意のコードを取得して実行していました。つまり、影響を受けた環境で単にPythonを開始するだけで悪意あるコードがアクティブ化される可能性があり、リスクはアクティブなLiteLLMデプロイメントを超えて拡大していました。

重要な詳細

  • 初期の侵入ベクトルは2026年5月27日に漏洩したマスターキーであり、露出していることが特定されていたにもかかわらず、一度も失効されませんでした。
  • 攻撃者はwebhook.siteのエンドポイントを使用して、APIキーやデータベースパスワードなど、盗まれた認証情報を流出させました。
  • 悪意あるワークフローは短命なブランチにプッシュされ、リポジトリ履歴での検出を避けるために数分以内に削除されました。
  • 侵害されたパッケージバージョン1.107.0は、2026年10月21日にPyPIおよびコンテナレジストリに公開されました。
  • マルウェアはPython起動時に実行され、litellm.devと毎時間通信するバックドアを含んでいます。
  • 盗まれた認証情報には、Linear、Together AI、およびGitGuardianのようなシークレットスキャンプラットフォームへのアクセスが含まれていました。

なぜ重要なのか

この事件は、不十分なキー管理と過度に緩いCI/CDパイプラインに伴う深刻なリスクを浮き彫りにしています。露出してから数ヶ月後に既知の侵害キーを失効しなかった失敗により、攻撃者は永続的なアクセスを維持できました。エンジニアリングチームにとって、これはキーローテーションをオプションのメンテナンスタスクではなく、重要なセキュリティコントロールとして扱うことの重要性を強調します。また、一時的な利便性のためであっても、リリースコントロールを緩和することが、攻撃者が複数人承認プロセスを回避するために悪用する脆弱性を生み出すことを示しています。

Webhookベースの流出の使用は、攻撃者が従来のセキュリティアラートを発動させることなくデータを窃取するために、正当なデバッグツールをどのように活用するかを示しています。データが外部のWebhookエンドポイントに送信されたため、内部ネットワーク監視を回避しました。開発者とセキュリティエンジニアは、HTTPリクエストを受信できるあらゆるサービスがデータ流出チャネルとして使用され得ることを認識する必要があります。これらのリクエストがどのように構造化され、何を含んでいるかを理解することは、そのような攻撃を検出し防止するために不可欠です。

あなたができること

  • すべてのCI/CDパイプラインを監査し、過度に広い権限がないか確認し、トークンが最小限必要なアクセス範囲に限定されていることを保証してください。
  • 公開リポジトリで露出した認証情報に対して、自動キーローテーションと即時失効プロトコルを実装してください。
  • 異常なワークフロー実行、特に短命なブランチや迅速な削除を伴うものを監視してください。
  • ビルド環境からの発信HTTPリクエストを検査し、外部サービスへの不正なデータ流出を検出してください。
  • ハッシュを確認し、ロックファイルを使用することで、予期しない更新を防ぎ、サードパーティ製パッケージの整合性を検証してください。
  • リリースパイプラインへのアクセスを見直し、制限してください。セキュリティコントロールの一時的な緩和が厳格に期間限定かつ監視下にあることを確認してください。
  • #supply chain security
  • #webhook security
  • #ci/cd security
  • #credential management
  • #python security

Bytechapストアのツール

続きを読む

セキュリティとプライバシー

Ruby、GitLabの重大なリモートコード実行脆弱性の原因となる正規表現エンジンのバグを修正

Rubyは、Onigmoエンジンの3つのバグを修正するアップデートをリリースしました。これらのバグは、信頼できない正規表現パターンをコンパイルするあらゆるアプリに影響を与える、GitLabにおける4件の重大なリモートコード実行脆弱性を可能にしていました。

セキュリティとプライバシー

Node.jsのBrotliデコーダーの脆弱性により公式ビルドでリモートコード実行が可能に

Impervaの研究チームは、Node.js 24.22.0において細工されたBrotliデータを用いたリモートコード実行を実証しました。サポート対象バージョン向けのパッチが提供されており、信頼できないデータを復号するサービスには即時の更新が必要です。

すべての記事