Claude Code 自动模式被曝可被提示注入绕过
Simon Willison2026-08-29 05:02
Anthropic 近期将 Claude Code 的自动模式设为默认,并强调其在防御提示注入攻击方面的有效性。不过,提示注入研究者 Johann Rehberger 披露了一种针对该模式的攻击方式,并称该攻击在测试中约有 80% 的成功率。
攻击思路
该攻击通过诱导 Claude Code 下载并解压一个 ZIP 压缩包实现。随后,代理会执行一段看似正常的代码,例如导入 Python 标准库中的 base64。
问题在于,解压后的目录中包含一个本地 struct.py 文件。Python 在导入模块时可能优先加载当前目录下的同名文件,因此在执行 import base64 时,可能间接导入并执行这个本地 struct.py,从而触发恶意代码。
也就是说,攻击并不一定需要让代理直接运行明显可疑的命令,而是利用语言运行时的模块解析机制,把危险行为隐藏在看似普通的导入操作中。
自动模式的失效场景
更值得注意的是,Rehberger 称在部分运行中,Claude 发现系统已经被入侵后,尝试终止恶意进程,但自动模式拒绝了清理命令。
这意味着安全机制可能出现一种反直觉的失败:
- 它允许了恶意进程被创建;
- 当代理意识到问题并尝试补救时;
- 它又阻止了用于清理或终止进程的命令。
这类情况暴露出一个现实风险:仅依赖模型或分类器判断命令是否安全,可能不足以应对经过设计的对抗性输入。
对使用编码代理的启示
如果编码代理可能接触到不可信内容,尤其是来自外部仓库、压缩包、网页、Issue、PR 或用户提交的文件,仅靠自动模式并不可靠。更稳妥的做法包括:
- 将无人值守的编码代理运行在容器、虚拟机或操作系统沙箱中;
- 限制网络出站访问;
- 对代理行为进行监控;
- 不要把主目录、SSH 密钥、云服务凭据等敏感资源暴露给代理运行环境。
结论
这起案例再次说明,提示注入和工具调用风险不能只通过“更聪明的模型判断”解决。对于具备文件读写、命令执行、网络访问能力的 AI 编码代理,隔离运行环境和最小权限原则仍然是基础安全要求。