一次包装失误,炸出AI行业最尴尬的安全笑话

3月31日,Anthropic在发布Claude Code 2.1.88版本时,顺手把一份59.8MB的源代码地图文件塞进了npm包。

这意味着什么?

AI配图

512,000行未混淆的TypeScript代码,1,906个文件,全部明文。完整的权限模型、每一个bash安全验证器、44个未发布的功能开关、下季度才发布的模型代号——全部暴露。

安全研究员Chaofan Shou在UTC时间4:23分把发现发到了X上。几小时后,GitHub上已经全是镜像仓库。

这不是什么"潜在风险"。这是正在进行时。

Anthropic后来承认是"人为打包错误"。没有泄露客户数据,没有泄露模型权重。但 containment(围堵)已经失败了。

WSJ报道说Anthropic紧急发了DMCA下架函,一度干掉了8000多个仓库和fork。结果?下架范围超出预期,官方又不得不撤回恢复了一部分。

但代码已经散开了。

有意思的是,同一天——就在这59.8MB泄露出去之前的几小时,npm官方仓库里出现了一个恶意版本的axios包,里面藏着远控木马。任何在3月31日00:21到03:29之间通过npm安装或更新Claude Code的团队,可能同时把这包"双料惊喜"拽进了自己的开发环境。

这时间点选得,简直像故意的。

Gartner在同一天的First Take里说了一句话很重:Anthropic产品能力和运营纪律之间的差距,应该让所有企业重新审视AI开发工具供应商。

Claude Code是他们软件工程客户里讨论度最高的AI编码助手。

这是五天内的第二次泄露。就在前几天,一个CMS配置错误已经暴露了近3000个未发布的内部资产,其中包括一个叫Claude Mythos的未发布模型代号。

Gartner把这波3月事件称为"系统性信号"。

那512000行到底泄露了什么

AI配图

先说清楚:这不是什么聊天界面的wrapper代码。

这是Claude Code的agentic harness——也就是那套让AI能调用工具、管理文件、执行bash命令、编排多agent工作流的核心架构。WSJ打了比方:这就像缰绳,让骑手能控制马。

现在这根缰绳的说明书,人手一份了。

具体拆解:

一个46,000行的query engine(查询引擎),管着三层压缩的上下文管理,协调40多个工具,每个工具自带独立schema和细粒度权限检查。

2,500行bash安全验证器,对每条shell命令跑23道检查,涵盖被禁的Zsh内置命令、Unicode零宽字符注入、IFS空字节注入,还有一个在HackerOne审计中发现并记录的畸形token绕过。

Fortune说,竞争对手和一堆创业公司现在有了一张详细的路线图,可以直接克隆Claude Code的功能,不用再自己逆向工程。

三个攻击路径,现在可以实战了

技术分析来自agentic AI安全公司Straiker的Jun Zhou。人家把三条攻击路径明明白白画出来了,而且强调——之前是理论,现在是实战,因为实现细节现在完全可读了。

第一条:Context Poisoning(上下文投毒)

Claude Code用四阶段级联来管理上下文压力。MCP工具结果从来不走microcompacted。Read工具结果直接跳过预算分配。autocompact prompt告诉模型:保留所有非工具结果的用户消息。

所以?一篇克隆仓库里的CLAUDE.md文件里藏一段恶意指令,能在compaction里活下来,通过summarization被"洗白",最后变成模型眼里的"合法用户指令"。

AI配图

模型没有被jailbreak。它很配合,在执行它认为合法的指令。

第二条:Sandbox Bypass(沙箱绕过)

三条独立的parser处理bash命令,每个对边缘情况的处理不一样。源码里记录了一个已知gap:某个parser把回车符当成单词分隔符,bash不这么干。

Alex Kim的审计发现,某些validator会提前返回allow决策,直接跳过后面所有检查。源码里甚至有明确警告:过去这个pattern是可以被利用的。

第三条:组合拳

上下文投毒让一个"配合"的模型,去构造那些能钻过安全validator空子的bash命令。

防御方的心理模型假设的是:对立模型 + 配合用户。

这个攻击把两个都反过来了。模型是配合的,上下文被武器化了。输出的命令看起来就像一个正常的开发者会批准的指令。

CrowdStrike CTO Elia Zaitsev在RSAC 2026上接受我采访的时候说了句大实话:

"别因为懒就给了agent所有权限。只给干活需要的那个权限。"

他说开放式的编码agent特别危险,因为它们的power来自于宽泛的权限。

