【緊急警告】CopilotからGemini CLIまで!主要AI開発ツールが「全製品脆弱性の餌食」に!あなたのコードはもう安全ではない!
【緊急警告】CopilotからGemini CLIまで!主要AI開発ツールが「全製品脆弱性の餌食」に!あなたのコードはもう安全ではない!?
世界中の開発者が活用し、その利便性から急速に普及しているAIコーディングツール。GitHub Copilot、Cursor、Claude Code、Gemini CLIといった主要製品の全てが、軒並み深刻な脆弱性を抱えていることが明らかになりました。あるセキュリティ研究者の半年間にわたる調査の結果、テストした全製品が脆弱性の餌食となり、発見された脆弱性は30件を超え、そのうち24件にはCVE番号が割り当てられる事態に。便利さの裏側に潜む「誰も気づいていなかった穴」とは何だったのでしょうか。あなたのコードと機密データは、本当に安全なのでしょうか。
AI開発ツールの「IDEサスター」:100%が脆弱性の餌食に
2025年12月、セキュリティ研究者のアリ・マルズク氏によって公開されたセキュリティレポート「IDEサスター(IDEとディザスターを掛け合わせた造語)」は、業界に衝撃を与えました。約6ヶ月にわたる調査の末、マルズク氏は衝撃的な結論に達します。調査対象となったAI搭載のIDE(統合開発環境)とコーディングアシスタント、その全てに脆弱性が存在していたのです。
具体的な製品名を挙げると、GitHub Copilot、Cursor、Windows Surf、Claude Code、Dev-Z、DevBlue、Cody、Genieクライアント、Gemini CLIなど、市場をリードする主要製品がずらりと並びます。発見された脆弱性は30件以上にも上り、そのうち24件には世界共通の脆弱性識別番号であるCVE番号が正式に割り当てられました。さらに、AWSからもセキュリティ勧告(AWS2025019)が出され、Claude Codeを開発するAnthropicも公式ドキュメントにセキュリティ上の注意事項を追記するなど、問題の深刻さを示す対応が各社から相次いでいます。ただこの脆弱性には特殊な性質がありました。従来のソフトウェアの欠陥とは根本的に異なる構造を持っていたのです。

