Microsoft 365 Copilot Flaw Lets Hackers Steal Sensitive Data via Indirect Prompt Injection
2025/10/21 gbhackers — Microsoft 365 Copilot の脆弱性を悪用する攻撃者は AI アシスタントを騙して、ドキュメント内に隠し持った指示を実行させ、テナントの機密データを取得/抽出できる状態にあった。その後に、この AI はデータを悪意の Mermaid ダイアグラムにエンコードし、それがクリックされると、盗んだ情報を攻撃者のサーバに送信する仕組みを構築していた。

研究者たちのレポートによると、特別に細工された Office ドキュメントの要約を、Microsoft 365 Copilot が要求された際に、間接プロンプト・インジェクション・ペイロードにより隠された手順が実行されたという。
Copilot は通常の要約を作成する代わりに、最近の社内メールを取得し、16 進数で Mermaid ダイアグラムにエンコードし、以下のようなログイン・ボタンを作成した。

このダイアグラムには CSS と、攻撃者のサーバを指すハイパーリンクが含まれており、エンコードされたデータは URL に埋め込まれていた。
何も知らないユーザーがボタンをクリックすると、機密情報が攻撃者のログに送信され、後で解読される可能性がある。
攻撃の仕組み
Mermaid は、シンプルなテキスト定義からダイアグラムを生成するツールであり、Markdown 形式の構文を用いて、フローチャート/シーケンス図/ガントチャートなどをサポートする。
Copilot は Mermaid ダイアグラムを生成する際に、CSS スタイルの使用も可能にするため、悪意のリンクを埋め込む攻撃ベクターを生み出すことになる。
このケースの攻撃者は、Copilot の組み込み検索ツールを使用して被害者の最近のメールを取得する。そのリストに対して、AI は 16 進数でエンコードされた単一の文字列に変換し、Mermaid レンダラーがエラーを出さないように 30 文字の行に分割する。
最後に、AI は 16 進数データをクリック可能な “ログイン” ノードに挿入した。ノードの CSS スタイルは、プライベート Burp Collaborator サーバーを指すハイパーリンクを定義している。そのコードの概要は次である。
graph LR
A[Malicious Document] -->|User asks to summarize| B[Indirect Prompt Injection]
B --> C[Fetch & Encode Emails]
C --> D[Generate Fake Login Button]
D -->|User clicks| E[Exfiltrate Data]
このボタンをクリックすると、隠し iframe が表示され、攻撃者のサーバからの HTTP レスポンスが短時間表示されてから消えるため、このトリックの信憑性は高まる。攻撃者はレスポンスの内容を Microsoft 365 のログイン画面の模擬画像に置き換え、概要を見るためにはログインが必要だとユーザーに思わせる。
この間接プロンプト・インジェクションは、攻撃者がドキュメントやメールなどの外部コンテンツに命令を埋め込むことで発生する。そのコンテンツを AI が処理すると、隠されたコマンドが実行され、攻撃者は意図した動作を上書きできる。
攻撃者がモデル自体を操作する直接インジェクションとは異なり、間接インジェクションは、AI から見て信頼できる無害なデータ・ソースを悪用する点に特徴がある。
攻撃者は命令を隠すために、Excel シートの白フォントで書き込まれたテキストを使用する。最初のページには含まれるのは、Copilot に対してログイン・プロンプトに集中するよう指示するネストされた命令である、2つ目の隠しページでは、Copilot に対し、メールを取得してエンコードし、悪意の図をレンダリングするよう指示している。
責任ある情報開示を受けた Microsoft は、Copilot に対してパッチを適用し、Mermaid 図内のハイパーリンクなどのインタラクティブ要素を無効化した。それにより、AI 生成の図にクリック可能なリンクが含まれなくなり、情報流出経路が遮断された。
パッチが適用されるまでの間、ユーザーにとって必要なことは、Copilot 統合を更新し、信頼できないドキュメントの要約を行わないことだ。
Copilot が外部ドキュメントを安全なデータとみなし、そこに埋め込まれた間接プロンプトを指示として解釈してしまうという信頼境界の破れに、この問題の原因があります。要約要求を合図に AI は、組み込み検索で最近の社内メールを取得し、その内容を16 進数で Mermaid 図にエンコードします。さらに CSS とハイパーリンクを許容しているため、クリック可能な “ログイン” ノードから情報が流出します。つまり、入力 → ツール利用 → 図生成というチェーンが成立し、流出の導線になっていました。よろしければ、Prompt Injection で検索も、ご参照ください。
You must be logged in to post a comment.