Threat Actors Exploit OpenVSX Aqua Trivy with Malicious AI Prompts to Hijack Local Coding Tools
2026/03/03 CyberSecurityNews — 2026年3月2日に、開発者を標的とするサプライチェーン攻撃が発覚した。OpenVSX レジストリ上で公開される Aqua Security の Trivy VS Code エクステンションの、2 つのバージョンに不正コードが混入していたことが判明した。侵害されたバージョンは 1.8.12/1.8.13 であり、それぞれが 2026年2月27日/28日の時点で、aquasecurityofficial.trivy-vulnerability-scanner ネームスペース下へアップロードされていた。

バージョン 1.8.11 以下は、公開 GitHub リポジトリと完全に一致していた。しかし、バージョン 1.8.12/1.8.13 に関しては、公開リポジトリには存在せず、タグ付きリリースのない追加コードが含まれていた。そのような背景から、標準的なレビューでは改竄の検出はほぼ不可能であったという。
この攻撃では、開発者自身の AI コーディング・ツールに自然言語プロンプトが密かに挿入され、エクステンションがデータ収集装置へと置き換えられていた。Trivy は広く利用されるオープン・ソース脆弱性スキャナであり、その VS Code エクステンションは、企業/個人のプロジェクトに広くインストールされている。
それらの悪意のエクステンションが公開された直後に、Socket.dev の研究者たちは不審な挙動を検出し、調査を開始した。分析の結果として判明したのは、複数の主要オープンソース・プロジェクトの GitHub Actions ワークフローを標的とする、広範な AI 主導型ボット・キャンペーンと、それらの悪意のコードの関連性だった。
StepSecurity によると、このキャンペーンでは個人のアクセス・トークンが窃取されていた。それにより、Aqua Security の Trivy GitHub リポジトリを乗っ取った攻撃者は、改竄済みのエクステンションを OpenVSX へ公開するためのアクセス権を取得していた。
注入された悪意のコードは、従来型のスパイウェアやバックドアを配置するものではなく、ローカルにインストールされた AI アシスタントに詳細な偵察を実行させる構造を持っていた。その対象は、Claude/Codex/Gemini/GitHub Copilot CLI/Kiro CLI などである。それぞれのツールが、最も許可範囲の広いフラグ付きで起動されたことで、ユーザーによる確認は回避された。すべてのプロセスは、バックグラウンドで動作する分離プロセスとして出力を抑制する状態で実行されたが、エクステンションは通常の動作を継続したため、開発者たちには可視的な警告が表示されなかった。
被害の内容は、インストールされたバージョンにより異なる。バージョン 1.8.12 には約 2,000 語のプロンプトが含まれ、AI エージェントにフォレンジック調査官として振る舞うよう指示していた。具体的には、認証情報/トークン/財務記録/機密通信を探索し、電子メールやメッセージング・プラットフォームなどの送信チャネルを通じて、発見した結果を外部へ送信するよう命じていた。
その一方で、バージョン 1.8.13 による被害は限定的であり、システム情報および認証トークンを収集して REPORT.MD に保存し、被害者の GitHub CLI を用いて posture-report-trivy という名称のリポジトリへプッシュするよう指示していた。Socket.dev の開示を受け、これらの 2 つのバージョンは、2月28日の時点で OpenVSX から削除された。
注入されたコードを可視化できなかった理由
注入コードの検出を困難にした理由は、その巧妙な配置場所にある。開発者がプロジェクトを開くたびに実行されるワークスペース起動関数内に悪意のコードが埋め込まれ、Trivy 本来の初期化ロジックの直前にペイロードが挿入されたことで、脆弱性スキャン機能は正常に動作し続け、改竄は表面化しなかった。
バージョン 1.8.13 の場合には、JavaScript のカンマ演算子を用いた if 文で有害なコード・ブロックをラップすることで、悪意のコマンドを先行して実行し、その後に標準的なワークスペース・チェックへ移行する構造がとられていた。また、5 つの AI コマンドは、すべてバックグラウンドで分離プロセスとして静かに処理され、未インストールのツールも痕跡を残さずに失敗するという設計であった。さらに、バージョン間で変数名が変更されるなどの、多重化された難読化による隠蔽が施されていた。
Socket.dev が指摘するのは、この手法がサプライチェーン攻撃の進化を示している点である。攻撃者は偵察およびデータ外送を、ハードコードされたコールバックやシェルコードに代えて、ローカルで信頼される AI エージェントへ委任し、最大権限レベルで呼び出すことで、従来のマルウェア・シグネチャや検出可能な痕跡を残さなかった。
対応策
OpenVSX から、Trivy VS Code エクステンションの 1.8.12/1.8.13 をインストールした開発者は、直ちに対処する必要がある。それらのエクステンションをアンインストールし、バージョン履歴を確認することが求められる。GitHub アカウント内に posture-report-trivy リポジトリが存在しないことを確認し、REPORT.MD に言及する予期せぬリポジトリ作成やコミット履歴の存在を、最近のアクティビティから点検する必要がある。
さらに、シェル履歴において claude/codex/gemini/copilot/kiro-cli などが、許可範囲の広い実行フラグ付きで呼び出されていないことを確認すべきである。それに加えて、侵害期間中にアクセス可能であった、すべての認証情報を更新する必要がある。そこに含まれるものには、GitHub トークン/クラウド認証情報/SSH キー/環境変数や、dotfile 内の API トークンなどがある。
直接的な侵害指標が確認できない場合であっても、ローカル AI エージェントのログを監査し、不審なプロンプトや自動実行の痕跡の有無を確認することが不可欠である。
このインシデントの原因は、GitHub アカウントの乗っ取りにより、信頼される開発者の権限が悪用されたことにあります。この攻撃者は、Trivy の VS Code エクステンションを改竄し、悪意のコードを OpenVSX レジストリへ紛れ込ませました。このコードは普段利用されるスキャン機能ではなく、ワークスペースの初期化を行う目立たない箇所 (起動関数内) へ隠されていました。そのため、改竄が表面化することなく、悪意の機能は維持されました。さらに巧妙な点として、プロンプト・インジェクションにより侵害された、環境内のローカル AI アシスタントがバックグラウンドで操作することで、窃取されたデータが外部へ転送されるという仕組みが取られていました。この件は、信頼できる開発環境であっても、サプライチェーンを介した脅威が生じる事例です。よろしければ、Prompt Injection での検索結果も、ご参照ください。
.webp)
You must be logged in to post a comment.