产品派
返回

ZCode开源后仍面临数据边界与审计疑问

AIInfoQ 中文站2026/9/23 15:05:12
AI 导读

开发者在清理 MacBook 磁盘时发现,ZCode 的 ~/.zcode 目录占用较大空间。逆向分析显示,客户端会生成包含当前代码、.git 历史、Git LFS 缓存和 reflog 的工作区快照,并将其加密后上传至阿里云 OSS。一次样本快照约 313MB、含 42,411 个文件,其中约 87% 来自 .git,曾出现 564 次上传尝试;由于超过大小限制,该快照最终停留在本地。另一个包含 538 个文件的公开仓库测试中,压缩加密后约 15KB,并被服务端实际接收。

这条链路使用 AES-256-CTR 加密,再通过服务端 RSA 公钥封装密钥,私钥由云端掌握。客户端先从服务端取得 snapshot ID、RSA 公钥和 OSS 凭证,完成本地打包后绕过产品服务端,直接向 OSS 上传密文。智谱随后解释称,相关行为源于代码库索引和 Repo Wiki 等功能,早期默认开启,数据在 Wiki 生成后销毁且未用于模型训练,并对此致歉。

三天后,智谱公开 ZCode 源码,采用 Apache 2.0 许可证,涵盖 Desktop、Web、Backend、Agent CLI 和 Agent Runtime。ZCode v3.14.0 删除 Repo Wiki,并切断本地仓库快照生成及上传链路;中国信通院称核查时相关 OSS bucket 为零数据,绿盟科技称相关对象和 bucket 已删除,智谱还承诺建立长期漏洞响应与奖励机制。

源码对账显示,争议中的 repoSnapshot 管道已被移除,但 ZCode 仍不是完全离线程序。文件、Git、Terminal、Shell、Node REPL 可在系统账号权限内读写文件、启动进程和联网;插件、Hook、MCP、内嵌浏览器、远端 Workspace、SSH 和 Web 服务也可能接触文件、凭据、网页登录态或外部工具。共享 Agent Runtime 默认没有系统级 Sandbox,独立 CLI 以 --prompt 非交互运行且未指定 mode 时还可能进入无需逐次确认的 yolo 模式。

公开仓库的 Git history 同样引发疑问。目前仅有空的 initial commit 和一次 feat: open source 提交,后者一次加入约 6,973 个文件、103 万行代码。事故前包含 Repo Wiki、repoSnapshot 及上传逻辑的版本没有公开,外界因而难以追踪功能何时加入、如何演变、哪些版本受影响以及修复具体改动了什么。现有代码显示 checkpoint 主要通过本地 Git CLI 计算 diff,元数据保存在 ~/.zcode/checkpoints/。

开源当前版本和第三方核查能够帮助确认整改结果,却未必能还原历史事件。外界仍缺少成功上传的仓库数量、涉及用户规模、对象保存时长、解密和访问权限、完整访问日志,以及备份和其他副本是否一并删除等信息。后续还需明确核查是否覆盖事故版本、服务端代码、OSS 审计日志和加密私钥生命周期,才能判断“代码开源加第三方核查”在多大程度上足以重建用户信任。

ZCodeAI编程数据安全开源Coding Agent

本文基于公开渠道信息整理,内容可能存在不准确或遗漏之处,不代表本站立场,如内容涉及侵权或错误,请联系我们处理。

阅读原文