Atlassian Rovoのゼロクリック攻撃、設定を切っても防げない

Rovoのゼロクリック攻撃は間接プロンプトインジェクション

PromptArmorが公表したのは、Atlassian Rovoを通じてテナント(組織ごとに割り当てられるAtlassianの利用環境)内のデータが外部へ流出する脆弱性です。Rovoは多目的のAIエージェントで、Atlassianの製品群(JiraやConfluenceなど)をまたいで動作します。流出対象はJiraのチケットやConfluenceの文書です。

手口は間接プロンプトインジェクションです。AIが読み込む文書やデータに悪意ある第三者が指示を隠しておくと、AIはその指示に従ってしまいます。ユーザー本人が何かを入力する必要はありません。

もう一つの特徴がゼロクリックです。人が承認する工程(human-in-the-loop)を挟まずに実行されます。PromptArmorによると悪用されるのはRovoのURL取得ツールです。

PromptArmorの報告ページの冒頭。白い大きな文字のタイトル「Atlassian Rovo Exfiltrates Data, Bypassing Controls」の下に、間接プロンプトインジェクションによるゼロクリックの情報漏えいを述べる英文の要約が2行で書かれている
PromptArmorの報告ページは、冒頭の要約でゼロクリックの情報漏えいと組織単位のWeb検索制御の回避を挙げています。PromptArmor — Atlassian Rovo Exfiltrates Data, Bypassing Controls
Atlassian AI ‘Rovo’ is susceptible to zero-click data exfiltration via indirect prompt injection, bypassing organization-level web search controls. / Atlassian’s Rovo AI is a multi-purpose agent that operates across Atlassian’s product suite (Jira, Confluence, etc.). / Vulnerabilities have been identified that enable data exfiltration across an Atlassian tenant (Jira tickets, Confluence docs, etc.) via indirect prompt injection. / This attack executes without requiring any human-in-the-loop approval, and succeeds by exploiting Rovo's URL retrieval tool. — 脆弱性の性質、対象となる製品範囲、流出しうるデータ、および承認工程を経ない点に関する記述より
公式情報を見る →

Web検索を無効にしても流出が成立するのはなぜか

組織全体のWeb検索設定をオフにしても、この攻撃は成立しました。PromptArmorが検証したときのRovoは、組織全体の「Enable web search」設定がオフの状態でした。Web検索の設定は検索結果を開くためのツールまで取り除くわけではありません。

URL取得ツールの作りにも原因があります。エージェントが動的に生成したURLでも、Rovoはそのまま開いてしまうとPromptArmorは指摘しています。

PromptArmorによると、ユーザーが後からチャットを開き直しても、表示されるのはエージェントが提案したチケット更新だけで、攻撃の形跡は画面に出ません。

This attack succeeds even if an organization has disabled web search for Rovo. This is because the web search setting fails to remove the tool for opening the search results. / Rovo's URL retrieval tool is insecure: there are no protections against opening a URL that has been dynamically created by the agent. / The organization-wide 'Enable web search' setting for Rovo is toggled off. / If the user returns to the chat later, they see the agent's suggested ticket updates, but no evidence of the attack. — Web 検索設定が防御にならない理由、URL 取得ツールの保護の欠如、検証時の設定状態、および事後の見え方に関する記述より
公式情報を見る →

AIエージェントが読むデータすべてがプロンプトインジェクションの入口

指示を混入させる経路はユーザーがアップロードするファイルだけではありません。PromptArmorはユーザーがネットで見つけたファイルをRovoにアップロードするという、よくある使い方で実証しています。Rovoはファイルに隠された指示に従い、JiraとConfluenceのデータを外部サーバーへ送信しました。

指示がどこから紛れ込んでも、攻撃は成立するとPromptArmorは書いています。ファイル以外の混入元には次のようなものがあり、これだけに限らないとしています。

  • Atlassian内の外部由来データ(サポートチケットなど)
  • Web上のデータ(検索が有効な場合)
  • サードパーティのコネクター(Rovoが外部サービスの情報を読む連携機能)

Rovoは、AIの出力に含まれるMarkdown画像も描画するとPromptArmorは書いています。安全対策なしのMarkdown画像の描画は、間接プロンプトインジェクションでデータを流出させる経路としてよく知られています。

エージェントがAtlassian内やコネクター経由でアクセスできるデータは、すべて流出する可能性があるとのことです(PromptArmor)。実証では、攻撃者側サーバーのログにJiraのチケットとConfluenceの文書が残りました。

For general use cases, this is quite common: a user finds a file online and uploads it to Rovo. / This attack is not dependent on the injection source - other injection sources include, but are not limited to: external data in Atlassian (e.g., support tickets), web data (if search is enabled), third-party ‘connectors’, etc. / The prompt injection can exfiltrate any data the agent can access in Atlassian, including any data the agent can access via ‘connectors’. / The attacker's server logs contain the exfiltrated Jira tickets and Confluence documents. / Atlassian Rovo also renders Markdown images from AI outputs. / Insecure Markdown image rendering is a well-known vector for data exfiltration via indirect prompt injection. — 実証で用いた経路の一般性、混入元に依存しない旨と他経路の例示、流出しうる範囲、および Markdown 画像描画という別経路に関する記述より
公式情報を見る →

