研究者发现 Claude 通过邮件交互可能产生代码执行风险,展示了 AI 工具的安全边界问题。对想在生产环境使用 AI 工具的开发者有警示价值。
作者:Golan Yosef,Pynt 首席安全科学家兼联合创始人(7 月 15 日)。本文首发于 SecurityBoulevard.com。
你不一定非得找到一个存在漏洞的应用,才能成功实施攻击。有时候,只需要一封精心设计的电子邮件、一个 LLM Agent,以及几个看起来“无害”的插件。
下面讲述的是:我如何利用一封 Gmail 邮件,通过 Claude Desktop 触发代码执行,以及 Claude 自己(!)又是如何帮助我策划这次攻击的。
MCP Host、Agent 和数据源各自具备的能力与彼此之间的信任关系,一旦组合起来,就可能悄无声息地引入无人预料的攻击面。每个 MCP 组件单独来看都可以是安全的,没有任何一个组件本身存在漏洞;真正脆弱的是整个生态系统。
于是,我决定用一个真实案例来验证这个理论:
故事始于我精心编写这样一封邮件,并要求 MCP Host——Claude Desktop,也就是 Anthropic 的本地 LLM Host 应用——读取它。
邮件确实被读取了,但攻击没有奏效。Claude 反而警告我,这封邮件很可能是一次“钓鱼”攻击。于是,我询问 Claude,究竟有哪些迹象触发了这项警告,并进一步问它:自己是否可能中招。
Claude 向我保证,这类攻击“几乎不可能成功”,因为它在设计和训练时,就已经具备了检测此类问题的能力。
我继续追问,要求它探索哪些场景可能让攻击得逞,而它也很乐意地描述了这些情况。
接下来,我要求它针对这些场景测试自己。
事情从这里开始变得有趣。我“提醒”Claude,它的上下文会在新会话中重置。每次新的对话都是一张白纸——用 Claude 自己的话说,就是“全新的我”。
于是,我接受了 Claude 的建议:由 Claude 来编写邮件,用它测试“新的 Claude”,然后我再把测试结果反馈给负责规划的“planning-Claude”。
每次攻击失败后,Claude 都会分析失败原因,并进一步改进邮件内容:
我们实际上运行了一个真正的反馈循环,由 Claude 反复迭代攻击策略,设法绕过它自己的防护机制。
需要明确的是:这次攻击的任何环节,都没有利用任意一个 MCP server 自身的漏洞。
风险来自以下要素的组合:
这才是现代攻击面:问题不只在于各个组件,更在于它们共同形成的组合。由 LLM 驱动的应用,建立在层层委托、Agent 自主性和第三方工具之上。真正的危险就藏在这里。
在我们成功实现代码执行之后,Claude 很负责任地建议我们向 Anthropic 披露这一发现。它甚至还提议共同署名撰写漏洞报告。
没错,是真的。(见下图)
图 4:Claude 建议向 Anthropic 提交安全漏洞报告,并在报告中“签名”。
这不只是一次有趣的实验,更是一个警告!
它揭示了 GenAI 的两大主要风险:一是生成攻击手段的能力,二是这些系统本身所具有的脆弱性。
在传统安全领域,我们习惯从孤立组件的角度思考问题。而在 AI 时代,上下文决定一切。也正因如此,我们才在 Pynt 构建 MCP Security,帮助团队识别危险的“信任—能力”组合,并在这些风险演变成隐蔽的链式攻击之前将其化解。
使用 Pynt MCP Security,为未来做好准备。