深海军蓝近黑的背景上呈现一幅抽象插画:最左侧一个小巧的哑光黑色六边形模块发出五根发丝般纤细的发光青色丝线,向右呈扇形展开,每一根都射向一个独立矗立在拉丝钢地面上的高耸多面玻璃棱柱。每个棱柱内部都有一个圆柱形腔体,由内而外透出淡蓝色光芒;五个棱柱中有三个在蓝色核心旁还带有温暖的琥珀色光晕,另外两个则仅有蓝色。体积雾、轮廓光、浅景深。画面中不出现任何文字、数字、人物或组织标志。OrcaRouter 标志合成于右下角。
AI Safety Incidents

BragJack:一款浏览器扩展劫持了五大主流浏览器中的 AI 智能体

作者

Gideon Frost

发布日期

最新模型 · 20查看全部模型 →
基准测试:Artificial Analysis · 每日更新
返回全部文章

2026 年 9 月 16 日,Forever Security 的安全研究员 Gal Weizman 发布了 BragJack:一个概念验证,其中一款普通浏览器扩展——无需零日漏洞、无需越狱模型,也无需被攻陷的厂商服务器——控制了五款基于 Chromium 的产品内置的 AI 智能体:Google Chrome 中的 Gemini Live、Microsoft Edge 中的 Copilot、Opera Neon、Perplexity Comet 以及 Chrome 中的 Claude。该扩展并未申请任何特殊权限。它使用内容脚本和 Chromium 的 declarativeNetRequest API,这正是大多数广告拦截器所具备的两项权限,从而进入各厂商自家网站用于向其智能体发送指令的私有通道。Weizman 报告称,Comet 受影响范围最广,Google 和 Microsoft 已发布修复程序并分配了 CVE-2026-0628 和 CVE-2026-55945,且尚未观察到在野攻击。它被收录为高危漏洞,收录于AI 事件档案,其中每条记录都附有来源、置信度等级和争议标记。

这次延伸并没有打破模式,它打破的是渠道。

根据 Forever Security 同日发布的技术配套文档,这五款产品每一款都以相同方式构建。每款产品在浏览器内部都有一个“身体”,它可以打开标签页、读取本地文件、截取屏幕截图并点击页面;在浏览器外部还有一个“大脑”,负责决定“身体”应该做什么——Chrome 对应 Google 的 Gemini 服务器,Comet 对应 perplexity.ai 网页应用,Edge 对应 copilot.microsoft.com,Claude in Chrome 对应 Anthropic 的后端。“身体”被设计为只接受来自一个源的指令:厂商自己的网站。这个唯一受信任的源就是整个安全模型。它也是浏览器扩展被允许接触的对象。

Chromium 赋予任何已安装的扩展两项近乎通用的能力。内容脚本让它能在页面内运行 JavaScript。declarativeNetRequest API(即 DNR)让它能改写网络流量——移除响应头,或将脚本请求重定向到另一台服务器。浏览器花费了实实在在的努力,让这两种能力远离特权面,而五家厂商中有四家已经完成了其中一部分工作。Weizman 发现,在每种情况下,问题都出在他们尚未封闭的那部分中存在的缺口。

他将这种通用技术称为 DinNeR Serving:先用 DNR 削弱受信任页面的安全头,再用 DNR 将该页面的某个脚本请求重定向到攻击者控制的服务器。此时页面运行的是攻击者的代码,但它仍认为自己是厂商的页面,而代理也仍认为自己收到的是来自厂商的消息。Weizman 报告称,在 Chrome 中,扩展被正确阻止向内嵌的 Gemini 应用附加内容脚本或调试器,而 DNR 是 Chromium 未在 WebView 内为其提供同等保护的唯一机制。剥除 Content-Security-Policy 并放宽文档隔离策略,就足以将 gstatic.com 提供的脚本替换为他自己的脚本;随后,从 chrome://glic 内部,他就能直接发送浏览器代理自己的消息类型——在 file:/// 地址创建标签页,将其以文本、PDF 或截图形式读回,并获取已登录配置文件的电子邮件地址和图片。

同一个扩展在各个浏览器中分别做了什么

