













9月18日,智谱旗下AI编程工具ZCode陷入代码上传争议。
开发者Ferstar发布逆向分析称,只要用户登录智谱ZCode,客户端就会在后台生成工作区快照。被打包的内容不限于当前代码,还包括完整Git历史、LFS缓存、reflog及部分全局配置,随后以加密形式上传至阿里云OSS。
消息传开后,智谱当天在用户群中回应并致歉。官方表示,此次问题与默认开启的代码库索引功能有关,Repo Wiki可能触发仓库数据上传,相关数据在云端使用完毕后会立即销毁。目前问题已经修复,智谱还计划开源ZCode代码,并引入第三方安全审查。
这场风波源于一次普通的磁盘清理。
Ferstar发现,智谱ZCode位于用户目录下的本地文件夹已经占用700多MB。其中,v2/checkpoints目录约占303MB,里面保存着一个体积约313MB的加密文件。
状态信息显示,该文件来自一个商业项目,类型为全量快照。项目总容量约10GB,排除依赖文件后,仍有约345MB内容被纳入打包范围,其中大部分属于项目核心资产。
记录还显示,这份快照此前已经上传失败数百次。文件会留在待处理目录中,智谱ZCode则继续尝试上传。
为了确认文件去向,研究者进一步拆解智谱ZCode客户端,最终还原出一条完整链路:客户端先向zcode.z.ai申请凭证,获得阿里云OSS表单签名、存储路径、大小限制和RSA公钥;随后在本地完成打包与加密,将文件直接传至阿里云OSS;上传成功后,再由OSS回调智谱后端登记。

研究者称,智谱ZCode采用信封加密方案:工作区内容通过临时对称密钥进行AES-256-CTR加密,对称密钥再使用RSA-OAEP-SHA256算法封装。
其中,RSA公钥由服务端动态下发,对应的私钥保存在云端。研究者使用本机密钥尝试解密,但没有成功。按照这一架构,用户无法自行打开本地生成的加密包,智谱ZCode客户端也没有相应的解密能力。
虽然密文无法直接查看,但客户端生成快照时留下了一份明文文件清单。
研究者对清单中的42411个文件进行统计后发现,.git目录占快照总体积的86.6%。其中,LFS缓存约占56.8%,完整的Git对象库约占29.6%,其余内容还包括reflog、当前源码、配置文件和业务文档。
完整Git历史可能保留已经删除的配置和旧密钥,也可能记录尚未推送的分支名称、内部GitLab域名及仓库路径。研究者还发现,部分智谱ZCode全局配置可能跨工作区进入快照。
这也是事件引发关注的主要原因:用户原本认为AI编程工具只会读取完成当前任务所需的代码,实际被打包的范围却可能覆盖整个仓库及其历史记录。
智谱ZCode设置中提供了“优化体验”和“仓库快照索引”选项,但研究者对照客户端代码后认为,这两个开关均无法直接关闭快照上传。
“优化体验”主要决定相关数据能否用于模型训练;“仓库快照索引”则控制服务端是否对已经上传的快照建立索引。即使关闭两项设置,本地快照仍可能被生成并进入上传流程。
研究者称,快照组件会在智谱ZCode启动时加载,只要用户保持登录状态,客户端能够取得身份凭证,相关机制就具备运行条件。
快照可能在发送提示词前或任务结束后触发。研究者在一个活跃会话的日志中,最多发现了62次捕获记录。
手动删除待上传文件同样难以阻止该流程。智谱ZCode发现文件缺失后,会重新生成快照并再次尝试上传。
当时公开的隐私政策提到,智谱ZCode会收集用户在对话中提交的文本、文件和代码,但没有明确说明完整工作区和Git历史会被打包上传。官方文档、常见问题及更新日志中也缺少相应说明。
随着相关分析在开发者社区持续传播,智谱ZCode于当天下午在官方用户群中作出回应并致歉。

此次问题被归因于ZCode的“代码库索引”功能。该功能原本用于在本地生成仓库索引,以支持会话检查点恢复、历史版本回退以及Repo Wiki等功能。
其中,Repo Wiki在生成Wiki页面时可能触发代码仓库数据上传。按照官方说明,页面在云端生成完成后,相关上传数据会立即销毁,不再继续保存。
不过,该功能在上线初期默认处于开启状态,因此部分用户受到了影响。目前,这一问题已经完成修复。
针对外界对透明度的质疑,智谱计划近期公开ZCode代码库,并邀请第三方评估人员对系统运行情况进行审查,后续还将持续披露审查进展。作为补偿,全部ZCode用户还将额外获得一次周额度重置。
官方回应解释了上传行为与代码库索引、Repo Wiki之间的关系,也承诺上传数据在使用后立即销毁。
不过,从目前公开回应来看,仍有一些细节尚未得到充分说明:为何Repo Wiki需要上传包含完整Git历史的全量快照;用户关闭相关设置后,上传机制为何仍在运行;云端数据的即时销毁如何记录和验证;修复后的智谱ZCode具体改变了哪些逻辑。
研究者披露的是客户端代码、本地文件和运行日志反映出的技术行为;智谱回应则说明了功能目的、数据处理方式和补救措施。两部分信息需要区分看待,最终情况仍有赖于后续开源代码和第三方审查结果。
对于AI编程工具而言,读取代码本身并不罕见。开发者真正关心的是读取范围是否与任务相符、上传前是否充分告知、用户能否自主关闭,以及服务商如何证明数据已经删除。
智谱选择开源ZCode并引入第三方评估,是回应信任问题的重要一步。接下来,代码何时开放、审查范围是否覆盖上传和销毁链路、相关结论能否公开,将直接影响这场风波能否真正平息。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。