您正在访问亚汇网香港分站,本站所提供的内容均遵守中华人民共和国香港特别行政区法律法规。

为省 Token 牺牲安全:Claude Code 泄露源码被挖出首个高危漏洞

文 / 小亚 2026-04-07 08:39:04 来源:亚汇网

AdversaAI安全研究人员在对这份源码进行审查后发现,ClaudeCode存在一个致命高危漏洞——当其处理超过50条子命令的复合命令时,会静默绕过用户配置的拒绝规则(denyrules)。例如,开发者配置了“永远不要运行rm”,单独运行rm时会被阻止;但如果在rm前面加上50条正常命令(例如50个true命令),ClaudeCode就会默认绕过安全审查而直接执行rm。该漏洞位于bashPermissions.ts文件的第2162至2178行。正常情况下,开发者可以在ClaudeCode中配置“禁止运行curl”或“禁止运行wget”等规则,以防止数据外泄。然而研究发现,当一条shell命令通过&&、||或;连接了超过50个子命令时,ClaudeCode会跳过所有逐子命令的安全分析,包括上述安全规则检查。至于其为何存在,Anthropic内部工单CC-643曾记录一个性能问题:对复合命令中的每个子命令逐一进行安全规则分析会导致UI卡顿。为了解决这一问题,工程师将分析上限设为50个子命令,超出部分则回退到“询问用户”模式。代码注释写道:“50条已经很慷慨了:正常用户命令不会拆分得那么散。超出上限后我们回退到‘询问’(安全默认行为,因为我们无法证明安全,所以提示用户)。”这个假设对人类编写的命令是成立的。开发者确实很少会手动输入50多条命令。但它没有考虑到AI提示词注入攻击——恶意项目文件可以指示AI生成一条看似正常的超长管线,将恶意载荷放在第51个及之后的位置。这一缺陷已影响超过50万名开发者,且攻击路径极其简单:只需一个精心构造的开源仓库,就能窃取SSH密钥、云凭证和APIToken。最令人震惊的是:Anthropic其实已经研究出解决方案,他们新开发的tree-sitter解析器无论命令长短都能正确检查安全规则。代码已经写好,已经测试过,就放在同一个仓库里,但从未被应用到实际交付给客户的产品中。值得庆幸的是,该问题已得到修复。根据4月4日的最新公告,Anthropic在最新发布的ClaudeCodev2.1.90中似乎解决了这一问题,官方将其称为“解析失败回退导致的denyrules降级”。亚汇网注:ClaudeCode是Anthropic基于终端的AI编码助手,允许开发者直接从命令行与Claude交互,可编辑文件、执行Shell命令、搜索代码库、管理Git工作流,并编排复杂的多步骤开发任务。它是Anthropic增长最快的产品,据估计从企业客户处产生的年经常性收入达25亿美元(现汇率约合172.31亿元人民币)。ClaudeCode包含一套权限系统,用户可以配置拒绝规则(硬阻止特定命令)、允许规则(自动批准特定命令)和询问规则(始终提示批准)。例如,开发者可能配置:json{"deny":["Bash(curl:*)","Bash(wget:*)"],"allow":["Bash(npm:*)","Bash(git:*)"]}这告诉ClaudeCode:“永远不允许curl或wget(防止数据外泄),但自动允许npm和git命令(常用开发工具)。”权限系统是AI智能体与开发者系统之间的主要安全边界。企业安全团队正是通过这个机制,对拥有开发者工作站完整Shell访问权限的AI工具实施安全策略。当这个机制无声失效时,开发者就失去了安全网,也无法知道自己的安全策略没有生效。这并非一个仅存在于理论上的漏洞。攻击路径是实际、现实且可操作的。研究团队提醒:不要依赖拒绝规则作为安全边界,限制ClaudeCode的shell访问权限至最小必要范围,监控开发者工作站的异常出站连接,在运行ClaudeCode之前审计任何仓库中的CLAUDE.md文件。AdversaAI研究团队表示,他们正在继续分析泄露代码库中的更多发现,这份报告仅覆盖了第一个也是最关键的发现,后续将有更多披露。广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,亚汇网所有文章均包含本声明。

相关新闻

加载更多...

排行榜 日排行 | 周排行