Trivy Scanner でサプライチェーン攻撃:バージョン・タグの書き換えによる認証情報窃取

Hackers Compromise Trivy Scanner to Inject malicious Scripts and Steal Login Credentials

2026/03/21 CyberSecurityNews — Trivy の公式 GitHub Action (aquasecurity/trivy-action) を標的とする高度なサプライチェーン攻撃により、世界中の CI/CD (Continuous Integration/Continuous Deployment) パイプラインが侵害されている。2026年3月3日には、Trivy エコシステムの別のインシデントが報告されており、今回は 2件目の侵害事例となる。

脅威アクターたちは、既存の 76個のバージョン・タグのうちの 75個に対して force push を実行し、情報窃取マルウェアを配布した。10,000以上の GitHub ワークフローがこの Action に依存しているため、きわめて広範な範囲で、認証情報の漏洩が生じ得る状況となっている。

タグ汚染攻撃の仕組み

この攻撃の手法は、ブランチへのコード・プッシュや新規リリース作成ではなく、過去の認証情報漏洩により取得した書き込み権限を悪用し、既存のバージョン・タグを書き換えるというものだ。

攻撃者は “@0.33.0” や “@0.18.0” を含む 75個のタグを、改竄された新規コミットを指すように強制的に再割り当てした。

Screenshot of the Socket package page for of the compromised tags (Source: Socket)
Screenshot of the Socket package page for of the compromised tags (Source: Socket)

これにより、本来は不変であるべき信頼されたバージョン参照が、カスタム情報窃取マルウェアの配布手段へと変化した。

また、新規リリースを作成しないことで、自動セキュリティアラートの発生や、プロジェクト管理者への不正なブランチ更新の通知を最小限に抑えた。

この検知回避のために、攻撃者は Git コミット・メタデータを偽装している。具体的には、オリジナルの作者名/日時/コミット・メッセージを複製し、リポジトリ・ログ上で正当に見えるように操作した。

Trivy Notification (Source: Socket)
Trivy Notification (Source: Socket)

改竄されたコードは、カレントのファイル・ツリーをベースとしながら、正規の “entrypoint.sh” を悪意のバージョンへと差し替えている。

ただし、コミット日時が 2026年3月の親コミットと矛盾する点と、GitHub の web-flow による GPG 署名が存在しない点から、この偽造を判別することが可能である。なお、”@0.35.0″ だけは未改変であり、安全なタグである。

“entrypoint.sh” スクリプトに挿入された 204 行目は、正規の Trivy スキャン実行前に悪意の処理を実行するが、これも通常の動作に偽装されている。

情報窃取マルウェアの動作

Socket の分析によると、このマルウェアはデータ収集/暗号化/データ流出の 3 段階で動作する。

第 1 段階の収集フェーズでは、GitHub でホストされているランナーと、セルフホストされているランナーが対象となる。GitHub ホスト Linux 環境では、パスワード不要の sudo 権限を利用し、Runner.Worker プロセス・メモリをダンプしてヒープから機密情報を抽出する。

セルフホスト・ランナーでは、Python スクリプトがファイル・システム全体を走査し、複数のディレクトリから機密データを収集する。このスクリプトの対象は、SSH キー/データベース認証情報/CI/CD コンフィグ・ファイル・暗号資産ウォレット・データなどである。

第 2 段階では、収集データを圧縮して AES-256-CBC で暗号化し、さらに RSA-4096 公開鍵でのラップが行われる。

最終段階では、タイポスクワッティングされたドメイン “scan[.]aquasecurtiy[.]org” へ向けて、HTTPS POST によりデータが送信される。

このチャネルが失敗した場合には、被害者の GitHub Personal Access Token を用いて” tpcp-docs” という公開リポジトリを作成し、リリース・アセットとしてデータのアップロードが行われる。

このマルウェアは、TeamPCP Cloud stealer であると自己識別している。TeamPCP とは、ミスコンフィグ・インフラを悪用し、ランサムウェアやクリプトマイナーを実行する、クラウド・ネイティブな脅威アクターである。

Target CategorySpecific Files and Variables Hunted
SSH and Gitid_rsaauthorized_keys.git-credentials 
Cloud ProvidersAWS_*AZURE_*~/.config/gcloud/* 
CI/CD and Dockerterraform.tfstate.docker/config.json 
Environment Files.env.env.production.env.local 
Crypto Walletswallet.datvalidator-keypair.json 
対策

ユーザー組織にとって必要なことは、trivy-action のバージョン・タグ参照の速やかな停止である (例外:@0.35.0)。完全なセキュリティを確保するために、パイプラインのアクションを安全なコミット SHA (57a97c7e7821a5776cebc9bb87c984fa69cba8f1) に固定することである。

汚染されたタグを実行した環境は、完全に侵害されたと見なすべきである。セキュリティ・チームにとって必要なことは、クラウド認証情報および API トークンなどの、すべての機密情報を緊急でローテーションすることだ。さらに GitHub 内において、不正な tpcp-docs リポジトリの存在を監査する必要がある。