[TOOLS] 3 min readOraCore Editors

Claude Code泄露后,代码库露出什么

Claude Code源码意外外泄后,社区挖出51万行代码、26个隐藏指令和6级安全验证,细节很扎眼。

Share LinkedIn
Claude Code泄露后,代码库露出什么

7小时,51万行代码,1906个源文件。Claude Code 的一次发布失误,把这些内容直接摊在了公开视野里。更离谱的是,这次泄露暴露的不是几段前端脚本,而是一整套本地 CLI 的内部实现、未发布功能和安全流程。

这类事故之所以让开发者格外敏感,是因为 Claude Code 不是普通网页应用。它跑在用户机器上,最值钱的交互逻辑、权限判断、任务编排,很多都在客户端里完成。源码一旦可读,竞争对手看到的就不是“界面长什么样”,而是“它怎么想、怎么做、怎么控风险”。

一次 source map 失误,后果有多大

Get the latest AI news in your inbox

Weekly picks of model releases, tools, and deep dives — no spam, unsubscribe anytime.

No spam. Unsubscribe at any time.

这次外泄的导火索,是一个约60MB的 source map 文件被打进了 npm 发布包。source map 本来用于调试,把压缩后的代码映射回原始源码;它不该跟正式版本一起分发。可一旦它出现在包里,原本难读的构建产物就能被还原成接近原始工程的结构。

Claude Code泄露后,代码库露出什么

对 Web 前端来说,这通常意味着样式、交互和部分业务逻辑被看见;对 Anthropic Claude Code 这种本地编程工具来说,情况严重得多。因为它的大量能力都在客户端侧完成,尤其是命令执行、文件读写、上下文压缩、会话管理这类模块,几乎就是产品本体。

  • 泄露规模:约51万行代码
  • 源文件数量:1906个
  • 泄露文件体积:约60MB source map
  • 社区备份库短时间内获得2万+星标

从开发者角度看,这件事最值得复盘的不是“谁先把仓库镜像走了”,而是为什么一个调试文件能直接把产品内部结构掀开。答案很简单:发布流程里多了一层不该存在的构建产物,安全边界就被自己打穿了。

隐藏功能比想象中多

代码一公开,社区就开始做静态分析和仓库镜像。有人专门搭了 ccleaks.com 来整理发现,陆续挖出35个编译时特性标志、120多个隐藏环境变量、200多个远程控制开关。里面最吸睛的,不是某个小修小补,而是一批看起来已经接近产品化的新模块。

其中一个最有传播度的功能叫 Buddy。它是一个终端里的电子宠物系统,走的是 Tamagotchi 风格,能在命令行里显示不同物种的 ASCII 形象。代码里写了18种物种、6种稀有度,普通款占60%,传奇款只有1%。每个用户的宠物还会根据账户 ID 唯一生成,听上去像是为终端用户准备的轻量陪伴功能。

“A release is only as good as its last automated test.” — Kent Beck

这句话出自 Kent Beck,虽然他说的不是这次事故,但很贴切:当发布流程里有一个环节没被测试覆盖,后果往往不是一个小 bug,而是一整包不该公开的内容。Claude Code 的泄露正好说明,构建产物检查和发布前扫描不能只靠人眼。

除了 Buddy,代码里还出现了几个更偏生产力方向的模块。它们大多还没完整上线,但轮廓已经很清楚:

  • Kairos:持久化助手模式,目标是跨会话长期记忆
  • Ultraplan:基于更强模型做最长30分钟的深度任务规划
  • 多 Agent 协调:同时跑多个独立实例处理并行任务
  • 跨会话通信:多个 Claude 会话之间可以互发消息
  • 守护进程模式:让会话管理器像系统服务一样后台运行

这些功能说明 Claude Code 的路线很明确:它不想只做一个“会写命令的聊天窗口”,而是想把会话、记忆、规划和并行执行揉成一个本地工作台。问题在于,路线图被提前摊开之后,外界也能更快判断它到底在往哪走。

安全架构很硬,代码质量却不均匀

如果只看安全设计,Claude Code 的内部工程确实有不少可取之处。每次工具调用都要先过六级权限验证,再进入四层决策管道做进一步检查。外部命令和插件还被放进独立沙箱里运行,输入输出也走了单独的非阻塞缓冲区,避免主会话被卡住。

Claude Code泄露后,代码库露出什么

更细一点看,它还会在上下文变长时自动压缩内容,把关键逻辑链条尽量保留下来。这个设计很像一套面向高频交互的本地代理系统:既要快,又要控风险,还要能在长会话里维持足够的状态感。单从架构图推测,团队对“AI 工具如何安全地碰系统”这件事想得不少。

但源码泄露的价值,恰恰在于它会把优点和缺点一起照亮。社区翻到 src/cli/print.ts 时,发现一个函数写了3000多行,嵌套层数达到12层,复杂度高得有点夸张。再往下看,情绪检测甚至没有上模型,而是直接用正则去匹配诸如 ffs、shitty 之类的词。

  • 工具调用前要经过6级权限验证
  • 执行前还有4层决策管道
  • 外部命令和插件在独立沙箱中运行
  • 上下文超阈值后会自动压缩
  • 单个函数长度超过3000行,嵌套12层

这组对比很有意思:一边是严肃的安全层和执行隔离,一边是让人皱眉的超长函数和朴素文本匹配。它说明大型 AI 工具的真实代码库,往往不是“全都优雅”或“全都混乱”,而是高标准和历史包袱混在一起。

Anthropic的安全叙事,被自己人打断了

这次泄露并不是孤例。就在几天前,Anthropic 还因为第三方 CMS 配置错误,导致近3000个内部资产被公开访问。那次事件里,外界看到了代号 Claude Mythos 的未发布模型相关材料,内部文件还把它描述成能力上的一次大幅跃升。

再往前看,Claude Code 在2025年2月首发时就已经出过一次 source map 泄露。也就是说,同类错误不是第一次发生,而是反复发生。对一家把 AI 安全写进公司叙事的企业来说,这种重复比单次事故更伤,因为它暴露的是流程问题,不只是技术失手。

下面这组数字,把问题说得更直白:

  • 3月26日:约3000个内部资产因 CMS 配置错误暴露
  • 几天后:Claude Code 发布包再度泄露 source map
  • 2月首发时:同类问题已经出现过一次
  • 本次外泄:1906个源文件、51万行代码可读

有人会说,模型权重、训练数据和用户数据都没有泄露,真正的核心没丢。这话有道理,但也只说对了一半。对于一款本地 CLI 工具,产品逻辑、发布节奏、隐藏开关和安全策略本身就是竞争资产。别人拿到这些信息,已经足够复刻一个相当接近的版本。

这次泄露真正说明了什么

Claude Code 的这次事故,不只是一次“包里多塞了个文件”的低级失误。它还说明,AI 工具一旦把更多能力放到本地,发布链路就会变得更脆弱:一个构建配置、一次打包疏忽、一个没删干净的调试产物,都可能把内部实现完整送出去。

更现实的判断是,接下来大家会更频繁地看到类似问题。原因很简单:AI Agent 已经开始参与写代码、跑测试、生成提交、管理发布流程,自动化程度越高,错误也越容易被批量放大。真正值得关注的,不是某家公司这次丢了多少行代码,而是它能不能把“不要把 source map 打进正式包”这种事情变成硬规则。

如果 Anthropic 想把这次事故变成一次有效修正,最该做的不是解释得更漂亮,而是把发布检查、产物扫描和权限审计做成不可绕过的门槛。否则下次被扒出来的,可能就不只是隐藏指令和电子宠物,而是更敏感的产品策略和执行细节。