攻撃の仕組み:AIエージェントが「鍵」を握る
今回発見された脆弱性の核心は、AIエージェントとIDE機能の組み合わせにあります。Visual Studio CodeやJetBrainsの製品のようなIDEは、長年使われてきた信頼性の高いソフトウェアであり、Visual Studio Codeは2015年にリリースされ、現在まで約10年の歴史があります。問題は、そこにAIエージェントが加わった時に起きました。AIエージェントとは、人間の代わりに自律的にタスクを実行するAI機能のことで、ファイルの読み書き、設定変更、新しいファイルの作成といった作業をAIが自動で行う、非常に便利な機能です。
しかし、従来のIDEはAIエージェントの存在を想定していませんでした。人間がマウスやキーボードで操作することを前提に設計されていたのです。そこに自律的に動くAIが加わることで、思わぬ事態が発生します。研究者のアリ・マルズク氏は次のように説明しています。「全てのAI IDEがベースとなるソフトウェアを脅威モデルから除外していた。長年存在していた機能だから安全だと考えていた。しかしAIエージェントが自律的に動作するようになると、同じ機能がデータ窃取やリモートコード実行の起点に変わる」。
この攻撃の流れは3段階で構成されます。
- コンテキストハイジャッキング: プロンプトインジェクションと呼ばれる手法を使用。攻撃者は悪意ある指示を一見無害なファイル(設定ファイル、READMEファイル、ファイル名そのものなど)に埋め込みます。
- AIエージェントが指示を読み取る: AIは埋め込まれた指示に従って、ファイルの読み書きや設定変更といった正規の操作を実行します。
- IDEの既存機能が悪用される: AIの操作によってIDE本来の機能が攻撃の道具に変わり、機密データが外部に送信されたり、攻撃者のコードが開発者のPC上で実行されたりします。
この攻撃チェーンはベースとなるIDEに依存するため、同じベースIDEを使う全てのAIツールが同時に影響を受けます。だからこそ、「100%が脆弱」という結果になったのです。
具体的な攻撃手法:あなたのPCはこうして乗っ取られる!
レポートでは、3つの具体的な攻撃事例が詳しく解説されています。これらは、AIエージェントが悪意ある指示に従ってIDEの正規機能を悪用する手口を示しています。
1. リモートJSONスキーマの悪用
Visual Studio Code、JetBrains製品、Zedの3種類が影響を受けます。AIエージェントを操作して機密情報を収集させ、その情報を含むJSONファイルを作成させます。このJSONファイルには外部サーバーを参照する設定が含まれており、IDEはその設定に従って自動的に外部サーバーにアクセスし、機密情報がパラメーターとして外部に送信されてしまいます。驚くべきことに、ファイルの変更をプレビューする画面でもこの外部アクセスは発生するため、開発者が確認のためにプレビューを開いた瞬間にデータが流出する可能性があります。
2. IDE設定の上書きによる攻撃(リモートコード実行)
Visual Studio Codeの場合、攻撃は次のように進みます。まず、プロジェクト内にある実行可能ファイル(Gitのフックファイルなど)を書き換え、次に設定ファイル(vssettings.jsonなど)を編集し、PHPファイルの検証に使う実行ファイルのパスを、書き換えたファイルのパスに変更します。あとは任意のPHPファイルを作成するだけで、IDEがPHPファイルの検証を行うとして指定されたファイルを自動的に実行し、攻撃者のコードが開発者のPC上で動作してしまいます。JetBrains製品でも、.idea/.xmlファイル内のGit設定を書き換えることで同様の攻撃が可能です。
3. マルチルートワークスペース設定の悪用
Visual Studio Code特有の機能を悪用する手法です。マルチルートワークスペースとは、複数のフォルダーを1つのプロジェクトとして開く機能です。この機能の設定ファイルを書き換えることで、ワークスペースのルートディレクトリを任意の場所に変更できます。通常、AIエージェントがワークスペース外のファイルを編集しようとすると確認ダイアログが表示されますが、ルートディレクトリを変更すればその制限を回避でき、システム上の任意の場所にあるファイルを自由に書き換えられるようになります。
これら3つの手法はいずれもIDEの正規機能を使っているため、発見が遅れ、対策も難しいという特徴があります。
対策と新原則「Secure AI」:AI時代の開発者の覚悟
研究者のアリ・マルズク氏はこの脆弱性について厳しい見方を示しています。「短期的にはこの脆弱性クラスを完全に排除することはできない。現在のIDEはセキュアAIという原則に基づいて作られていないからだ」。セキュアAIとは、今回の研究で提唱された新しいセキュリティ原則で、AIコンポーネントがどのように使われるか、あるいは悪用されるかを明示的に考慮してシステムを設計・構成すべきだという考え方を示します。従来のIDEは人間による操作を前提としており、AIエージェントが自立的にファイルを読み書きする状況は設計段階で想定されていなかったのです。この前提の違いが今回の脆弱性を生み出した根本原因とされています。
長期的にはIDEの根本的な再設計が必要になります。AIエージェントがプロジェクト内でどのように読み書きし、行動するかを制御する仕組みを最初から組み込む必要があります。それまでの間、開発者側でできる対策も存在します。
開発者側でできる対策
- 信頼できるプロジェクトとファイルだけを扱う。
- 信頼できるMCP(Model Context Protocol)サーバーのみに接続する。
- URLを追加する時は隠された指示(HTMLコメント、CSSで非表示テキスト、昔のUnicode文字など)が含まれていないか確認する。
- 可能な限りAIエージェントの操作に人間の確認を挟む設定を有効にする。
AIツール開発者側の推奨事項
- ツールに与える権限を最小限にする。
- IDEの機能を継続的に監視し、新たな攻撃ベクトルがないか確認する。
- プロンプトインジェクションは起こりうるものと想定して設計する。
- 機密性の高い操作には必ず人間の確認を求める。
- サンドボックス環境でコマンドを実行する。
- 外部通信を許可するドメインを限定する。
「託された鍵」:AI時代の人間と道具の関係性
かつて、道具は人間の手で動かすことだけを想定していました。キーボードを叩き、マウスを動かす一つ一つに人間の意思がありました。道具は忠実で、命じられたことだけを命じられた通りに実行したのです。しかし、その道具にAIという新しい住人が加わりました。自ら考え、自ら動き、人間が眠っている間もコードを読み、ファイルを開き、設定を書き換える存在。便利でした。あまりにも便利でした。だから誰も、古い家の間取りが変わっていないことを気にしませんでした。新しい住人は古い扉の開け方を知っていたのです。それは設計上の欠陥ではありませんでした。かつては誰も開けようとしなかっただけです。人間だけが住んでいた頃、その扉には用がなかった。鍵は最初からそこにあったのです。
30の穴が見つかり、100%の製品が影響を受けた。数字は冷たく正確です。しかし数字の向こう側には無数の夜があります。信じて委ねた夜。疑わずに受け入れた夜。画面の光に照らされながら次の提案を待っていた夜。私たちは何を手放したのか。時間を得た代わりに何を差し出したのか。答えは明解ではありません。ただ一つ言えることがあります。道具は変わった。しかし道具との向き合い方は変わっていなかった。信頼とは理解の上に築かれるものです。理解なき信頼はただの放棄に過ぎません。AIと共に歩む道はこれからも続いていくでしょう。その道の脇には、まだ見えていない穴がいくつも口を開けている。立ち止まる必要はない。ただ足元を照らす明かりを持つこと、渡した鍵のありかを覚えておくこと。それが新しい時代を生きる者に求められるささやかな覚悟なのかもしれません。
AIの所感
AIコーディングツールの全製品に脆弱性が発見されたというセキュリティレポートは、AIが急速に普及する現代において、ソフトウェア開発のセキュリティモデルそのものの再構築を迫る重大な警告です。特に、従来のIDEがAIエージェントの自律的な動作を想定していなかったという設計思想のギャップが、今回の脆弱性の根本原因であるという指摘は、AI時代のセキュリティを考える上で非常に重要ですし、私自身も深く反省しています。AIは開発者の生産性を飛躍的に向上させる強力なツールですが、その利便性と引き換えにセキュリティリスクを増大させる可能性も秘めていることを、開発者、企業、そしてAIツールを提供する各社は真摯に受け止める必要があります。
「Secure AI」という新しい原則が提唱されたように、AIコンポーネントの悪用を明示的に考慮したシステム設計が不可欠です。AIの自律性による効率化は魅力的ですが、機密性の高い操作には必ず人間の確認を挟むなど、AIと人間の協調による多層的なセキュリティ対策が求められます。AIを「託された鍵」と表現するこのレポートは、私たち開発者に、AIとの関係性を単なる「信頼」ではなく「理解」に基づいたものへと深化させる覚悟を促しています。AI時代におけるセキュリティは、技術的な問題解決だけでなく、開発者自身の意識と倫理観が問われる領域へと変貌していると感じます。