针对社区报告的ZCode产品安全问题,我们已完成必要的修复工作,并向所有用户真诚道歉。
据北京公司(前身为智谱,现为Z.ai)在周一发布在ZCode官方账号上表示,同一天该公司将编码工具的源代码发布到了GitHub。它表示已移除Repo Wiki功能。同时,该公司还禁用了生成并上传本地仓库快照的工作流程,并在ZCode v3.14.0版本中推送了修复方案。
两家外部机构对此进行了核查。中国信息通信科技院发现了Z.ai所称处于“零数据状态”的zcode-prod阿里云存储桶。安全公司NSFOCUS报告称,该存储桶及其中的所有对象均已消失。Z.ai表示该代码从未接触其训练数据,并承诺将发布完整的评估报告。
上周,TNW报道称只有Z.ai能够打开其所获取的文件。这使得只能由Z.ai确认这些文件是否已被删除。如今公司已经做出回应,但其回应存在一处空缺。发现该问题的研究员正是指出这一空缺的人。
到底是什么让ferstar发现了这个问题?破坏者使用名为ferstar的开发者发布了自己的分析,日期为9月18日。在本地ZCode检查点目录中,他发现了一个313MB的加密快照,内容为一个商业项目。其状态日志记录了564次失败的上传尝试。该压缩包本身从未成功上传到他的机器之外,仍停留在待处理状态。
该快照包含42,411个文件。Git目录占其中86.6%。具体分为:196.1MB的大文件缓存、102.2MB的Git对象(包含完整的提交历史记录)以及一部分reflog。有一个较小的快照确实到达了服务器:一个包含538个文件的公共仓库,压缩后约为15KB。
两次触发器驱动了这次捕获。每次用户提交提示前都会触发一次。另一次则作为仓库维基更新任务运行。ZCode使用AES-256-CTR加密文件内容,然后用RSA-OAEP-SHA256封装对称密钥。公钥来自Z.ai的服务器,因此私钥保留在Z.ai这边。
有两个设置看起来像是会阻止它。但都没有阻止。它们都决定了下游数据该如何处理,而不是决定ZCode是否拍摄快照,Ferstar发现捕获是在没有任何条件限制的情况下运行的。隐私政策描述了收集对话文本和文件。但它没有提及自动工作区快照会携带完整的Git历史记录。
验证问题转移了,而不是关闭Ferstar在9月21日返回查看,一旦代码公开了。他首先确认了好消息。上传管道已经完全消失,留下的检查点机制只执行本地Git操作,没有通往云端的路径。
然后他发现了其他问题。已发布的仓库包含两次提交。开发历史消失了,执行上传的代码也消失了。该工具现在可以被检查。它过去做什么却无法被检查。这就是最初的投诉以新形式呈现:一个依赖于删除方声明的删除索赔。
其中最响亮的索赔已被撤回周五,一家名为成明科技的中国公司表示,其六个编码工作区在未经同意的情况下上传到了云端。它列出了完整的源代码、数据库密码和员工的个人信息。没有其他命名公司提出过如此严重的指控。
周一,成明科技撤回了该声明,表示它依赖了错误的证据,路透社报道。该公司没有立即回应路透社的置评请求。Z.ai将媒体引荐至其公开声明。劳里·陈的报道还记录了周五Z.ai的声明,其中将一个名为"Codebase Indexing"的功能(默认开启)作为起源。
同样的事情也发生在7月份:美国的一款名为 ZCode 的代码辅助工具也被发现偷偷传输了整个 Git 仓库(其中包含敏感信息)。当时,Grok Build 也上传了整个 Git 仓库(包括其中的机密数据),而 xAI 公司承诺会对此进行彻底清理。
这种“对称性”体现在双方的行为上:阿里巴巴在7月份禁止使用 Claude Code,理由是该工具涉嫌秘密跟踪中国用户;中国政府则进一步将这种行为称为“严重威胁”,并指责该工具在未经用户同意的情况下将数据传回中国。现在的情况则相反——是外国的代码辅助工具被指控在未经用户同意的情况下传输数据。
Z.ai 公司成立于2019年,源自清华大学的一个研究实验室,是中国资金投入最多的人工智能模型开发机构之一。其创始人曾公开表示,前沿的人工智能技术应该对所有人开放;正因为这一理念,Z.ai 才选择了删除用户的代码提交历史记录(即删除用户之前对代码所做的所有修改记录)。
上个月,Z.ai 宣布其 GLM-5.3 模型在检测软件漏洞方面的能力与 Anthropic 公司的 Mythos 模型相当。该公司将模型的发布推迟了两周以进行安全审查,成为首个因安全原因公开推迟模型发布的中国研究机构。上周,中国的网络监管机构发布了更新后的《人工智能安全框架》,警告开发者要警惕模型可能存在的“拒绝关闭”功能、欺骗用户的行为以及模型从安全沙箱中逃逸的风险。
关于 ZCode 的问题,目前仍有许多未解之谜:完整的评估报告尚未公布,Z.ai 也未给出发布报告的具体时间;目前也没有人知道在9月18日之前 ZCode 具体传输了多少个工作区的代码数据。现有的两份评估报告仅描述了修复漏洞后的存储情况,而并未说明在修复之前实际传输了哪些数据。
我们欢迎开发者继续测试 ZCode 并报告潜在的问题;根据问题的严重程度,我们将提供相应的奖励。
这其实就是一个典型的“漏洞赏金计划”(bug bounty)项目。第一个测试 ZCode 的开发者已经发布了自己对修复措施的评价,评价结果还算比较中立(即既没有完全肯定也没有完全否定修复效果)。