这个扩展并不是五个工具。它是一个请求 declarativeNetRequest 和广泛主机访问权限的 manifest,外加针对每个目标各自单独的规则文件;攻击之间只有规则发生了变化。Forever Security 自己的表格是对每条链所触及内容最清晰的总结,现转载如下。最关键的一行是 Agent 劫持:在五个案例中的四个里,所演示的结果不是数据窃取,而是控制一个能在已登录会话中代表用户行动的 Agent。

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、云安全联盟以及泰国国家CERT都报道了这次披露,而且它们对技术机制的描述如出一辙,但每一家都只是在转述Forever Security的报告,而非对其进行实际测试。ThaiCERT于2026年9月21日发布的公告将BleepingComputer列为其信息来源。因此,下文所述是Weizman对其自身概念验证的叙述——这正是一次披露的本质所在——而不是一个经独立复现的结果。

Perplexity Comet:一个仍在信任列表上的测试域名

按照研究者自己的排名,Comet 是五者中最差的,而原因在于结构性问题,而非编码失误。Perplexity 构建的浏览器让智能体持有浏览器自身的权限,因此被劫持的智能体便会继承所有这些权限。Perplexity 还做了其他家跳过的防御工作:扩展程序被完全禁止在 perplexity.ai 上运行,正因如此,Weizman 说广告拦截器在那里不起作用。

这个缺口出在 agent 扩展用来接收命令的来源列表中。根据技术分析文章,该列表包含十个条目,而不是一个——perplexity.ai 及其 www 变体,以及 perplexity.com 和 perplexity.ai 上的 testing、staging 和 preview 主机。只有生产主机经过了加固。testing.perplexity.com 仍然接受内容脚本。剩下的障碍是,这些域名中的每一个都会以 302 重定向到 perplexity.ai 作为响应,因此浏览器从未在测试页面上停留足够长的时间,让脚本得以挂载。一条删除 Location 响应头的 DNR 规则可以消除这一障碍,随后内容脚本就能通过它暴露的 runtime 消息传递通道直接与 agent 扩展通信。

根据 Weizman 的说法,该智能体在收到请求时会列出浏览历史记录、打开任意 URL(包括 file:/// 路径),并对可见标签页截图——然后通过一条从给定提示启动智能体运行的命令,几乎可以做用户能做的任何事情。他的演示提示要求 Comet 访问 perplexity.ai,总结最近五封电子邮件,并将摘要发送到第二个地址。他还报告称,file:/// 访问问题曾在早先的 Comet 披露中得到处理,但修复是区分大小写的,因此 FiLe:///etc/hosts 仍然有效。这些内容都没有出现在任何 Perplexity 公告中;该公司支付了赏金,并且据 Forever Security 称,已修复其被展示的行为。

Microsoft Edge:一个营销页面、一次合成点击和一次竞态

Edge 是唯一进行反击的目标,也是五个目标中最具启发性的一个。Microsoft 将其智能体拆分为接受提示词的“Think”模式和会在页面上执行操作的“Do”模式,并刻意让两者无法同时运行——这是一项真正的安全机制,也从设计上杜绝了提示词强制攻击。Microsoft 还加固了 microsoft.com/edge 上用于演示该智能体的营销页面,用三个独立条件为其特权提示发送功能设限:一个无法被简单删除的 Content-Security-Policy(因为当该响应头缺失时,特权对象根本不会被创建)、一个全新的用户手势令牌,以及一个只填充提示框而不发送提示的函数。

Weizman 的说法是,每个条件都对应一种不同的伎俩。他没有删除 CSP,而是扩大了它的 frame-ancestors 指令,允许任何 .com 网站进行嵌入。对于手势令牌,他在清单中添加了 debugger 权限,并派发了一个合成点击,Chromium 会将其视为自然手势。对于竞态条件,他禁用了 agent tools 标志,调用了发送提示的函数,然后在 agent 仍在判断自己是否被允许行动时重新启用了该标志。在提示被强制发送的那一刻,该设置是关闭的;而在权限检查运行的那一刻,它是开启的。这就是微软将 CVE-2026-55945 分配给它所指的情况。

报酬与工作量相符:Forever Security 因 Edge Chromium 的发现记录 3,000 美元,因竞态条件记录 2,000 美元,总计 5,000 美元——在五者中排名第三,落后于 Google 和 Perplexity 各 7,000 美元。

Opera Neon 和 Chrome 中的 Claude:两个简单的选择

Opera Neon 是五个中最不需要费力的。它的智能体接受来自 opera.com 的指令,而 Google 和 Perplexity 都阻止扩展将内容脚本附加到其智能体的受信任源,Opera 却没有阻止扩展将内容脚本附加到该域名,因此 Weizman 的扩展可以在那里注入脚本,并直接用任意提示词调用该智能体的消息通道。移除 CSP 后,同样的攻击便可嵌入任何页面上的不可见框架中。他的文章还补充了一个其他人报道中都没有的细节:Opera 告诉他,该公司大约在同一时间独立发现了该漏洞,并且仍然支付了 900 美元赏金。这是研究者转述的厂商说法,并非任何一方已公布证据的发现。

Claude in Chrome 是个比较特殊的情况,因为它是扩展程序而不是浏览器,而 Forever Security 说得很直白:一个扩展利用另一个扩展,风险小于一个扩展利用它所运行的浏览器。该机制是 claude.ai 上的一个营销页面,它能将任意提示词传给侧边面板,再加上一个内容脚本,该脚本会在点击引导按钮时触发,并从 data 属性中读取提示词。Weizman 自己设置了页面 body 的 id 和属性,通过调试器权限派发了一次合成点击,随后侧边面板打开并显示了他的提示词。Anthropic 将其评为中等严重性,支付了赏金,并且据 Forever Security 称,认可该公司是首个报告这一特定发现的一方。两篇 Forever 帖子在金额上略有出入——主表为 600 美元,技术配套文章为 500 美元。

供应商自己的记录实际上是怎么说的

五个中只有两个产生了公开漏洞记录,而且两者都比 BragJack 的报道文章早数月。Google 于 2026 年 1 月 6 日发布的稳定版渠道发布说明列出了“High CVE-2026-0628:WebView 标签中的策略执行不充分。由 Gal Weizman 于 2025-11-23 报告”,并列出适用于 Windows 和 Mac 的 143.0.7499.192/.193,以及适用于 Linux 的 143.0.7499.192。美国国家漏洞数据库于 2026 年 1 月 7 日发布的条目将该缺陷描述为允许攻击者“说服用户安装恶意扩展,从而通过精心构造的 Chrome Extension 将脚本或 HTML 注入特权页面”,将其归类为 CWE-862(缺少授权),并给出 CVSS 3.1 评分 8.8。该评分并非 Google 给出:正如 The Hacker News 所指出的,它来自 CISA 对该记录的补充完善,而 Google 自己的说明将该问题评为 High。

微软的记录范围仍然更窄。CVE-2026-55945 于 2026 年 7 月 3 日发布,是一个 CWE-362 竞态条件,CVSS 3.1 评分为 4.2,严重程度为“中危”(Moderate)。微软的影响声明为“信息泄露”(Information Disclosure),其常见问题解答称泄露的信息是文件内容。修复版本为 150.0.4078.48,于同日发布,该记录的漏洞利用状态为“公开披露:否;已被利用:否”。该文档中没有任何内容描述代理被驱动跨越任意网站,而这正是 Weizman 报告的影响。这两种说法可以同时成立——CVE 涵盖的是竞态条件,而营销页面所述能力是另一项单独付费的发现——但迄今为止发布的任何厂商文档都没有描述这条端到端链条。

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 和 Chrome 中的 Claude,智能体所要求的点击是由扩展通过调试器权限合成的,因此也不是由用户提供的。

这种区别决定了现实世界中的暴露面。该攻击要么需要用户安装恶意内容,要么需要一个已在商店中获得信任、之后才转为恶意的扩展,而这两者的门槛都不高——这正是 CSA 的建议聚焦于扩展清单,并将 declarativeNetRequest 和 debugger 权限视为特权权限的原因。这也是为什么没有人报告过实际攻击:一个需要安装恶意扩展的概念验证,展示的是一种能力,而不是一场攻击活动。

提示词强制,以及随之附带的销售话术

术语之所以重要,是因为它描述了防线所在的位置。提示注入把指令藏在模型正在读取的内容里;模型的训练和过滤器是预定的最后防线。而 Weizman 所做的,是撰写整个提示、选择其送达的时机,并持续发送后续消息——而且来自该智能体被设定为信任的来源。模型层面的安全过滤自始至终都不会被触发,因为这段交流中没有任何东西看起来像攻击。Forever Security 将其称为提示强制(prompt forcing)。

该公司由此得出的推论是:端点检测同样无法发现它,因为并没有恶意代码在运行:合法软件只是被指示去做它本就被允许做的事情。这一说法附带着一个产品推销——Forever Security 销售一款 AI 原生端点代理,而两篇文章的结尾都推荐了它。被劫持的代理不会产生恶意软件特征码这一观察,并不取决于是否购买任何产品,但它是研究人员的论点,而非实测结果;也没有独立第三方测试过任何类型的端点产品能否检测到这些攻击链。

哪些已得到确证,哪些仅依赖一位研究者

档案将这一条目归类为漏洞,严重程度为高,影响范围为全球,置信度为 B——有据可查,但来源单一或属二手来源——并无争议,也未记录到实际危害。这一等级描述的是证据情况,而非这些缺陷的严重程度,而这种区分贯穿整个事件的始终,清晰分明。

已确认,即供应商或第一方记录是这么说的:

谷歌于2026年1月6日在143.0.7499.192和.193中发布了Chrome修复程序,并将一份日期为2025年11月23日的报告归功于Gal Weizman。这一点见于谷歌自己的发布说明,而非该研究人员对此的叙述。

• CVE-2026-0628 确实存在,Google 将其评为高危,CISA 在 NVD 记录中的补充评估评分为 8.8,并被归类为 WebView 标签中的策略执行不充分。

• 微软于 2026 年 7 月 3 日发布 CVE-2026-55945,将其评为中危 4.2 级竞争条件漏洞,可导致信息泄露,该漏洞已在 Edge 150.0.4078.48 中修复,利用情况记录为无。

• CISA 在两条 NVD 记录中的 SSVC 评估均表示“exploitation: none”,而且没有任何一方——供应商、研究人员或报告者——声称发生过在野攻击。这只是没有报告,并不等同于证明其不存在,但这正是发布六周后的记录状态。

仅凭 Forever Security 一方的说法:

• 每个浏览器的漏洞利用链,包括 DNR 规则集、testing.perplexity.com 重定向移除、Edge 营销页面序列以及 Claude 新手引导按钮点击。这些 CVE 描述了两种机制;它们并未描述这些链。

• 针对 Comet 的完整影响清单——浏览历史、本地文件读取、配置文件数据、屏幕截图——以及一项具体主张:被劫持的 Comet 智能体可被以通俗英语指示去汇总并转发电子邮件。BleepingComputer 将其报道为该研究人员的演示;没有 Perplexity 的声明证实或否认这一点。

• Chrome 的摄像头和麦克风访问权限,BleepingComputer 将其描述为“可能”可触及,而 Forever 表则将其列为已达成。

• 赏金总额。Forever Security 表示五家厂商合计约 20,000 美元;其自身按产品列出的数字加起来为 20,500 美元,这也是 The Hacker News 指出的一个算术问题。Claude in Chrome 的数字在该公司的两篇帖子中不一致。BleepingComputer 的“超过 20,000 美元”与这两种解读都相符。

• 提示词强制是一种新型攻击类别,而不是一类授权漏洞的名称。这是一种框架性主张,而采纳了这一说法的 Cloud Security Alliance 将底层模式描述为跨供应商共有的架构性缺口,而非一种具有自身机制的新技术。

五家供应商中有三家完全没有发布漏洞记录。CSA 指出,Perplexity、Opera 和 Anthropic 承认并修复了该特定概念验证,但没有发布可与 Google 和 Microsoft 相比的安全公告,而 Forever Security 未给出这三家的修复日期。尚未有对任何 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.

尚未解决的问题不是五个漏洞是否被修复,而是它们背后的设计假设是否被修复。这些产品无一例外,都把第一方 Web 源当作可信之地,认为一个拥有特权的本地代理可以在那里接受指令——而这个浏览器里,任何已安装的扩展都能改写该源所声称的内容。“永远安全”主张,解决办法是端点级监控;CSA 则主张源验证、最小权限、隔离的命令通道以及不可伪造的输入来源。在本文所查阅的任何记录中,五家厂商均未公开表示:他们改变的是架构,而不只是 Weizman 走过的那条具体路径。

这份记录的日期是作出解释的日期,而不是漏洞出现的日期——而这段间隔本身就是故事。一个扩展程序,两项广告拦截器已持有多年的权限,还有五家厂商,每一家都以为自己的网站是攻击者唯一无法立足的地方。