Anthropic Claude Code源代码意外泄露:npm打包失误暴露512,000行闭源代码

张开发
2026/4/3 14:50:31 15 分钟阅读
Anthropic Claude Code源代码意外泄露:npm打包失误暴露512,000行闭源代码
2026年3月31日Anthropic公司一名员工在向npm公开注册账户发布AI编程工具Claude Code版本2.1.88时意外捆绑了源映射source map文件导致该闭源代理式编码工具的完整专有源代码完全暴露。泄露文件包括一个约59.8MB的cli.js.map它指向Anthropic Cloudflare R2存储桶中的zip归档包含近1,900个TypeScript文件和超过512,000行代码。该版本随后被从npm下架但代码已被广泛镜像到GitHub仓库。AI与网络安全专家警告此类人为打包错误在高价值AI工具中可能引发严重供应链风险和知识产权问题。“被泄露的源映射会带来严重安全隐患”美国网络安全与AI专家Joseph Steinberg表示“攻击者可利用源映射重构原始源代码了解其完整工作原理。代码中的任何机密信息如硬编码API密钥都将面临风险所有逻辑实现同样如此。攻击者可能发现逻辑漏洞并加以利用。”Anthropic发言人回应称“事件不涉及敏感客户数据或凭证泄露。这是一次人为错误导致的发布打包问题并非安全漏洞。我们正在实施措施防止类似事件再次发生。”据报道类似源映射打包问题此前已发生过包括2025年早期版本。源映射文件的安全隐患源映射.map文件原本是调试工具用于将生产环境的压缩/打包代码映射回原始源代码便于定位崩溃时的堆栈跟踪。但在公开npm包中包含它等同于向公众开放完整源代码。开发者Kuber Mehta在其博客中指出构建工具链如Claude Code使用的Bun打包器默认生成源映射文件。这些文件以JSON格式存储了每个文件、每条注释、内部常量以及系统提示等完整信息。任何执行npm pack或浏览包内容的人均可获取。“常见错误几乎总是相同的忘记在.npmignore中排除*.map或未在生产构建中禁用源映射生成。以Bun为例除非明确关闭否则默认会生成。”Mehta解释道。Steinberg将源映射比作“压缩代码的人类可读地图”它能精确指示可执行代码的哪一部分对应源代码的哪段指令。没有源映射错误往往只能定位到大段代码有了它则可精确定位。本周二凌晨安全研究员Chaofan Shou在X平台发文曝光“Claude Code源代码通过npm注册表中的map文件泄露”并附上文件链接。该帖迅速获得数千万浏览量代码随后被镜像并分析。开发者的常见失误及防范建议安全编码培训师Tanya Janca表示在生产包中遗留源映射文件是“开发者常犯的典型错误”。鉴于Claude Code涉及极高知识产权价值且恶意分子可直接阅读源代码寻找漏洞无需逆向工程本次事件严重性远超一般情况。Janca的防范建议适用于所有npm/JavaScript/TypeScript项目在构建/打包工具中禁用源映射生成。在.npmignore或package.json的files字段中显式排除.map文件。在CI/CD管道中将.map文件排除在发布产物之外。严格区分调试构建与生产构建——甚至注释也可能包含敏感系统提示或内部逻辑。“一个简单的配置疏忽就可能让整个代码库暴露。”她强调。Claude Code Source Code Is Online: 512,000 Lines Exposed Due to npm Error关键架构层的暴露风险Arctic Wolf技术与服务总裁Dan Schiappa评论称任何源代码或系统级逻辑暴露都意义重大因为它直接揭示控制机制的实现方式。在AI系统中这一风险尤为突出Claude Code作为代理式工具暴露的内容包括工具系统约40,000行支持文件读写、终端执行等、查询引擎约46,000行负责LLM API调用与编排、多代理协作可生成子代理或swarm执行复杂任务以及双向IDE通信层等。“编排逻辑、系统提示和工作流实质上定义了系统运行方式。若这些暴露攻击者更易识别弱点、发起供应链攻击或操纵结果。网络犯罪分子仍在探索利用AI的最佳方式任何高价值工具都可能成为目标。”Schiappa警告。总结与行业启示此次事件再次凸显AI公司在构建高价值闭源项目时的风险即使是“人为错误”也可能导致不可逆的知识产权与安全影响。Anthropic已移除问题版本并加强打包流程但代码已被社区广泛研究可能加速竞争、创新同时也放大潜在攻击面。开发者社区建议审视构建管道、强制生产环境排除调试产物并采用原生安装器而非npmAnthropic推荐方式以降低供应链风险。对于整个AI行业这是一次生动提醒——在追求代理能力与生产级体验的同时安全配置绝不能掉以轻心。

更多文章