LiteLLMへサプライチェーン サイバー攻撃、2,500組織・43万件超のCI/CDパイプラインに影響か CloudSEKが被害規模を分析

セキュリティニュース

投稿日時: 更新日時:

LiteLLMへサプライチェーン サイバー攻撃、2,500組織・43万件超のCI/CDパイプラインに影響か CloudSEKが被害規模を分析

026年3月に発生したTeamPCPによる一連のサプライチェーン攻撃について、2,500以上の組織と43万4,000件超のCI/CDパイプラインという影響規模の捉え方を見直す必要があることが分かりました。

Aqua Securityの一次情報では、2026年3月19日にTrivy本体、trivy-actionsetup-trivyが改ざんされ、CI/CDパイプライン上で実行された悪意あるコードがクラウド認証情報、GitHubトークン、Kubernetesシークレット、SSHキーなどを窃取する仕組みだったことが確認されています。

LiteLLMへの侵害は、このTrivy攻撃から派生した二次的なサプライチェーン侵害です。LiteLLMのCI/CD環境で使用されたTrivyを通じてPyPI公開用の認証情報が窃取されたとみられ、攻撃者はその認証情報を使ってLiteLLM 1.82.7と1.82.8をPyPIへ不正公開しました。

したがって、「2,500以上の組織・43万4,000件超のCI/CDパイプライン=LiteLLM 1.82.7/1.82.8を導入した環境」と読むのは適切ではありません。

今回の続報では、Trivyによる広範なCI/CD露出と、LiteLLMの悪性パッケージを実際に取得・実行した環境を分けて整理します。

TeamPCPサプライチェーン攻撃の続報サマリー

  • この数字は「2,500組織すべてで侵害が確定した」「43万4,000件すべてで認証情報が窃取された」という意味ではなく、CloudSEKが再構築した露出範囲として扱う必要があります。
  • Trivyでは2026年3月19日、trivy-actionの76のバージョンタグとsetup-trivyの複数タグが悪意あるコミットへ差し替えられ、Trivy v0.69.4の悪性バイナリも正規配布経路から公開されました。
  • Trivyの悪性コードは、CI/CDランナーの環境変数やプロセスメモリ、クラウド認証情報、GitHubトークン、Kubernetesシークレット、SSHキーなどを収集しました。
  • LiteLLMの侵害はTrivyから連鎖したもので、LiteLLM側のPyPI公開用認証情報が窃取され、1.82.7と1.82.8が悪性パッケージとして公開されました。
  • LiteLLM 1.82.7/1.82.8は、Trivyの影響範囲とは別に、実際に当該バージョンを取得・実行した環境が直接の調査対象です。
  • LiteLLM公式は、公式Proxy Dockerイメージ利用者については依存関係が固定されていたため影響を受けていないと説明しています。
  • Microsoftは、TrivyからCheckmarx KICS、LiteLLMなどへ同じTeamPCPの攻撃が連鎖したことを観測しています。
  • Trivyを利用していた組織とLiteLLMを利用していた組織では、確認すべき時期・コンポーネント・認証情報が異なります。
  • 対応では「LiteLLMを使っていたか」だけではなく、「3月19日前後にTrivy/trivy-action/setup-trivyをCI/CDで実行していたか」を確認する必要があります。

TrivyとLiteLLMの影響範囲を分けて整理

項目 Trivy LiteLLM
主な発生日 2026年3月19日 2026年3月24日
攻撃対象 Aqua SecurityのTrivy OSS配布・GitHub Actions LiteLLMのPyPI公開アカウント/認証情報
攻撃者 TeamPCP TeamPCP
主な侵害物 Trivy v0.69.4、trivy-actionsetup-trivyなど LiteLLM 1.82.7、1.82.8
主な実行環境 CI/CDランナー、開発端末 Python環境、CI/CD、開発端末
認証の要否 正規のTrivy/Actionを通常どおり利用するだけで悪性コードが実行され得る 悪性バージョンをPyPIから取得・実行した場合に影響
主要な窃取対象 CI/CDシークレット、GitHubトークン、クラウドキー、Kubernetes情報、SSHキー等 SSHキー、クラウド認証情報、Kubernetes情報、環境変数、AI APIキー等
2,500組織・43.4万CI/CDとの関係 続報ではTrivy側の露出範囲として整理 LiteLLM単体の導入件数・侵害件数として扱わない
対応 影響期間のActions・バイナリ実行履歴確認、認証情報ローテーション 1.82.7/1.82.8取得・実行確認、端末調査、認証情報ローテーション

2,500組織・43万4,000件はLiteLLM単体の被害規模ではない

CloudSEKの2026年8月の分析をもとに、当初は複数の海外メディアが「LiteLLMのサプライチェーン攻撃によって2,500以上の組織、43万4,000件超のCI/CDパイプラインが露出した」と伝えました。

しかしこの大規模な露出データはLiteLLMの悪性PyPIパッケージだけを集計したものではなく、Trivyへのサプライチェーン攻撃による露出範囲に紐づくものとされています。

