Anthropic Claude Code曝出五个月沙箱绕过漏洞,开发者核心凭证竟成“透明文本“

当越来越多的程序员习惯在终端里敲下 claude 命令,让AI助手自动补全代码、批量重构项目时,很少有人会去想:这个被寄予厚望的"编程搭档",会不会在背地里悄悄打开一扇通往外界的暗门?
现实往往比设想更荒诞。安全研究员关傲南近期公开披露的一起案例,直接把Anthropic推到了风口浪尖——Claude Code这款备受开发者追捧的AI编码助手,其网络沙箱机制存在致命的SOCKS5主机名空字节注入缺陷。从2025年10月20日沙盒正式发布算起,整整五个半月、横跨约130个版本,攻击者都能借助这个漏洞绕过所有出站流量限制,像逛自家后花园一样窃取目标系统里的AWS凭证、GitHub令牌、源代码乃至环境变量。
一场持续百余版本的"静默裸奔"
漏洞的影响周期长得令人咋舌。它从v2.0.24版本一路潜伏到v2.1.89,几乎贯穿了Claude Code沙箱功能的整个早期生命周期。直到2026年4月1日,Anthropic才在v2.1.90版本中悄然打上补丁,而发布说明里对此只字未提——没有安全公告,没有漏洞编号,更没有向用户发出任何风险警示。
这种"静默修复"的做法并非首次。早在2025年11月,另一个沙箱绕过漏洞CVE-2025-66479就曾被悄悄修补。那个问题的根源在于配置解析逻辑写反了:allowedDomains: [] 本意为禁止所有外部连接,代码却将其误判为"允许一切"。讽刺的是,v2.0.55版本虽然堵上了这个口子,却完全没察觉到旁边还有个更隐蔽的SOCKS5注入通道正敞开着大门。

空字节里的"狸猫换太子"
这个漏洞的精妙之处,在于利用了JavaScript与底层C库之间一个细微的解析差异。
Claude Code的沙箱会把所有出站流量导进SOCKS5代理,再用JavaScript的 endsWith() 方法核对目标主机名是否在用户白名单内。比如当你只允许访问 *.google.com 时,过滤器会检查域名是否以 .google.com 结尾。这看起来没毛病,直到攻击者构造出这样一个畸形地址:attacker-host.com\x00.google.com。
JavaScript读到这串字符时,空字节 \x00 被当作普通字符串的一部分,于是末尾的 .google.com 顺利通过了校验。然而当数据流到系统底层的C库函数 getaddrinfo() 那里,libc遵循的是C字符串惯例——遇到空字节就直接截断,只认前面的 attacker-host.com。一来一回,恶意域名披着合法外衣溜出了沙箱,而用户还以为流量始终被锁在可信范围内。
更棘手的是,有问题的代码直接把原始字节喂给了匹配器,既不做空字节过滤,也不限制长度,更谈不上字符白名单。直到sandbox-runtime 0.0.43版本,开发团队才补上一个 isValidHost() 包装器,把 \x00、百分号、CRLF以及其他非DNS字符统统挡在门外。

当快速注入遇上沙箱绕过,危害被成倍放大
单纯的外联绕过或许还没那么可怕,真正让安全圈捏一把汗的,是这个缺陷与"快速注入攻击"叠加后的化学反应。
想象一下这样的场景:你在GitHub上随手克隆了一个热门项目,README里藏着一段精心编排的恶意指令;或者你在Stack Overflow复制了一段代码注释,里面嵌入了触发Claude Code执行特定操作的暗语。在v2.1.90之前的版本里,这些隐藏在文本中的payload不仅能驱动沙箱内的代码运行,还能利用SOCKS5绕过机制把窃取的成果神不知鬼不觉地传出去。
攻击者到底能拿走什么?清单长得让人头皮发麻。~/.aws/ 目录下的AWS凭证、~/.config/gh/ 里的GitHub令牌、云实例的元数据接口 169.254.169.254、企业内部API、局域网资源,甚至是模型调用的API密钥——全部通过原始SOCKS5隧道直接外发,标准的HTTP出口日志根本留不下痕迹。

漏洞披露后的"冷处理"与行业隐忧
关傲南将这一问题提交到HackerOne平台后,得到的回应却是"重复报告",案件编号#3646509最终被关闭。截至2026年5月10日,这个SOCKS5绕洞仍未被收录进NVD漏洞库,GitHub安全咨询数据库里也没有它的身影。目前沙箱相关唯一有正式编号的,还是去年那个CVE-2025-66479,而且它的CVE对象是sandbox-runtime,并非Claude Code本体。
翻看Anthropic的Claude Code安全公告页面,沙箱漏洞一栏至今空空如也。对于一家以AI安全研究著称的公司而言,这种处理方式难免引发外界对其漏洞响应透明度的质疑。开发者在不知情的情况下,可能已经在存在缺陷的版本上运行了数月之久,而他们的凭证系统或许早已暴露在风险之中。
现在该做什么?别只盯着版本号
如果你正在使用Claude Code,第一件事就是执行 claude --version 确认版本号。只要是v2.1.90或更高版本,SOCKS5注入通道理论上已被封闭。但这只是起点,而非终点。
对于那些在2025年10月20日到升级日期间、曾经配置过通配符允许列表并处理过敏感凭证的用户,仅仅更新软件远远不够。你需要回溯这段时间内的SOCKS中介出站流量日志,排查是否有异常外联行为,并果断轮换所有可能被触达的密钥与凭证。沙箱从来都不是铜墙铁壁,把它当作纵深防御体系中的一环尚可,若将其视为唯一的安全边界,迟早会付出代价。
关傲南在分析末尾抛出了一个值得整个行业深思的观点:厂商提供的沙箱机制应当被看作辅助防线,真正的出口控制必须在代理程序无法触及的网络层或虚拟机管理程序层面强制执行。AI工具跑在开发者的本地环境里,天然拥有读取文件系统的便利,一旦网络隔离再出现裂缝,所谓的"安全沙箱"不过是层一捅就破的窗户纸。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)