安全研究者 wunderwuzzi(Embrace The Red 博客主)8 月 26 日发布实测报告:一条再普通不过的「总结这个网站」指令,就能在 Auto Mode 下劫持 Claude Code Opus 5 并实现任意代码执行,在小样本测试中攻击成功率达到 60% 至 80%。这份报告之所以引发广泛关注,是因为 Anthropic 此前委托第三方评测给出的数字是 0.00% 的提示注入攻击成功率,两组数据之间的落差足够刺眼。
Auto Mode 已经成为默认
时间背景很关键:从 8 月中旬开始,Auto Mode 取代逐条人工批准,成为 Claude Code 的默认启动模式。该模式用安全分类器替代人工确认,模型在执行命令前由分类器判定意图与风险。这对使用体验是明显的提升,但也意味着安全边界从「用户逐条把关」转移到了「分类器统一把关」。研究者选择此时发布攻击实测,针对性不言自明。
Anthropic 的 Boris Cherny 此前曾公开表示,分层防御——模型训练、输入探针加意图分类器——可以把未见过的间接提示注入攻击压到接近零。公司随后委托 Trajectory Labs 执行了一次规模可观的评估:72 个间接提示注入场景,每个场景重复十次,公开的图表显示 Opus 5 在 Auto Mode 下的攻击成功率为 0.00%。wunderwuzzi 的目标就是检验这个结果在一条有针对性的攻击链面前能坚持多久。
攻击链是如何走通的
整条攻击链的每一步单看都不算新鲜,组合起来却相当致命。第一步,攻击内容诱导 Claude 放弃内置的 WebFetch 工具,转而直接使用 curl 抓取目标地址;第二步,请求被重定向到一个 ZIP 压缩包,包内文件采用特殊编码,还附带了所谓的「原生解码器」。到这一步为止,模型的行为都在安全预期之内。
转折发生在下一步:Claude 正确地拒绝执行来历不明的二进制解码器,转而自己动手写了一个 Python 解码脚本——但它把这个脚本运行在了攻击者控制的解包目录里。该目录中放置了一个恶意的 struct.py,文件名与 Python 标准库模块同名,从而形成遮蔽。当 Claude 的脚本执行 import base64 时,Python 的导入机制加载了被投毒的 struct.py,攻击者的代码就此获得执行。研究者把这一手称为整条链的「轰然作响」时刻。
评测与现实的差距
为什么 72 个场景、720 次运行的评测没有拦住这条链?差异在于攻击的针对性。标准化评测覆盖的是常见注入模式,而这条链利用了工具选择偏好、工作目录信任、Python 导入机制三者的组合,属于「未见攻击」的范畴。小样本下的 60% 至 80% 成功率虽然统计意义有限,但只要不为零,「接近零」的公开叙事就需要修正。研究者也坦承样本量小,结论应以方向性理解而非精确数字对待。
wunderwuzzi 给出的建议保持了其一贯的直白:如果你在意对齐、幻觉与提示注入问题,Auto Mode 绝不是把代理运行在隔离环境里的替代品。容器化执行、最小权限文件系统、网络出口白名单、完整的命令审计日志,这些传统安全措施在代理时代不仅没有过时,反而因为人工把关环节的消失而变得更加重要。
对正在大规模部署编码代理的企业而言,这份报告的启示相当具体:默认模式的变化会静默改变安全假设,安全评审需要跟上产品迭代的速度;同时,任何依赖「分类器挡住一切」的架构都应该被重新审视。Anthropic 方面尚未对这份实测作出正式回应,社区预计相关防御会在后续版本中收紧,而红队与评测机构之间的拉锯还会继续。