これは攻撃経路を考えると重要な違いです。

Trivyは脆弱性スキャナーとして、多数の企業のCI/CD環境で自動実行されます。しかも、単なるアプリケーションライブラリとは異なり、コンテナレジストリ、クラウド環境、Kubernetesクラスタ、IaC設定などへアクセスできる権限を持って実行されるケースがあります。

CloudSEKも別の技術分析で、侵害されたセキュリティスキャナーは「1つのパイプライン」ではなく、そのパイプラインがアクセス可能な多数の対象に関する認証情報へ接触できるため、通常のアプリケーションライブラリよりも被害半径が大きくなり得ると指摘しています。

そのため、2,500組織・43万4,000件という数字は、LiteLLMをインストールした環境数としてではなく、Trivyを起点として再構築された広範な露出可能性として扱う必要があります。

また、この数字自体も「実侵害が確認された組織数」ではありません。

CloudSEKが示した組織名についても、対象組織で認証情報窃取や不正アクセスが実際に成功したことを一律に意味するものではなく、個別のログやシークレット利用状況による検証が必要です。

TrivyではGitHub Actionsのタグが悪意あるコミットへ差し替え

Aqua Securityの公式調査によると、TeamPCPによる攻撃は2026年3月19日に本格化しました。

攻撃者は、以前の侵害後にも残っていた有効な認証情報を利用し、aquasecurity/trivy-actionの76のバージョンタグと、aquasecurity/setup-trivyのタグを悪意あるコミットへ差し替えました。

GitHub Actionsで、

aquasecurity/trivy-action@<version-tag>

のように可変タグを指定していたCI/CD環境では、利用者側でコードや設定を変更しなくても、タグの参照先が攻撃者のコードへ変更されることで悪意ある処理が実行される可能性がありました。

さらに、Trivy v0.69.4の悪性バイナリもGitHub Releasesやコンテナレジストリなどの正規配布経路へ公開されました。

Aqua Securityは、影響期間中に悪性のtrivy-actionsetup-trivy、Trivyバイナリを利用した環境では、そのCI/CDランナーからアクセスできたシークレットを露出した可能性があるものとして扱うよう案内しています。

MicrosoftもCI/CDランナーから広範な認証情報窃取を確認

Microsoft Defender Security Research Teamも、Trivyのサプライチェーン攻撃を実際の侵害環境で観測しています。

Microsoftによると、Trivyへ挿入された悪性コードは、GitHub Actionsのランナープロセスを探索し、環境変数だけでなくプロセスメモリやファイルシステムから機密情報を収集していました。

対象には以下が含まれます。

  • AWS、Google Cloud、Microsoft Azureのクラウド認証情報
  • Kubernetesサービスアカウントやクラスタシークレット
  • GitHub ActionsやCI/CDのトークン
  • .envやJSON、YAMLファイルに保存されたAPIキー
  • SSH関連情報
  • データベースの接続情報
  • VPN設定
  • SlackやDiscordのWebhook等

窃取処理の後には正規のTrivyスキャンを実行するため、CI/CDのログ上ではセキュリティスキャンが正常に完了したように見える点も特徴でした。

この仕組みを踏まえると、Trivy側の潜在的な影響範囲がLiteLLMの悪性パッケージより広くなることは不自然ではありません。

LiteLLMはTrivyから派生した二次侵害

LiteLLMの侵害自体が誤報だったわけではありません。

LiteLLMは2026年3月24日、PyPI上で1.82.7と1.82.8の2つの悪性バージョンを公開されるサプライチェーン攻撃を受けました。

LiteLLMの公式GitHubでは、侵害の原因がTrivyのセキュリティスキャン依存関係に由来すると説明しています。

JFrogの分析では、LiteLLMのCI/CDパイプラインがTrivyをバージョン固定せずインストールする構成になっており、悪性TrivyがCI/CD内で実行されたことでPyPI公開用の認証情報などが窃取されたと整理されています。

攻撃者はその後、正規のLiteLLMリリースパイプラインを使わず、窃取した認証情報を利用して1.82.7と1.82.8をPyPIへ直接公開しました。

つまり攻撃の流れは、

Trivy侵害
→ Trivyを利用するLiteLLMのCI/CDで認証情報窃取
→ LiteLLMのPyPI公開権限を奪取
→ LiteLLM 1.82.7/1.82.8を悪性化
→ LiteLLM利用環境へ二次的に拡散

という連鎖です。

LiteLLM 1.82.8はPython起動時に自動実行

LiteLLM 1.82.7と1.82.8には情報窃取用の悪性コードが含まれていました。

特に1.82.8ではlitellm_init.pthが追加されていました。

Pythonの.pthファイルは、Pythonインタープリター起動時に処理されるため、利用者がLiteLLMを明示的にインポートしなくても悪性コードが実行される可能性があります。

