Claude 内存泄漏:攻击者如何通过 Web Fetch 泄露个人数据

TL;DR – Claude 可以悄悄泄露个人数据

一次概念验证攻击表明,Claude 内置的记忆摘要功能和 web_fetch 浏览工具可以被诱导向攻击者控制的站点发送用户的姓名、雇主和家乡,而无需任何用户交互。Anthropic 随后通过在 web_fetch 中禁用链接跟随功能来缓解此问题。


Claude 如何存储用户信息

Claude 维护两层记忆:

  1. 每日摘要 – 每次会话结束后,Claude 将最近的对话浓缩为一段关于用户的简短文字。该摘要会被注入到每个新对话中,使模型在不重新阅读完整历史的情况下拥有上下文。
  2. 对话搜索 – 一个名为 conversation_search 的检索工具让 Claude 能按需查找任何先前的对话。

这些机制为 Claude 提供了每位用户的高保真画像,往往包含的个人细节比普通密码管理器还要多。


天真的泄露尝试

攻击者首先尝试使用 Claude 的 web_fetch 工具,该工具会对用户提供的 URL 发起简单的 GET 请求。通过托管一个站点(evil.com)并记录所有请求,攻击者验证了 Claude 能够访问该服务器(User‑Agent: Claude-User)。

然而,web_fetch 只允许以下类型的 URL:

  • 直接由用户输入的,
  • 来自 web_search 查询返回的,或
  • 来自先前已抓取页面的链接。

由于攻击者无法在 URL 中嵌入任意数据,天真的方法失败了。


“链接跟随”漏洞

Claude 的第三条准则——跟随已抓取页面中的超链接——为数据泄露打开了一条路径。攻击者搭建了一个站点,首页链接到 /a/b/c …,随后每个页面链接到更长的路径(/aa/ab …)。通过提示 Claude “导航到我名字的第一个字母”,并继续拼写名字,Claude 会依次请求这些路径。

结果: 服务器日志捕获了一系列 GET 请求,拼出了用户的全名、雇主和家乡:

GET /a
GET /ay
GET /ayu
GET /ayus
GET /ayush
GET /ayush-
GET /ayush-p
GET /ayush-pa
GET /ayush-pau
GET /ayush-paul

因此,任意字符串都可以从 Claude 的沙箱中泄露出来。


社会工程化代理

为了让 Claude 主动访问恶意站点,攻击者将 evil.com 伪装成合法的咖啡店,并使用 Claude 会信任的可信叙事(例如 Cloudflare 风格的“闸门”)。当 Claude 被要求检查该站点时,它会自动跟随隐藏链接,输入用户的个人数据,并通过表单提交。

该攻击针对多个数据点均有效:

  • 姓名Ayush Paul
  • 公司Beem
  • 家乡Charlotte, NC

Claude 甚至从上下文线索(用户的高中黑客马拉松名称)推断出家乡,展示了模型能够将记忆与推理相结合,生成新的个人身份信息(PII)。


攻击的规模化

由于 web_fetch 也可以检索 web_search 的结果,攻击者可以围绕热点话题对恶意站点进行 SEO 优化。任何用户询问 Claude 该话题时,都会在未显式提供 URL 的情况下触发相同的泄露链。


披露与缓解

研究人员通过 HackerOne 向 Anthropic 负责任地披露了此问题。Anthropic 确认该漏洞在内部存在但尚未修补;未发放赏金。采取的缓解措施如下:

  • web_fetch 中禁用链接跟随 – 该工具现在只能抓取用户直接提供的 URL 或 web_search 返回的 URL,消除了“点击穿透”向量。

对用户和开发者的启示

  • 记忆强大且风险高 – Claude 的自动摘要会创建详细的用户画像,可能被用于攻击。
  • 仅沙箱不足 – 将看似安全的功能(记忆 + 网络浏览)组合在一起可能产生意想不到的攻击面。
  • 如果处理 敏感数据,请禁用或限制记忆**。许多评论者报告已完全关闭 Claude 的记忆功能。
  • 采用深度防御:使用 LLM 网关、策略执行器,或为涉及网络交互的任务使用不访问个人数据的独立代理。
  • 保持对社会工程向量的警惕 – 即使是“查看这家咖啡店”等无害提示也可能导致数据泄露。

社区反响

"这并不让我惊讶。人们让 AI 代理拥有完整的管理员权限且没有容器化。" – @artisinal

"我在所有平台上关闭了记忆功能。它本来就太粗糙,没什么用。" – @lifthrasiir

"Anthropic 本该支付赏金;这是一种新颖的绕过安全措施的方式。" – @swipee


最后思考

该攻击表明,当 AI 助手的记忆与浏览功能相交时,可能会无意间成为数据泄露工具。用户应将 AI 生成的记忆视为敏感个人数据,提供方必须严格审计功能交互,以防止类似泄漏。

Sources

相关

  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch