HackerNews

HackerNews
研究人员称 Claude for Chrome 漏洞可让恶意扩展程序触发 Gmail 读取

研究人员称 Claude for Chrome 漏洞可让恶意扩展程序触发 Gmail 读取

给文章评分:

任何能够在 claude.ai 上运行脚本的其他浏览器扩展程序,仍然可以触发针对你的 Gmail、最新的 Google Doc 及其评论以及你的 Calendar 的 Claude for Chrome 任务。

这个漏洞和 ClaudeBleed 都需要一个已经能够在 claude.ai 上运行脚本的恶意扩展程序;区别在于范围。Anthropic 在 5 月限制了任意提示路径,作为其对 ClaudeBleed 漏洞的回应的一部分,将外部调用者限制在一组固定的任务中,但 Manifold Security 表示,在当前的 v1.0.80 版本(已发布八个版本之后)中,这个缺口仍然存在。

如果你运行 Claude for Chrome 以及任何其他可以触及 claude.ai 的扩展程序,你就在影响范围内。在默认的"询问后再操作"模式下,伪造的任务仍然会弹出一个需要你点击的批准框。

如果你开启了"无需询问即可操作"模式,即无人值守自动化模式,它会在没有任何提示的情况下直接运行。最快的防护措施是关闭"无需询问即可操作"模式,并审查任何有权读取或更改 claude.ai 数据的扩展程序。这可以恢复批准步骤,但并不能消除伪造点击的路径,并且截至 7 月 14 日还没有补丁。

The Hacker News 解包了当前版本,并确认这两个机制在 v1.0.80 中仍然存在。

触发器接受伪造点击

在 ClaudeBleed 之后,Anthropic 不再允许页面将任意文本传递给 Claude,并将外部调用者限制为扩展程序包中内置的九个固定任务 ID。

其中三个是入门练习提示,三个驱动 DoorDash、Salesforce 和 Zillow,最后三个——usecase-gmail、usecase-gdocs 和 usecase-calendar——是读取你的邮件、最新文档及其评论以及日历的任务。允许列表确实是一个改进。页面不能再将话语塞进 Claude 的"嘴里"。

