一个日历邀请就能接管你的电脑:Claude MCP 扩展的零点击 RCE 漏洞
今天安全公司 LayerX 公开了一个 Claude Desktop Extensions(MCP Bundles)的零点击远程代码执行漏洞,CVSS 评分 10/10。更令人意外的是,Anthropic 得知后选择不修复。
作为一个每天都在用 MCP 工具链的 AI 工程师,这件事值得认真聊聊。
发生了什么
- 攻击者创建一个 Google Calendar 事件,标题写 “Task Management”,描述里塞入指令:从某个 Git 仓库拉代码并执行 Makefile
- 用户对 Claude 说:”帮我看看日历上有什么,处理一下”
- Claude 读取日历事件 → 解析描述内容 → 自动调用 Desktop Commander 扩展 → 在本地执行恶意代码
全程零交互,无确认弹窗,无沙箱隔离。
用户以为 Claude 在帮自己管理日程,实际上它已经在执行远程攻击者的代码了。
根本问题:信任边界的崩塌
这个漏洞的核心不是某个具体的代码 bug,而是一个架构级的设计缺陷。
Chrome 扩展 vs Claude 扩展
Chrome 扩展运行在严格的沙箱里,不能直接访问文件系统、不能执行系统命令。即使扩展被注入恶意代码,爆炸半径被限制在浏览器内部。
Claude Desktop Extensions(.dxt / .mcpb)则完全不同。它们:
- 无沙箱,以用户完整权限运行
- 可以读写任意文件
- 可以执行系统命令
- 可以访问存储的凭证
LayerX 的研究员 Roy Paz 说得很直白:从攻击者视角看,这相当于把门禁密码设成 1234 然后把门敞着——因为锁门会妨碍快递员进出。
低风险连接器 → 高风险执行器
更深层的问题是 Claude 的自主工作流编排。当用户发出一个模糊指令(”帮我处理一下”),Claude 会自动决定调用哪些 MCP 连接器、以什么顺序串联。
这意味着:
- Google Calendar 连接器(低风险,只是读日历)
- Desktop Commander 连接器(高风险,可执行任意命令)
这两个风险等级完全不同的工具,被 Claude 自动桥接了,中间没有任何隔离或确认机制。
日历数据 → LLM 决策 → 命令执行。一条从公开数据源到本地特权执行的完整攻击链。
Anthropic 为什么不修
Anthropic 的回复原文大意是:
MCP 集成是一个本地开发工具,在用户自己的环境中运行。用户自主选择安装和授权哪些 MCP 服务器。安全边界由用户的配置选择和系统安全控制来定义。
翻译成人话:这是用户的责任,不是我们的问题。
这个回应让我想到了一个经典的安全辩论:当用户主动安装了一个有危险权限的工具,开发者是否还有责任防止滥用?
从 Anthropic 的角度看,用户选择安装 Desktop Commander 就等于授权了命令执行能力。但问题是:
- 用户不知道风险会跨连接器传导。安装日历连接器的人不会预期到日历事件能触发代码执行
- “take care of it” 不等于 “execute arbitrary code”。Claude 对模糊指令的过度解读是核心问题
- 间接提示注入是已知问题,但 “已知” 不等于 “可以无视”
这对 AI Agent 开发者意味着什么
作为 Agent 开发者,这个漏洞揭示了三个我们必须面对的问题:
1. MCP 的信任模型需要重新设计
当前 MCP 的模型是扁平信任:所有连接器对 LLM 都是平等的。但现实中,”读日历” 和 “执行命令” 的风险等级相差几个数量级。
我们需要的是分层权限模型:
- 只读连接器(日历、邮件读取):可以自动调用
- 写入连接器(发邮件、修改文件):需要用户确认
- 执行连接器(命令行、代码执行):必须显式授权每一次调用
2. LLM 不应该自主编排跨信任域的工作流
Claude 的 “我来决定怎么串联工具” 在大多数场景下是优点,但在涉及特权操作时就变成了漏洞。
一个原则:数据不应该从低信任域自动流向高信任域执行器,除非经过显式的人类审批。
这不仅仅是 Claude 的问题。所有支持 MCP 或类似 tool-use 协议的 Agent 框架都面临同样的挑战。
3. “间接提示注入” 是 Agent 时代的 XSS
还记得 Web 早期,XSS(跨站脚本攻击)被认为 “不是大问题” 吗?后来它变成了 OWASP Top 10 的常客。
间接提示注入(Indirect Prompt Injection)正在走同样的路。当 AI Agent 开始读取外部数据(邮件、网页、日历、Slack 消息)并基于内容采取行动时,每一个外部数据源都变成了潜在的攻击入口。
这不是一个可以 “以后再处理” 的问题。随着 Agent 获得越来越多的工具访问权限,攻击面只会越来越大。
实用建议
如果你正在使用 Claude Desktop Extensions 或任何 MCP 工具:
- 审计你安装的扩展组合。如果同时安装了 “读取外部数据” 和 “执行命令” 的扩展,你就处于风险之中
- 不要在生产机器上安装命令执行类扩展。开发机可以冒险,生产环境不行
- 避免模糊指令。”帮我处理一下” 比 “帮我看看有没有时间冲突” 危险得多
- 关注 MCP 生态的安全进展。这个领域还很早期,安全框架还在形成中
写在最后
LayerX 的这个发现不只是一个 CVE。它暴露了整个 AI Agent 工具链生态在安全设计上的系统性不足。
当我们兴奋地给 AI Agent 接入越来越多工具的时候,有没有认真想过:这些工具之间的信任边界在哪里?谁来负责确保一个日历事件不会变成一条攻击链?
Anthropic 说这是用户的责任。但用户根本不知道这个风险存在。
这个矛盾,才是整个事件中最值得关注的地方。
参考来源:

