深いネイビーブラックの背景に浮かぶ抽象的なイラスト:最左端の小さなマットブラックの六角形モジュールから、髪の毛のように細いシアンの発光フィラメントが五本、右方向へ扇状に伸び、それぞれがブラッシュドスチールの床に立つ別々の背の高い多面ガラスプリズムに当たっている。各プリズムは内部から淡いブルーに照らされた円筒形の内部チャンバーを備え、五本のうち三本はブルーのコアのそばに温かなアンバー色の輝きも帯び、二本はブルーのみである。ボリューメトリックなヘイズ、リムライティング、浅い被写界深度。テキスト、数字、人物、組織のロゴは一切現れない。OrcaRouterのロゴが右下隅に合成されている。
AI Safety Incidents

BragJack: 1つのブラウザ拡張機能が5つの主要ブラウザのAIエージェントを乗っ取る

著者

Gideon Frost

公開日

最新モデル · 20すべてのモデルを見る →
ベンチマーク:Artificial Analysis · 毎日更新
すべての記事に戻る

2026年9月16日、Forever Securityのセキュリティ研究者であるGal WeizmanはBragJackを公開した。これは、1つの普通のブラウザ拡張機能——ゼロデイも、ジェイルブレイクされたモデルも、侵害されたベンダーサーバーも使わずに——5つのChromiumベース製品に組み込まれたAIエージェントを制御下に置いた概念実証(proof of concept)である。対象はGoogle ChromeのGemini Live、Microsoft EdgeのCopilot、Opera Neon、Perplexity Comet、Claude in Chromeだ。この拡張機能は特別なものは何も要求しなかった。コンテンツスクリプトとChromiumのdeclarativeNetRequest APIという、ほとんどの広告ブロッカーに含まれる同じ2つの権限を使い、各ベンダー自身のウェブサイトがエージェントに指示を送る際に用いるプライベートチャネルに到達した。Weizmanは、Cometが最も広範な侵害であったこと、GoogleとMicrosoftが修正版を出荷しCVE-2026-0628とCVE-2026-55945を割り当てたこと、そして実環境での攻撃は観測されていないことを報告している。これは、深刻度「高」の脆弱性として登録されており、AIインシデントアーカイブでは、各記録に情報源、信頼度評価、異議ありフラグが付されています。

拡張機能はモデルを壊したのではなく、チャネルを壊したのです。

Forever Security が同日に公開した技術解説によると、5つの製品はいずれも同じ方法で構築されている。それぞれには、ブラウザ内でタブを開き、ローカルファイルを読み取り、スクリーンショットを撮り、ページ上をクリックできる「ボディ」と、ブラウザの外でボディの動作を決定する「ブレイン」がある——Chrome 向けは Google の Gemini サーバー、Comet 向けは perplexity.ai の Web アプリ、Edge 向けは copilot.microsoft.com、Chrome 版 Claude 向けは Anthropic のバックエンドだ。ボディは、ただ1つのオリジン、すなわちベンダー自身の Web サイトからの指示だけを受け入れるように設計されている。その単一の信頼されたオリジンがセキュリティモデルのすべてであり、ブラウザ拡張機能がアクセスできるのもまた、このオリジンなのだ。

Chromium は、インストールされたあらゆる拡張機能に、ほぼ万能と言える 2 つの権限を与える。コンテンツスクリプトを使えば、ページ内で JavaScript を実行できる。declarativeNetRequest API(DNR)を使えば、ネットワークトラフィックを書き換えられる。レスポンスヘッダーを削除したり、スクリプトのリクエストを別のサーバーへリダイレクトしたりできる。ブラウザは、これら 2 つの権限を特権的な領域から遠ざけるために実際に多大な労力を費やしており、5 社のうち 4 社はその作業の一部を済ませていた。Weizman が各社で見つけたのは、各社が未着手のまま残していた部分に存在する隙間だった。

彼はこの一般的な手法を DinNeR Serving と呼んでいる。DNR を使って信頼されたページのセキュリティヘッダーを弱め、その後再び DNR を使って、そのページのスクリプトリクエストの1つを攻撃者が制御するサーバーへリダイレクトする。これでページは攻撃者のコードを実行するが、依然としてベンダーのページだと信じており、エージェントも依然としてベンダーから通信を受けていると信じている。Chrome では、拡張機能が埋め込み Gemini アプリにコンテンツスクリプトやデバッガーをアタッチすることは正しくブロックされていたが、DNR は Chromium が WebView 内で同じ保護を拡張していなかった唯一のメカニズムだった、と Weizman は報告している。Content-Security-Policy を剥ぎ取り、ドキュメント分離ポリシーを緩めるだけで、gstatic.com から提供されるスクリプトを自身のものに差し替えるのに十分であり、chrome://glic の内部からブラウザエージェント自身のメッセージタイプを直接送信できた — file:/// アドレスでタブを作成し、それをテキスト、PDF、またはスクリーンショットとして読み戻し、サインイン済みプロファイルのメールアドレスと画像を取得できた。

同じ拡張機能がブラウザごとに何をしたのか

その拡張機能は5つのツールではなかった。declarativeNetRequestと広範なホストアクセスを要求する単一のマニフェストに、各ターゲット用の個別のルールファイルを加えたものだった。攻撃間で変わったのはルールだけだった。Forever Security自身の表が、各チェーンが到達した内容を最も明確に要約しており、以下に再掲する。最も重要な行はAgent hijackだ。5つのうち4つで、実証された結果はデータ窃取ではなく、ログイン済みセッション内でユーザーの代理として行動できるエージェントの制御だった。

Impact table card titled 'One extension, five targets', subtitled 'Per Forever Security's own impact table, reproduced without additions.' Five columns are headed Chrome with the sub-label Gemini Live, Comet with Perplexity, Edge with Copilot, Opera with Neon, and Claude with in Chrome. Eight rows read: Local file access, Yes for Chrome and Comet and a dash for the other three; Microphone and camera, Yes for Chrome only; Agent hijack, a dash for Chrome and Yes for the other four; Browser profile leak, Yes for Chrome and Comet; Browsing history leak, Yes for Comet only; Screenshots of tabs, Yes for Chrome and Comet; Zero clicks after install, Yes in all five columns; and CVE assigned, reading 2026-0628 under Chrome, 2026-55945 under Edge and a dash elsewhere. An amber footer strip reads 'No entry in this table has been independently reproduced; the per-browser chains are the researcher's account.'

これらのブラウザごとのチェーンは、BragJackのうち他の当事者によって確認されていない部分です。BleepingComputer、Cyber Security News、Cloud Security Alliance、タイ国立CERTはいずれもこの開示を報じており、いずれも同じように仕組みを説明していますが、そのすべてが実際に検証しているのではなく、Forever Securityの解説記事を説明しているにすぎません。2026年9月21日付のThaiCERTの通知は、情報源としてBleepingComputerを挙げています。したがって以下に述べるのは、Weizman自身の概念実証(PoC)についての説明であり、開示とはそうしたものではあるものの、第三者によって独立に再現された結果ではありません。

Perplexity Comet:テストドメインが依然として信頼リストに残っている

Cometは、研究者自身の順位付けでは5つの中で最悪であり、その理由はコーディング上のミスではなく構造的なものだ。Perplexityは、エージェントがブラウザ自身の権限を保持するブラウザを作ったため、乗っ取られたエージェントはその権限をすべて引き継ぐ。Perplexityは、他のものが省いた防御作業も行っていた。perplexity.aiでは拡張機能が完全に実行できないようブロックされており、だからこそWeizmanはそこでは広告ブロッカーが機能しないと述べている。

問題は、エージェント拡張機能がコマンドを受け入れるオリジンのリストにありました。技術解説によると、そのリストには1件ではなく10件のエントリが含まれていました。perplexity.aiとそのwww版に加え、perplexity.comとperplexity.aiの両方にあるtesting、staging、previewのホストです。堅牢化されていたのは本番ホストだけでした。testing.perplexity.comは依然としてコンテンツスクリプトを受け入れていました。残る障害は、これらのドメインがすべてperplexity.aiへの302リダイレクトを返すため、ブラウザがテストページにスクリプトをアタッチできるほど長く留まらなかったことです。Locationヘッダーを削除するDNRルールによってこの障害はなくなり、コンテンツスクリプトは、エージェント拡張機能が公開するランタイムメッセージングチャネルを通じて、エージェント拡張機能と直接通信できるようになります。

ウィズマンによれば、このエージェントは要求に応じて、閲覧履歴を一覧表示し、file:/// パスを含む任意のURLを開き、表示中のタブのスクリーンショットを撮り、さらに、供給されたプロンプトからエージェント実行を開始するコマンドを通じて、ユーザーができることのほぼすべてを行えた。彼のデモ用プロンプトは、Comet に perplexity.ai を訪問し、直近5件のメールを要約し、その要約を2つ目のアドレスに送信するよう求めた。また同氏は、file:/// へのアクセスは以前の Comet の開示で対処済みだったが、修正は大文字と小文字を区別するものだったため、FiLe:///etc/hosts は依然として機能した、とも報告している。そうした内容は Perplexity のどの勧告にも記載されていない。同社は報奨金を支払い、Forever Security によれば、示された挙動を修正した。

Microsoft Edge:マーケティングページ、合成クリック、そして競合状態

Edge は唯一反撃してきた対象であり、5 つの中で最も示唆に富む。Microsoft は自社のエージェントを、プロンプトを受け付ける「Think」モードと、ページ上で動作する「Do」モードに分割し、両者が同時に実行できないよう意図的にしていた。これは実際の安全機構であり、プロンプト強制を構造上阻止するものでもある。Microsoft はさらに、エージェントを実演する microsoft.com/edge のマーケティングページを強化し、その特権的なプロンプト送信機能を 3 つの別個の条件で制限していた。すなわち、単純に削除できない Content-Security-Policy(ヘッダーがないと特権オブジェクトが作成されないため)、新しいユーザー ジェスチャー トークン、そしてプロンプトを送信するのではなくプロンプト ボックスに入力する関数である。

Weizman の説明によれば、各条件はそれぞれ別の手口によって突破された。彼は CSP を削除する代わりに、その frame-ancestors ディレクティブを広げ、任意の .com サイトによる埋め込みを許可した。ジェスチャートークンについては、マニフェストに debugger 権限を追加し、合成クリックを送出した。Chromium はこれを正規のユーザー操作として受け入れる。競合状態については、彼はエージェントツールのフラグを無効化し、プロンプト送信関数を呼び出し、その後、エージェントが行動を許可されているかどうかをまだ判断している間にフラグを再び有効化した。プロンプトが強制送信された瞬間には設定はオフで、権限チェックが実行された瞬間にはオンだった。マイクロソフトが CVE-2026-55945 を割り当てたのは、まさにこのためである。

金額は作業内容に見合っている。Forever SecurityはEdge Chromiumの発見に$3,000、競合状態に$2,000、合計$5,000を計上しており、5件中3位で、GoogleとPerplexityの各$7,000を下回る。

Opera NeonとClaude in Chrome:簡単な2つ

Opera Neonは5つの中で最も少ない要件で済んだ。そのエージェントはopera.comから指示を受け取るが、GoogleとPerplexityはいずれも拡張機能がエージェントの信頼済みオリジンにコンテンツスクリプトを添付することをブロックしていたのに対し、Operaは拡張機能がそのドメインにコンテンツスクリプトを添付することを止めていなかった。そのため、Weizmanの拡張機能はそこにスクリプトを注入し、任意のプロンプトでエージェントのメッセージチャネルを直接呼び出せた。CSPを外すと、同じ攻撃を任意のページ上の不可視フレームに埋め込めるようになった。彼の記事には、他の誰の報道にもない細部が1つ加えられている。Operaは、ほぼ同じ時期に独自にこの欠陥を発見したと彼に伝え、それでも900ドルの報奨金を支払った、という。それは研究者が報告したベンダーの主張であり、どちらの当事者も証拠を公開していない発見である。

Claude in Chromeは異例のケースだ。ブラウザではなく拡張機能だからであり、Forever Securityもそれを明言している。ある拡張機能が別の拡張機能を悪用するよりも、拡張機能がその動作するブラウザを悪用する方がリスクは大きいというわけだ。仕組みは、claude.ai上のマーケティングページが任意のプロンプトをサイドパネルに渡せるというもので、これに、オンボーディングボタンのクリックで発火し、data属性からプロンプトを読み取るコンテンツスクリプトが組み合わされていた。Weizmanはページのbodyのidと属性を自分で設定し、デバッガー権限を通じて合成クリックを発行すると、サイドパネルが彼のプロンプトを表示した状態で開いた。Anthropicはこれを中程度の深刻度と評価し、報奨金を支払い、Forever Securityによれば、この特定の知見を最初に報告した企業として同社を認めた。Foreverの2つの投稿は金額でわずかに食い違っている——メインの表では$600、技術面の併記記事では$500だ。

ベンダー自身の記録が実際に示していること

5件のうち公開された脆弱性レコードが作成されたのは2件だけで、しかもどちらもBragJackの記事より数か月前のものだ。Googleの2026年1月6日付stableチャンネルのリリースノートには「High CVE-2026-0628: WebViewタグにおけるポリシー適用の不備。2025-11-23にGal Weizmanが報告」と記載され、WindowsとMac向けに143.0.7499.192/.193、Linux向けに143.0.7499.192が挙げられている。2026年1月7日に公開されたNational Vulnerability Databaseの項目では、この欠陥は「ユーザーを説得して悪意のある拡張機能をインストールさせた攻撃者が、細工されたChrome拡張機能を介して特権ページにスクリプトやHTMLを注入する」ことを可能にするものと説明され、CWE-862(認可の欠如)に分類され、CVSS 3.1スコア8.8を持つ。このスコアはGoogleによるものではない。The Hacker Newsが指摘したように、CISAがレコードを拡充したことによるものであり、Google自身の注記ではこの問題をHighと評価している。

Microsoftの記録はさらに限定的だ。2026年7月3日に公開されたCVE-2026-55945はCWE-362の競合状態で、CVSS 3.1スコアは4.2、深刻度は「中程度」である。Microsoftの影響表明は「Information Disclosure」で、同社のFAQによれば開示される情報はファイル内容である。修正ビルドは150.0.4078.48で同日にリリースされ、記録上の悪用状況は「Publicly Disclosed: No; Exploited: No」と記載されている。この文書には、エージェントが任意のウェブサイトをまたいで操作されることを記述した箇所はなく、それがWeizmanの報告する影響である。両方の記述は同時に真であり得る——CVEは競合状態を対象とし、マーケティングページの機能は別途支払われた2件目の発見だった——が、これまでに公開されたベンダー文書はいずれもエンドツーエンドの連鎖を記述していない。

Timeline card titled 'Five months of fixes, then one explanation', subtitled 'Both public fixes shipped months before BragJack was published.' Five markers sit on a horizontal rail. 23 NOV 2025, 'Reported to Google', noting the date in Chrome's own release-note credit for Gal Weizman. 6 JAN 2026, 'Chrome fixed', noting that 143.0.7499.192 and .193 ship and that CVE-2026-0628 was published the next day. 3 JUL 2026, 'Edge fixed', noting that CVE-2026-55945 and build 150.0.4078.48 were published the same day. 16 SEP 2026, 'BragJack published', noting two Forever Security write-ups and that this is the date the record carries. 21 to 22 SEP 2026, 'Third-party notices', noting ThaiCERT on 21 September and the Cloud Security Alliance on 22 September. The first three markers are green and the last two amber. An amber footer strip reads 'Comet, Opera Neon and Claude in Chrome have no CVE and no published fix date.'

「ゼロクリック」とは、拡張機能をインストールした後の状態を指します

Forever Securityの表にある文言は正確だが、誤読しやすい。BragJackはドライブバイではない。BleepingComputer、Cloud Security Alliance、ThaiCERTはいずれも、同じ前提条件を最初に挙げている。悪意ある拡張機能がすでにインストールされていることだ。研究が示しているのは、一度インストールされれば、それ以上のクリックは不要だということだ。拡張機能は、ユーザーがたまたま開いているどのページでも、何も表示せずにエージェントに到達する。CometとOpera Neonでは、まったく操作を必要としなかった。EdgeとClaude in Chromeでは、エージェントが要求したクリックを拡張機能がデバッガー権限を通じて合成したため、ユーザーがそれを与えたわけでもない。

その違いが実環境での露出を決める。この攻撃が成立するには、悪意あるものをインストールするユーザーか、ストアで一度信頼された後に悪意化する拡張機能のどちらかが必要であり、どちらも高いハードルではない。だからこそCSAの提言は、拡張機能のインベントリと、declarativeNetRequestおよびdebugger権限を特権として扱うことに重点を置いている。攻撃が報告されていないのも同じ理由だ。悪意ある拡張機能のインストールを必要とする概念実証は、キャンペーンではなく能力のデモンストレーションにすぎない。

プロンプト強制と、それに付随する営業上の論拠

用語が重要なのは、それが防御の所在を説明しているからだ。プロンプトインジェクションは、モデルがすでに読んでいるコンテンツの中に指示を隠す。モデルのトレーニングとフィルターが、意図された最後の防壁となる。ウィズマンがしたのは、プロンプト全体を書き、それが届くタイミングを選び、そしてエージェントが信頼するように作られた送信元から、フォローアップを送り続けたことだ。モデルレベルの安全フィルタリングは決して関係してこない。なぜなら、そのやり取りの中に攻撃に見えるものは何もないからだ。Forever Securityはこれをプロンプトフォーシングと呼んでいる。

同社がそこから導き出す系論は、悪意のあるコードが実行されないのだから、エンドポイント検出にも見えないというものだ。正規のソフトウェアが、許可されている動作を行うよう指示されているだけだからだ。その主張は製品の売り込みと結びついて提示されている――Forever SecurityはAIネイティブのエンドポイントエージェントを販売しており、両方の記事は最後にそれを勧めている。乗っ取られたエージェントがマルウェアのシグネチャを生成しないという観察は、何かを購入する必要はないが、それは実測結果というより研究者の主張であり、どのような種類のエンドポイント製品がこれらの連鎖を検出するかを独立した第三者が検証した例はない。

何が確立されており、何が一人の研究者に依拠しているのか

アーカイブはこの項目を脆弱性として記録しており、深刻度は{{1}}高{{/1}}、地域は{{2}}グローバル{{/2}}、信頼度は{{3}}B{{/3}}——文書化されているが、単一または二次情報源によるもので——異議はなく、実際の被害は記録されていない。この等級はバグの深刻度ではなく証拠を表しており、その区分は話全体に明確に貫かれている。

確立済み、ベンダーまたはファーストパーティの記録がそう述べているという意味で:

• Google は 2026 年 1 月 6 日に、Chrome の修正を 143.0.7499.192 および .193 でリリースし、2025 年 11 月 23 日付の報告について Gal Weizman の功績を認めた。これは研究者側の説明ではなく、Google 自身のリリースノートに記載されている。

• CVE-2026-0628 は存在し、Google により High、NVD レコードにおける CISA の拡充により 8.8 と評価され、WebView タグにおける不十分なポリシー適用として分類されています。

• Microsoftは2026年7月3日、CVE-2026-55945を公開しました。深刻度は「中」の4.2で、情報漏えいにつながる競合状態であり、Edge 150.0.4078.48で修正済みです。悪用の記録は「なし」とされています。

• 両方のNVDレコードにおけるCISAのSSVC評価は「悪用:なし」となっており、ベンダー、研究者、報告者の誰一人として実環境での攻撃を主張していない。これは報告が存在しないということであり、存在しないことの証明とは同じではないが、公開から6週間後における記録の現状はそうなっている。

Forever Security のアカウントだけに頼ると:

• ブラウザごとのエクスプロイトチェーンすべて。DNRルールセット、testing.perplexity.comのリダイレクト除去、Edgeのマーケティングページの一連の処理、Claudeのオンボーディングボタンのクリックを含む。CVEは2つのメカニズムを説明しているが、これらのチェーンについては説明していない。

• Cometの影響範囲の全リスト——閲覧履歴、ローカルファイルの読み取り、プロファイルデータ、スクリーンショット——および、乗っ取られたCometエージェントが平易な英語でメールを要約して転送するよう指示され得るという具体的な主張。BleepingComputerはこれを研究者によるデモとして報じており、Perplexityの声明でそれを裏付けたものも反論したものもない。

• Chromeのカメラとマイクへのアクセス。BleepingComputerはこれを「潜在的に」到達可能と表現しており、Foreverの表では達成済みとして記載されている。

• 報奨金の総額。Forever Securityは5社にわたって約2万ドルと述べているが、同社自身の製品別の数字を合計すると2万500ドルになる。これはThe Hacker Newsも指摘した算術上の論点だ。Claude in Chromeの数字は、同社の2つの投稿で異なっている。BleepingComputerの「2万ドル超」は、どちらの解釈とも整合する。

• そのプロンプト強制は、認可バグの一族を指す名称ではなく、新たな種類の攻撃である。それはフレーミング上の主張であり、それを採用したCloud Security Allianceは、根底にあるパターンを、独自の仕組みを持つ新たな手法ではなく、ベンダー間で共通するアーキテクチャ上のギャップだと説明している。

5社のうち3社は、脆弱性の記録をまったく公表していない。CSAは、Perplexity、Opera、Anthropicが、GoogleやMicrosoftのものに匹敵するアドバイザリを出さずに、特定の概念実証を認めて修正したと指摘しており、Forever Securityはこれら3社について修正日を示していない。BragJackのいずれのチェーンについても、独立した再現は公表されていない。Cyber Security NewsとThaiCERTはいずれもこの開示を再掲しており、ThaiCERTはBleepingComputerを引用している。

開示後に何が変わりましたか

Chrome と Edge のユーザーにとって実用的な答えは、9月16日に何も変更する必要はなかったということだ。修正プログラムは1月と7月に提供されており、Chrome 143.0.7499.192 以降、または Edge 150.0.4078.48 以降を使っている人なら、すでにパッチは適用済みだった。このタイミングは、じっくり受け止める価値がある。これらのバグは、それらを結びつける手法に名前が付く何か月も前にクローズされていた。これは協調的開示の通常の形であり、見出しがパッチ状況より悪く読める理由でもある。

Comet、Opera Neon、Claude in Chromeについては、状況はそれほど明確ではない。各ベンダーは報奨金を支払い、Forever SecurityとCSAによれば、示された動作に対処した。しかし、どのベンダーもバージョンを固定したアドバイザリや日付を公開していないため、ユーザーが照合できるビルド番号はなく、最新版を保つようという一般的な指示があるだけだ。CSAの組織向けガイダンスは、declarativeNetRequestまたはdebugger権限を持つ拡張機能を棚卸しし、エージェント型ブラウザをメール、コード、金融の認証済みセッションがないプロファイルに限定し、合成ユーザー入力と真正のユーザー入力をどう区別するのかをベンダーに尋ねることだ。BleepingComputerの個人向けアドバイスはもっと単純だ。ブラウザを最新の状態に保ち、見覚えのない拡張機能を削除し、「すべてのウェブサイト上のすべてのデータを読み取り、変更する」という表示を、それが示す警告として受け止めることだ。

Abstract illustration on a deep navy-black field: a long horizontal channel of frosted glass runs across the frame, lit from within by a cold pale-blue glow, and a single featureless rectangular slab of brushed aluminium slides along it from the left. A thin vertical plane of dark smoked glass stands across the channel, pierced by one small circular aperture. Through that aperture a narrow amber beam reaches the aluminium slab and lands on it, where the metal is etched with fine branching fracture lines. Behind the smoked-glass plane the room continues, empty and unlit. Volumetric haze, rim lighting, shallow depth of field. No text, numbers, people or organisation logos appear. The OrcaRouter logo is composited in the bottom-right corner.

未解決の問いは、5つのバグが修正されたかどうかではない。その背後にある設計上の前提が修正されたかどうかだ。これらの製品はいずれも、インストールされた任意の拡張機能がそのオリジンの発言内容を書き換えられるブラウザにおいて、特権を持つローカルエージェントが指示を受け取る信頼できる場所としてファーストパーティのWebオリジンを扱っていた。Forever Securityは修正はエンドポイントレベルの監視だと主張し、CSAはオリジン検証、最小権限、分離されたコマンドチャネル、および偽造不可能な入力来歴を主張している。この記事のために確認したどの記録においても、5社のいずれも、Weizmanがたどった特定の経路ではなくアーキテクチャを変更したと公に述べていない。

記録の日付は説明がなされた日であり、バグの日付ではない——そして、その隔たりこそが物語だ。単一の拡張機能、広告ブロッカーが何年も保持してきた2つの権限、そして、自社のウェブサイトこそ攻撃者が足を踏み入れられない唯一の場所だとそれぞれが信じていた5つのベンダー。