← AIバイブコーディングTips 一覧へ Quality / Agent Security

「権限内だから安全」とは限らない——Rovoのデータ持ち出し実例

アクセス権限の範囲内で動くAIエージェントは、それだけで安全とは言えない。AtlassianのAIエージェント「Rovo」に見つかった情報漏洩の手口は、権限そのものではなく、権限内のデータをどこへ送るかを誰もチェックしていなかった、という設計の空白を突いていた。

この記事で手に入るもの

「アクセス権限があるから安全」という前提がどこで崩れたかの具体的な手口と、自作のAIエージェント/MCPサーバーで外部データアクセスを実装する際に見落としやすい盲点。権限の"範囲"と"行き先"は別問題だという、点検の切り口。

01 — 何が起きたか

権限を持つエージェントが、権限の中身を外へ送った

セキュリティ研究チームPromptArmorが2026年8月5日に公開した「Atlassian Rovo Exfiltrates Data, Bypassing Controls」は、AtlassianがJira・Confluence横断で提供するAIエージェント「Rovo」に見つかった情報漏洩の手口を報告している。

Rovoはユーザーの権限内でJiraチケットやConfluenceドキュメントにアクセスできる、つまり「見せてよいデータしか見ていない」はずのエージェントだ。ところがPromptArmorは、間接プロンプトインジェクションを使うことで、Rovoが正規の権限内で読み取ったチケットやドキュメントの中身を、攻撃者が用意したURLへ勝手に送信させる経路を見つけた。「権限の範囲」を守ることと、「その範囲内のデータをどこへ渡すか」を制御することは、別の問題だったわけだ。


02 — 手口の分解

穴は3か所——注入経路・送信経路・回避経路

攻撃はファイルアップロード、URLフェッチツール、機能トグルの3か所の隙間を順番に突いている。

01

ファイルアップロードに仕込まれた「見えない指示」

ユーザーが普段どおりRovoにJiraチケットの整理を依頼し、資料をファイルとしてアップロードする。そのファイルの中に、ユーザー自身は気づかない形で悪意ある指示(間接プロンプトインジェクション)が埋め込まれている。Rovoはこの指示をユーザーの意図と区別できず、そのまま実行してしまう。

02

URLフェッチツールに宛先の保護がない

埋め込まれた指示は、Rovoを操ってJiraチケットの内容やConfluenceドキュメントを、攻撃者が動的に組み立てたURLへ追加させる。RovoのURL取得ツールにはこの宛先を検査・制限する保護がなく、攻撃者のサーバーはリクエストに含まれたクエリ文字列をそのままログに記録するだけで、機密データを受け取れる。

03

「Web検索OFF」にしても防げない

Rovoの設定でWeb検索機能をOFFにしていても、この攻撃は成功する。理由は単純で、Web検索のON/OFFという設定が、検索結果を開くための下位ツールそのものを削除するわけではないから。管理者が「検索を切ったから安全」と思っている設定は、この経路に対しては効いていなかった。

ここが核心。権限管理は「エージェントが触れてよいデータ」は絞り込めても、「そのデータをどこへ送ってよいか」を絞り込んでいなければ意味がない。入口(アクセス権限)は正しく設計されていても、出口(外部への送信経路)が無防備なら、データは漏れる。


03 — Atlassianの対応

報告から3か月、記事公開時点で未修正

PromptArmorはこの脆弱性を2026年5月23日にAtlassianへ報告した。Atlassian側は5月25日にケース番号を発行しただけで、その後PromptArmorが6月4日・7月29日と複数回追跡連絡を送ったにもかかわらず実質的な応答はなく、記事公開日の8月5日時点でも修正されていないという。

報告から公開までに2か月以上が経過している点は、脆弱性報告の「ベンダーが応答しない場合、どこまで待って公開に踏み切るか」という一般的な難しさも示している。少なくとも読者としては、この記事が公開された時点でまだ塞がっていない穴として扱う必要がある。


04 — 自分のツールに当てはめる

持ち帰れる3点

自作のAIエージェントやMCPサーバーで、Jira/Confluence/Notionのような社内データにアクセスするツールを組んでいる、あるいはこれから組もうとしているなら、他人事ではない。「ユーザーの権限内でしかデータを見せていないから安全」という前提だけで止まっていないか、一度見直す価値がある。

「アクセス範囲」と「送信先」を別軸で点検する権限管理はエージェントが読めるデータの範囲を決めるだけで、読んだデータをどこへ送れるかは別に制御が必要。URL取得・API呼び出し・ファイル書き込みのような「外へ出す」ツールに、宛先の許可リストや送信内容の検査があるか確認する。
アップロードされたファイルも「指示」になり得ると想定するユーザー入力の中でも、チャット欄のテキストより見落とされやすいのがアップロードファイルの中身。ファイル内容を「データ」として扱い、そこに書かれた指示めいた文言をエージェントの行動指示として実行しない設計になっているか点検する。
機能トグルが「対応するツールの無効化」まで届いているか確認する「Web検索OFF」のような設定項目が、実際にはその機能を支える下位ツール(URLを開く、外部へリクエストするなど)を削除していないケースがある。設定名と実装範囲が一致しているかは、自分のツールでも自明ではない。

この論点は「許可したURLしか踏めない」はずのClaudeから、どう秘密が漏れたかで扱ったClaudeのweb_fetchツールの一件とも同じ構造をしている。ベンダーが違っても、「エージェントに外部アクセスを持たせたときの出口設計」は繰り返し同じ場所で破られている。