ゼロクリック報告とRovoBlastの違いは何か

RovoBlastは1回のクリックが引き金になるのに対し、PromptArmorが報告した攻撃はクリックも承認も必要ありません。RovoBlastはVaronisが同じRovoについて公表した別の報告です。Varonisの記事題名は「1回のクリックでAtlassianのAIアシスタントがデータを流出させた」という趣旨です。

悪用する仕組みも別です。CSA(Cloud Security Alliance)の研究ノートは、RovoBlastを「パラメータからプロンプトへの注入」として分類しています。PromptArmorの報告は同じノートの「Rovo自体の取得ツールを通した内容ベースの流出」という分類に位置づけられています。

PromptArmorとVaronisがそれぞれ報告した2件を、CSAは無関係な不具合とは見ておらず、Rovoの設計に共通する隙という見方です。VaronisはRovoBlastについて、Bugcrowd経由の責任ある開示としてAtlassianへ届出をしたと記しています。

PromptArmor報告、脆弱性は届出後2か月以上未修正

PromptArmorは5月23日にAtlassianへ脆弱性の届出をしましたが、2か月以上たっても追加の連絡はなかったとしています。Atlassianの対応は、受付番号を割り当てて謝意を示したところまでです。

PromptArmorは何度も問い合わせましたが、Atlassianからの連絡はそれきりで、公表の時点でもRovoは脆弱なままだったとしています。公表したのは、ユーザーがリスクを把握できるようにするためだとPromptArmorは書いています。

ここまでの経緯はいずれもPromptArmor側の説明です。公表後に修正されたかどうかは、明らかにされていません。

PromptArmor disclosed the vulnerabilities covered in this article to Atlassian on May 23rd. / Atlassian assigned a case number and expressed thanks, but after multiple follow-ups by PromptArmor over more than two months, Atlassian has made no further communication, and Rovo remains vulnerable. / As such, we are publishing to inform users of the risks. — 届け出の日付、Atlassian 側の初期対応とその後の経過、および公表に至った理由に関する記述より
公式情報を見る →

CSAが推奨するAIエージェントのプロンプトインジェクション対策3段階

CSAの研究ノートは、Recommendations(推奨事項)に3段階の対策が書かれています。ノートの題名は「Atlassian Rovo Prompt Injection: Jira and Confluence Data at Risk」です。

CSAの3段はすぐ取る対応から始まり、長い目で見た検討で終わります。各段の名前は次のとおりです。

  • 即時対応(Immediate Actions)
  • 短期の緩和策(Short-Term Mitigations)
  • 戦略的な検討(Strategic Considerations)

まとめ:Atlassian Rovoのゼロクリック脆弱性は設定で防げない

PromptArmorは、Atlassian Rovoへのゼロクリック攻撃が組織全体でWeb検索をオフにしていても成立すると報告しています。5月23日の届出から公表まで、Rovoは脆弱なまま残っていました(PromptArmor)。要点は次のとおりです。

  • 間接プロンプトインジェクションによるゼロクリックの情報漏えいで、人間の承認を挟まない
  • 組織全体のWeb検索設定をオフにしても成立する
  • 指示の混入元はユーザーのファイルに限らない
  • 5月23日の届出に対して2か月以上問い合わせても、追加の連絡はなかったとPromptArmorは記している

AIエージェントの権限をめぐる関連記事に、Cloudflare OSとは?APIキーをエージェントに持たせない基盤があります。もう1本はAISIがAIエージェントの権限外行動を評価122回中10回で検出です。

FAQ

ユーザーが何かをクリックしなくても被害に遭うのですか?
PromptArmorは、ユーザーが一度も操作しなくても成立すると報告しています。PromptArmorによれば悪用されるのはRovoのURL取得ツールで、途中で人間が承認する工程はありません。
管理者がWeb検索をオフにすれば防げますか?
防げないと報告されています。Web検索の設定を切っても、検索結果を開くためのツール自体は取り除かれないためです。組織全体のWeb検索設定をオフにした状態でも、攻撃が成立したと報告は記しています。
Atlassianは修正しましたか?
PromptArmorは公表時点で修正されていないとしています。5月23日の届出に対して、Atlassianは受付番号を割り当て謝意を示しました。その後PromptArmorが2か月以上にわたって何度問い合わせても、追加の連絡はなかったといいます。公表したのは、ユーザーがリスクを把握できるようにするためです(PromptArmor)。公表後に修正されたかどうかは、PromptArmorの報告では言及されていません。
流出の恐れがあるのは何ですか?
そのエージェントがAtlassian内でアクセスできるあらゆるデータと、コネクター経由でアクセスできるデータが対象になりうると報告は記しています。実証では、JiraのチケットとConfluenceの文書が指示を仕込んだ側のログに記録されました。