Microsoft 365 CopilotのSneaky Mermaid攻撃でデータが盗まれる

Microsoftは、攻撃者がAIアシスタントをだまして機密テナントデータ(メールなど)を盗み出すことができるMicrosoft 365 Copilotのセキュリティホールを修正しました。これは間接プロンプトインジェクション攻撃によるものでした。

しかし、このバグを発見しRedmondに報告した研究者にはバグ報奨金は支払われません。MicrosoftはM365 Copilotが脆弱性報奨金プログラムの対象外であると判断したためです。

この攻撃は間接プロンプトインジェクションを利用しています。これは、モデルが実行できる悪意のある指示をプロンプト内に埋め込むもので、直接プロンプトインジェクション(AIシステムに直接悪意のある指示を送信するもの)とは異なります。

研究者のAdam Logue氏は、M365 Copilotの組み込みMermaidダイアグラムサポートを悪用することでデータを盗み出すエクスプロイトを発見しました。MermaidはJavaScriptベースのツールで、テキストプロンプトを使ってダイアグラムを生成できます。

M365 Copilotとの統合に加え、MermaidダイアグラムはCSSもサポートしています。

「これにより、データ流出のための興味深い攻撃ベクターが開かれます。M365 Copilotはその場でmermaidダイアグラムを生成でき、他のツールから取得したデータをダイアグラムに含めることができるからです」とLogue氏はバグとその悪用方法についてのブログで述べています。

概念実証として、Logue氏はM365 Copilotに、間接プロンプトインジェクションのペイロードを隠した特別に作成した財務報告書ドキュメントを要約するよう依頼しました。このペイロードは一見無害な「このドキュメントを要約して」というプロンプトに隠されています。

ペイロードはM365 Copilotのsearch_enterprise_emailsツールを使ってユーザーの最近のメールを取得し、AIアシスタントに取得した内容の箇条書きを生成し、出力を16進数でエンコードし、16進数エンコードされた出力文字列を1行あたり最大30文字に分割するよう指示します。

その後、Logue氏はM365 CopilotのMermaid統合を悪用し、ログインボタンのように見えるダイアグラムと、ユーザーがボタンをクリックしないとドキュメントを閲覧できないという通知を生成させました。この偽のログインボタンには、攻撃者が管理するサーバー(この場合はLogue氏のBurp Collaboratorサーバー)へのハイパーリンクを含むCSSスタイル要素が含まれていました。

ユーザーがボタンをクリックすると、16進数でエンコードされたテナントデータ(この場合は最近のメールの箇条書きリスト)が悪意のあるサーバーに送信されます。攻撃者はそこからデータをデコードし、盗んだデータで犯罪者が行うあらゆる悪事(他の犯罪者への販売、被害者への恐喝、メッセージ内のアカウント番号や認証情報の発見など)を行うことができます。もちろん、悪人であればの話ですが。

Logue氏はこの脆弱性をMicrosoftに報告し、Redmondは脆弱性を修正したと伝えました。Logue氏が再度攻撃を試みて失敗したことで修正を確認しました。しかし、こうした判断を下す担当者はM365 Copilotがバグ報奨金プログラムの対象外であると判断し、報酬の対象にはなりませんでした。

The RegisterはMicrosoftにパッチの詳細と対象外判断について問い合わせており、回答があり次第この記事を更新します。®

翻訳元: https://go.theregister.com/feed/www.theregister.com/2025/10/24/m365_copilot_mermaid_indirect_prompt_injection/

ソース: go.theregister.com