三个月里,两个 AI 编程工具干了同一件事:把用户的代码库打包上传到云端,然后被外部研究者抓包。SpaceXAI(前身 xAI)的 Grok Build 一次上传了 5.1 GiB 用户数据1。智谱(Z.ai)的 ZCode 把 313MB 加密包直传阿里云 OSS2。两家公司的后续动作也几乎一样:先改默认行为,再道歉,最后把代码开源。
开源之后,质疑声确实小了。但把两边的仓库和第三方审计材料翻完,一个问题浮出来:开源给大家的是”可以审计”的资格,审计这件事本身,几乎没人真正做完。
两起事件,同一个剧本
| 时间 | 事件 |
|---|---|
| 2026-07-12 | SpaceXAI 服务端关闭默认数据保留,马斯克承诺删除此前上传的数据,一个字节不留13 |
| 2026-07-13 | 安全研究者 Cereblab 用 mitmproxy 抓包,证实 Grok Build CLI 静默上传 5.1 GiB 到 Google Cloud Storage 桶1 |
| 2026-07-15 | Grok Build 以 Apache 2.0 开源4,仓库当前 26,332 stars、4,948 forks5 |
| 2026-09-18 | ferstar 发布取证分析,ZCode 被证实上传整个工作区67;智谱当天致歉8 |
| 2026-09-19 | ZCode 推送 3.14.0,更新日志写”修复仓库百科异常上传的问题”2 |
| 2026-09-21 | ZCode 开源至 GitHub,一天内近 5000 star910 |
Grok Build 上传了完整 git 仓库、commit 历史和 .env 凭证文件,模型上下文真正需要的只有约 192 KB1。有用户在 home 目录运行后报告,上传内容包括”我的 SSH 密钥、密码管理器数据库、文档、照片、视频,所有东西”3。ZCode 那边更彻底:.git 历史、LFS 大文件缓存、reflog、部分全局开发配置全部打包。313MB 的加密包对应约 345MB 工作区,86.6% 是 .git 历史,清单列了 2411 个文件,一次全量上传连续失败 564 次还在重试2。
闭源的时候,疑惑解不开
闭源状态下,用户想搞清楚”我的数据去哪了”,会撞上三道锁。
第一道是文档。ZCode 隐私政策(2026-06-15 更新)写的是收集”您在对话中向我们提交的文本、文件和代码”,全文没有提工作区快照和 Git 历史上传11。用户读完协议,依然不知道自己的整个仓库会被发走。
第二道是开关。Grok Build 用户就算在设置里显式写了 disable_codebase_upload,上传照样发生1。ZCode 界面有两个开关,一个管”是否用于模型训练”,一个管”是否为快照建索引”。ferstar 测试的 3.12.3 版本里,两个都关掉,打包上传依然发生2。开关摆在界面上,开关后面没有接线。
第三道最绝:用户连自己数据的解密权都没有。ZCode 的上传链路是本地 AES-256-CTR 加密,RSA-OAEP-SHA256 信封包裹对称密钥,直传 OSS 不经过业务服务器。解密私钥全程只在云端,用户手里只有 encryptedDataKey,没有任何解密路径11。一位 HN 用户评论(经 UpXuu 转述)说得直白:“信封加密 + 服务端持有私钥,把本地备份变成了远程资产提取。”11
三道锁叠在一起,普通用户连”指控”的取证手段都没有。能站出来说话的,只有会抓包、会逆向的人。Cereblab 靠 mitmproxy 中间人抓包证实 Grok Build1,ferstar 完整取证了 ZCode 的上传行为67。这种孤勇者式的验证,本身就说明闭源系统里信任的成本有多高。
本节所述上传行为,均来自公开发表的第三方取证报告,以及厂商在公开渠道的说明与致歉,未加入任何未经证实的动机推断。
开源了,谁来审计
两家公司的开源表态都很漂亮。SpaceXAI 公告说,公开代码是 “build toward a robust and reliable harness” 最直接的方式4。智谱对封面新闻说:“开源是回应用户关切、提升产品透明度的重要一步,未来将邀请社区共同参与产品改进。”2
问题在于,代码放出来和代码被审计,中间隔着工作量。
Grok Build 仓库约 132 万行 Rust、77 个 crates(据 AgentScout 统计)12。ZCode 一次性倒入 6973 个文件、约 103 万行代码9。这个量级,全职安全研究员也读不完。Grok Build 开源在 Hacker News 冲上首页(287 分、97 条评论,UpXuu 转述)1311,热闹归热闹,真正动手审计的没几个人。
实际发生的审计全是点状抽查。NxCode 审计了 Grok Build 的数据面:代码里 GCS/S3 上传栈(upload/gcs.rs 等)还在,trace 上传被 stub 成返回 session_state_upload_unavailable。AuthManager::is_data_collection_disabled() 记录为 fail-open,allows_data_collection() 是 fail-closed,每条代码路径用哪个谓词,审计义务还挂在使用者身上14。ZCode 那边,ferstar 复核开源代码后确认上传链路已彻底清除2。
机构审计的情况更微妙。中国信通院技术评测确认 zcode-prod OSS 存储桶”云端零数据”、v3.14.0 已移除 Repo Wiki 功能与上传链路,绿盟科技确认存储桶及全部数据对象已删除。但截至封面新闻发稿,两家机构都没有公开审计报告和结论28。“已经审计过了”这句话本身,又是一个打不开的黑盒。
开源把审计资格发了出去,审计没有因此自动发生。
开源版和闭源版,是两个东西
第三层问题更隐蔽:仓库里的那个版本,和你实际在用的版本,对不上。
ZCode 的仓库只有 2 个 commit:一个空的 Initial commit,一个 “feat: open source” 巨型提交,一次性倒入全部代码9。内部开发历史被压平,上传功能什么时候写进去、怎么移除,从仓库里完全看不出来。一个因为打包用户全量 .git 历史出事的产品,自己开源时 git 历史是零。
代码也不完整。开源版里 Computer Use 只剩占位符。闭源版大量核心逻辑封装在 native 动态库 build/Release/ax_native.node 里,没随源码放出。native 库的逆向难度远高于 TypeScript,开源的 103 万行主要是外围绑定和界面层9。仓库里 CodingPlanStatusActions.tsx 还留着一句注释:“开源版不享受额度活动权益”9。从这句注释看,官网下载的闭源版和仓库里的开源版被区别对待。
Grok Build 是另一种形态。代码从内部 monorepo 周期性同步,根目录的 SOURCE_REV 记录内部 commit SHA。CONTRIBUTING.md 写明不接受外部 PR 和未经请求的补丁。GitHub issues 功能直接关闭(2026-07-26 查询时 has_issues: false),安全问题走 HackerOne,一般反馈走 Discord15。NxCode 还指出,公开快照只有一个提交,没有从 release tag 到二进制的出处链,你下载的二进制和仓库里的源码对不对得上,没人验证过14。
UpXuu 记录的第三方团队复现,说清了”修复”的实际形态:对致歉后的 3.12.3 做隔离复现,上传行为确实停了,但上传管线代码一行没删。upload-credential 端点构造、captureBeforePrompt、RepoWikiGenerator、信封加密实现完整保留。实际改动是开关默认值翻成 false、老配置强制迁移、Repo Wiki 服务端下线。修复发生在默认值与服务端配置层,理论上可以经服务端配置重新启用11。
ferstar 的结论结构值得记住:现在的代码能证明”现在的版本不再上传”,证明不了”过去的版本上传了什么、从什么时候开始上传”2。
两边放一起看
| 维度 | Grok Build | ZCode |
|---|---|---|
| 许可证 | Apache 2.04 | Apache 2.09 |
| 代码规模 | 约 132 万行 Rust、77 个 crates(据 AgentScout 统计)12 | 约 103 万行、6973 个文件9 |
| Git 历史 | 只有一个公开提交14 | 2 个 commit,开发历史压平9 |
| 社区入口 | issues 关闭、不收外部 PR,反馈走 Discord 和 HackerOne15 | issues 和 PR 创建功能关闭16 |
| 开源完整性 | 上传栈保留,trace 上传被 stub14 | Computer Use 仅占位符,native 核心库未放出9 |
| 第三方验证 | NxCode 数据面审计14 | ferstar 复核,信通院和绿盟审计但报告未公开2 |
社区讨论提出过可审计性的三要素:完整的提交历史、可复现构建(源码能编译出与官方分发一致的二进制)、公开的问题追踪入口9。对照这张表,两家一样都没给。
开源仍是唯一往前走的一步
批评完了,话要说回来。
闭源的时候,用户手里什么证据都没有。没有 ferstar 的取证,智谱 9 月 18 日那份致歉不会出现。没有 Cereblab 的抓包,Grok Build 的 5.1 GiB 上传到今天还在跑。闭源系统里,信任只能赌厂商自觉,而自觉在两起事件里都输了。
开源至少改变了举证结构。ferstar 复核代码后发现,检查点功能其实是纯本地调用 Git 命令做增量比对、元数据在本机,不依赖云端。这个发现反而推翻了官方”检查点回滚需要上传”的最初解释2。这种验证能力,闭源时代不存在。
后续动作也在往前走。智谱 MaaS 平台上线了”数据内容不留存”功能,承诺社区提及的代码数据没有留存、从未用于模型训练,还要建立常态化漏洞反馈机制、按严重程度给回报8。SpaceXAI 那边,开源后的 Grok Build 可以完全 local-first 运行,指向自己的本地推理4。
真正的考验在下一步:可复现构建、完整提交历史、公开问题追踪。这三样给出来,“开源”才从公关动作变成工程承诺。
参考来源
结语
两场风波的结局一样:厂商开源了代码,用户拿到了”可以审计”的资格。资格和能力是两回事。百万行代码没人读完,机构审计报告没公开,开源版和闭源版对不上。开源能证明现在,证明不了过去。下一次再有工具请求访问你的整个工作区,信不信任它,看你能亲手验证多少,看 README 没用。
Footnotes
-
智柴网 — Cereblab 用 mitmproxy 抓包证实 Grok Build 上传 5.1 GiB 的完整报道 https://zhichai.net/topic/178395179 ↩ ↩2 ↩3 ↩4 ↩5 ↩6
-
封面新闻(网易转载) — ZCode 事件调查:313MB 加密包、开关失效、3.14.0 修复、ferstar 复核、信通院与绿盟审计、智谱表态 https://www.163.com/dy/article/L7GIH3FN0514D3UH.html ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10
-
Simon Willison — Grok Build 上传事件分析,含用户 SSH 密钥被上传报告与 SpaceXAI 删除数据承诺 https://simonwillison.net/2026/Jul/15/grok-build/ ↩ ↩2
-
x.ai 官方公告 — Grok Build 开源公告,含 “build toward a robust and reliable harness” 表述 https://x.ai/news/grok-build-open-source ↩ ↩2 ↩3 ↩4
-
GitHub: xai-org/grok-build — Grok Build 官方仓库,star 与 fork 数据 https://github.com/xai-org/grok-build ↩
-
界面新闻 — ferstar 取证 ZCode 上传工作区事件的报道 https://www.jiemian.com/article/15121635.html ↩ ↩2
-
Hacker News — ZCode 上传事件原帖 https://news.ycombinator.com/item?id=49750694 ↩ ↩2
-
每日经济新闻 — 智谱致歉与后续:Repo Wiki 功能说明、数据不留存功能、漏洞反馈机制承诺 https://www.nbd.com.cn/articles/2026-09-21/4587856.html ↩ ↩2 ↩3
-
技术栈 — ZCode 开源仓库分析:2 个 commit 倒入 103 万行、开源版与闭源版区分、Computer Use 仅占位符、native 库未放出、可审计性三要素 https://jishuzhan.net/article/2102320027056394242 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10
-
七牛云 — ZCode 开源报道:一天内近 5000 star、Apache-2.0、无 release 无 tag https://news.qiniu.com/archives/1789970579947 ↩
-
UpXuu — ZCode 静默上传取证与复现:上传链路、信封加密、隐私政策缺口、修复形态分析、HN 评论转述 https://upxuu.com/posts/zcode-silent-git-upload-forensics/ ↩ ↩2 ↩3 ↩4 ↩5
-
AgentScout — Grok Build 开源与隐私风波报道,含 132 万行 Rust、77 个 crates 的仓库统计 https://agentscout.live/zh/tech/dev-tools/news/20260723-xai-grok-build-open-source-privacy-scandal/ ↩ ↩2
-
Hacker News — Grok Build 开源事件讨论帖 https://news.ycombinator.com/item?id=48926590 ↩
-
NxCode — Grok Build 开源数据面独立审计:上传栈保留、fail-open 谓词、二进制出处链缺失 https://www.nxcode.io/zh/resources/news/grok-build-open-source-data-plane-audit-2026 ↩ ↩2 ↩3 ↩4 ↩5
-
Slow Signals (vocus) — Grok Build 治理结构分析:monorepo 快照、不收 PR、issues 关闭、第三方工具移植 https://vocus.cc/article/6a6571e5fd89780001880eb3 ↩ ↩2
-
蚁工厂(新浪转载) — 微博科技博主指出 ZCode 仓库 issues 和 PR 创建功能被关闭 https://www.sina.cn/news/detail/5345520728147920.html ↩