"人们想给它们一切。如果你企业在搞agentic应用,别这么干。要非常窄的作用域。"

他那个观点被泄露的源码验证了:

"你可能能骗agent干坏事,但agent不行动之前,坏事不会发生。"

这正是Straiker分析里描述的:context poisoning让agent配合,伤害在它通过validator链条的缝隙执行bash命令时发生。

还有一个更棘手的问题:IP归属

Gartner抓住了一个大部分报道没注意的细节。

Claude Code的代码,90%是AI生成的——这是Anthropic自己公开说的。

现行美国版权法要求"人类 authorship"。最高法院2026年3月拒绝重新审视这个标准。

那么问题来了:这512,000行泄露的代码,知识产权保护是打折扣的。

每个在生产环境跑AI生成代码的组织,都面临这个没解决的IP暴露问题。

Enkrypt AI的CSO Merritt Baer( former AWS安全负责人)说得更直接:

"很多团队还没在问的问题,是关于衍生IP的。模型提供商能不能保留embeddings或reasoning traces?这些算不算你的知识产权?"

90%的Claude Code源码现在是AI生成的而且公开了。对任何在生产环境跑AI写代码的企业来说,这问题不再是理论问题了。

数据在说话:AI辅助代码正在以两倍速率泄露秘密

GitGuardian 3月17日发布的《2026 Secrets Sprawl报告》扔了几个数字:

  • Claude Code辅助的commit,泄露secret的比例是3.2%
  • 全部GitHub public commit的基准是1.5%
  • AI服务凭证泄露同比暴涨81%,达到1,275,105次检测
  • 24,008个unique secrets在MCP配置文件里被找到,其中2,117个确认是live、有效的凭证

GitGuardian说,这个升高比例反映的是人类工作流被AI速度放大的失败,不是简单的工具缺陷。

Gartner在跟踪的那个运营模式

Feature velocity(功能速度)让暴露面扩大。

Anthropic 3月份发了十几版Claude Code更新,推出了自主权限委托、手机远程代码执行、AI调度的后台任务。每个新能力都在拓宽运营表面。

同一个月份,推出了这些能力,然后泄露了它们的实现细节。

Gartner的建议很具体:

要求AI编码agent供应商展示和其他关键开发基础设施同等的运营成熟度:公开的SLA、公开的运行时间历史、文档化的事件响应政策。

架构provider无关的集成边界,做到30天内能换供应商。

Anthropic在十几起3月事件里只发了一篇postmortem。第三方监测比Anthropic自己的状态页早15-30分钟发现故障。

这家公司正骑着这个产品冲刺3800亿美元估值和今年可能的IPO。现在它面对的是一场8000次DMCA下架都没赢的containment战。

五件事,安全负责人这周就得干

  1. 审计所有克隆仓库里的CLAUDE.md和.claude/config.json。 Context poisoning通过这些文件是已记录的攻击路径,有可读的实现指南。Check Point Research发现开发者天然信任项目配置文件,审查时不会像对应用代码那样仔细。
  2. 把MCP服务器当不受信任的依赖。 固定版本,用之前审计,监控变更。泄露的源码暴露了40+内置工具的确切接口契约。
  3. 限制宽泛的bash权限规则,部署pre-commit secret扫描。 一个团队一周100个commit,按3.2%泄露率算,统计上会暴露3个凭证。MCP配置文件是新表面,大部分团队还没扫。
  4. 向你的AI编码agent供应商要求SLA、运行时间历史、事件响应文档。 Gartner指引:30天能换供应商的能力。
  5. 对AI辅助代码实施commit provenance验证。 泄露的Undercover Mode模块能把AI attribution从commit里剥离,而且force OFF是做不到的。被外部build消除掉了。受监管行业需要考虑任何编码agent的披露政策。

源码地图泄露是商业安全工具能捕获的经典失败类别。Apple和身份验证提供商Persona过去一年也栽在同样问题上。机制不新鲜。目标是新鲜的。

Claude Code一个单品,预计给Anthropic贡献25亿美元的年化收入。这公司现在估值3800亿美元。它的完整架构蓝图正在那些承诺永不删除的镜像上流通。

你说,这是安全事件,还是开源社区给Anthropic强行"开源"了一次?

【MiniMax-M2.5锐评】:Anthropic用DMCA删了8000个仓库,但删不掉512000行已经在全世界服务器上跑着的代码——这波啊,这波是"物理删除"失败现场。

参考链接:
https://venturebeat.com/security/claude-code-512000-line-source-leak-attack-paths-audit-security-leaders