このため、当該バージョンがインストールされた環境では、LiteLLMを実際にアプリケーションから呼び出したかどうかだけで影響を判断できません。

一方、LiteLLM公式はProxy Dockerイメージについて、依存関係が固定されていたため今回の悪性PyPIパッケージの影響を受けていないと説明しています。

LiteLLM側の調査対象は、「LiteLLMを使っている全企業」ではなく、影響期間中に1.82.7または1.82.8をPyPI経由で取得・実行した可能性がある環境です。

LiteLLMの公開時間にも情報源による差がある

LiteLLMの悪性バージョンがPyPI上で取得可能だった時間については、公開情報の間で差がありますが、GoogleのAgent Development Kit(ADK)のセキュリティ通知では、影響バージョンが2026年3月24日10時39分UTCから16時00分UTCまでインストール可能だったと説明しています。

このため、「40分間だけだった」と限定して組織の影響有無を判断するのは避けた方が安全です。

自社のCI/CDログ、PyPIキャッシュ、SBOM、ロックファイルなどを確認し、3月24日に1.82.7または1.82.8を取得・実行した痕跡がないかを確認する方が確実です。

当サイトが追跡してきたTeamPCP攻撃との関係

セキュリティ対策Labでは、今回のTeamPCPキャンペーンを複数の記事で継続的に追跡しています。

Ciscoのソースコード流出疑惑、Trivyのサプライチェーン サイバー攻撃かでは、Trivyの侵害後にLiteLLMへ攻撃が連鎖した経緯を取り上げています。

また、欧州委員会(EC)のAWS環境へ不正アクセス、原因は「Trivy」へのサプライチェーン攻撃では、Trivyを起点として窃取されたクラウド認証情報が、その後のAWS環境への不正アクセスにつながった事例を整理しました。

FBI、TeamPCPのサプライチェーン攻撃に緊急警戒情報-Trivy・KICS・LiteLLM侵害の全体像とIOC・対策では、Trivy、KICS、LiteLLM、Telnyx Python SDKなどにまたがる一連のサプライチェーン攻撃をまとめています。

今回の続報を踏まえると、TeamPCPのキャンペーンを「LiteLLMの大規模侵害」と単独で見るより、Trivyで大量のCI/CD認証情報を窃取し、そこからLiteLLMや他のOSSへ侵害を連鎖させた攻撃として捉える方が実態に近いといえます。

2,500組織の一覧に自社名があっても侵害確定ではない

前回のCloudSEK分析では、Nvidia、AWS、Samsung、Salesforce、Cisco、ServiceNow、Siemens、FedEx、Volkswagen、HP、Zscalerなど、多数の著名組織が露出範囲として示されていました。

ここで注意したいのは、組織名がリストに含まれていることと、その企業のシステムが侵害されたことは同義ではない点です。

確認すべきなのは、その組織で実際に影響期間中のTrivyコンポーネントを実行したか、悪性コードが動作したか、認証情報が外部送信されたか、その認証情報がその後悪用されたかというログです。

同様に、LiteLLMを依存関係として含んでいたことだけでも、悪性バージョンを取得した証明にはなりません。

ソフトウェアサプライチェーン攻撃では、「依存している」「露出した可能性がある」「悪性コードを実行した」「認証情報を窃取された」「窃取された認証情報で侵害された」という段階を分けて説明する必要があります。

情報システム・DevSecOps部門が確認すべきポイント

今回の続報を踏まえ、まずTrivy側の確認をLiteLLMとは別に実施してください。

2026年3月19日前後にaquasecurity/trivy-actionaquasecurity/setup-trivyをバージョンタグで利用していた場合、GitHub Actionsの実行履歴を確認します。

Trivy v0.69.4や、その後問題となった配布物を取得・実行した環境についても調査対象です。

影響期間中に悪性コードが動作した可能性があるCI/CDランナーでは、そこからアクセス可能だったGitHubトークン、クラウドキー、コンテナレジストリ認証情報、Kubernetesトークン、SSHキーなどを露出したものとして扱い、必要に応じて失効・ローテーションします。

LiteLLMについては、1.82.7または1.82.8のインストール履歴を確認してください。

litellm_init.pthsysmon.py、関連するsystemdサービスなど、既知の侵害痕跡も確認対象になります。

また、パッケージを削除しただけでは、すでに窃取された認証情報は無効になりません。

Trivy、LiteLLMのどちらの経路であっても、最終的な対策では「悪性パッケージの削除」と「認証情報の失効・ローテーション」を別の作業として実施する必要があります。

今後のCI/CDでは、GitHub Actionsを可変タグではなくコミットSHAで固定すること、パッケージやセキュリティツールのバージョンを固定すること、CI/CD用トークンの権限を最小化すること、bot・サービスアカウントを含めた認証情報の棚卸しと定期ローテーションを行うことが対策になります。

今回のTeamPCP攻撃は、セキュリティスキャナー自体が侵害された場合、アプリケーションライブラリより大きな被害半径を持ち得ることを示しました。

出典