薄弱环节在于触发机制。扩展程序中的一个内容脚本在 claude.ai 上监听对特定元素(#claude-onboarding-button)的点击,读取其 data-task-id,如果该 ID 是九个允许列表任务之一,则向扩展程序发送一条携带该 ID 的 open_side_panel 消息。面板打开并加载匹配的提示。处理程序从未检查的是 event.isTrusted——这个浏览器标志用于区分真实的用户点击和脚本分发的点击。

因此,任何内容脚本能够触及 claude.ai 上 DOM 的扩展程序都可以构建该元素,设置任务 ID,并分发一个合成点击。扩展程序将其视为真实的点击。Manifold 通过粘贴到 claude.ai 控制台的六行代码演示了该触发器,日志中的 isTrusted: false 确认了伪造点击被接受了。

在浏览器控制开启的情况下(入门完成后默认如此),该伪造点击将 usecase-gmail 任务加载到面板中。在默认模式下,在该操作与任何实际读取之间仍然有一个批准框,用户必须点击它。Manifold 将这种模式下的漏洞评为 CVSS 7.7 高,一旦用户启用了"无需询问即可操作",则评为 9.6 严重,因为相同的任务会静默运行。

研究人员表示,一行代码的修复方案是在处理程序顶部拒绝合成点击。该修复尚未发布。

一个更隐蔽的漏洞潜伏在底层

第二个问题目前无法远程利用,但如果另一个漏洞暴露了它,它就能移除批准步骤。当 Claude 的侧边面板加载时,如果其 URL 中包含 ?skipPermissions=true,它会直接进入 skip_all_permission_checks 状态并开始无需询问即可操作。

没有手势,没有同意界面。一个红色横幅警告说 Claude 现在可以在线执行大多数操作,但仅在特权会话已经开始运行后才出现。横幅告诉你发生了什么,但并不能阻止它发生。

目前,该 URL 只能由扩展程序本身构建,因此没有直接的远程路径。未来的某个漏洞如果允许较低权限的上下文设置该参数,可能会将伪造点击技巧转变为完全静默的账户读取。该路径可能通过接受 URL 的消息处理程序、面板构建回归或选项页面中的 XSS 漏洞暴露出来。Manifold 的修复方案是停止从 URL 读取权限模式,并每次都以询问模式启动面板。

Manifold 将有效的攻击映射到 OWASP Top 10 for LLM Apps 中的间接提示注入,因为攻击者通过伪造点击触发了扩展程序九个允许列表提示之一,而静默执行风险则映射到过度代理。无论侧边面板设置为 Opus、Sonnet 还是 Fable,这两个问题都能复现。漏洞在扩展程序中,而不是模型本身。

5 月报告,仍在发布代码中

Manifold 于 5 月 21 日针对 v1.0.72 报告了这两个问题。Anthropic 次日确认,然后关闭了这两个报告。它以底层信任边界问题已在较早的 ClaudeBleed 报告中跟踪为由,关闭了伪造点击报告,Anthropic 称该报告"在完全修复之前保持开放"。

它以信息性为由关闭了 URL 报告,认为该参数仅由扩展程序为那些用户已告知其无人值守运行的任务设置。

然而,旨在涵盖该修复的内部报告在 6 月 9 日之前就被标记为已解决,而八个版本之后,易受攻击的代码纹丝未动:Manifold 于 7 月 7 日检查了 v1.0.80,发现内容脚本点击处理程序和侧边面板初始化代码与其首次报告的 v1.0.72 逐字节相同。

截至 7 月 14 日,Anthropic 尚未对 Manifold 的发现发布公开回应,而"已解决"意味着修复仍在进行中,还是认为剩余风险不值得修复,这是公司外部任何人都无法判断的。

扫描证实了这一点。The Hacker News 从 Chrome Web Store 获取了 7 月 7 日更新的 v1.0.80 版本(所有付费订阅者均可使用),将其解包,并检查了所有 90 个 JavaScript 包:入门点击处理程序在任何匹配的点击上触发,没有 event.isTrusted 防护,并且侧边面板从其自身 URL 读取 skipPermissions,并在设置后切换到 skip_all_permission_checks。

截至该日期,我们没有发现这两个问题的 CVE,也没有发现 Anthropic 的安全公告。

这对该扩展程序来说并不新鲜。今年早些时候修补的一个单独漏洞允许任何网站静默地向其注入提示,而 ClaudeBleed 在 4 月底以同样的方式开始,当时 LayerX 发现 Claude for Chrome 信任 claude.ai 源,而不是检查实际与它通信的是哪个脚本,从零权限扩展程序驱动了助手,并发现 Anthropic 的第一个缓解措施不完整。

LayerX 将 ClaudeBleed 称为一个"困惑的代理"问题——一个拥有实际权限的程序为错误的调用者行事。Claude Code 也出现了同样的故障:一个恶意的代码仓库可以窃取开发者的 Anthropic API 密钥。Anthropic 称该扩展程序为测试版,并且对所有付费 Claude 订阅者开放。

将一个 AI 智能体放在你的浏览器中,你的账户已经登录,另一个可以触及它的扩展程序就能驱动 Claude 所暴露的能力,在固定的任务集和你设置的任何批准模式下。

这两个发现都削弱了同一个边界:Claude 接受脚本生成的点击作为你的意图,并且其权限状态可以从 URL 设置。八个版本过去了,这个边界仍然停留在 Manifold 5 月份发现时的状态。


消息来源:thehackernews.com;
本文由 HackerNews.cc 翻译整理,封面来源于网络;
转载请注明“转自 HackerNews.cc”并附上原文
分享到:
hackernews

hackernews

该作者暂无简介