
9月18日,技术博主ferstar发布一篇逆向分析文章,称智谱AI官方编程桌面软件ZCode会在用户登录后,于后台静默打包整个工作区——不仅是当前源码,还包括完整的 Git 提交历史、LFS 缓存与本地操作记录,加密后直传阿里云 OSS,且界面没有开关能真正关闭。文章当日在开发者社区迅速发酵。
傍晚,智谱方面致歉回应称,问题源于“代码库索引(Repo Wiki)”功能在上线初期默认开启,目前已修复,并承诺开源客户端、引入第三方审计,同时向全体用户补偿一次周额度重置。截至发稿,智谱官方尚未逐项说明上传范围与 Git 历史去向。

一、一个 313MB 的“待上传”包裹
事情源于一次普通的磁盘清理。作者发现本地“~/.zcode” 目录占用超过700MB,其中“v2/checkpoints/”下多了一个 313MB 的加密包。随附状态文件显示,客户端扫描了其一个商业项目,排除“node_modules”后将约345MB内容打包为基线全量快照,并已重试上传 564 次未果,滞留本地等待重传。
解包客户端“app.asar”并核对网络连接后,作者还原了链路:客户端先向“zcode.z.ai”申请上传凭证和本轮RSA公钥,随后在本地完成“tar.gz”打包、AES-256-CTR加密和RSA-OAEP包钥,再将密文直传阿里云OSS,由OSS回调智谱后端登记。运行中的进程与智谱服务器及两个OSS存储节点保持着长连接。
更受关注的是打包范围。对一个含42411个文件的快照清单,作者统计“.git/lfs/”占 56.8%,“.git/objects/”占 29.6%,“.git/logs/”占0.2%,源码与文档仅约13.4%,“.git”目录合计占86.6%。这意味着旧提交中已删除的密钥口令、“.git/config”里的内网主机名与仓库路径、未推送的本地分支名、被reset抹掉的操作记录以及 LFS 大文件,都可能在包内。
作者特别指出,用于包钥的RSA公钥由服务器临时下发,私钥从不下发,本地这几百MB密文用户和客户端都解不开,只有云端能够解密。在他看来,如果快照真是为本地回滚或跨设备同步设计,密钥本应像Time Machine一样握在用户手中。
作者对照界面设置与代码后称,“优化体验”开关实际只控制数据是否用于模型训练,“仓库快照索引”开关只控制服务器是否对已上传快照建索引,二者都不能阻止本地打包与上传;快照组件在客户端启动时被无条件加载,唯一前提是登录有效,触发点位于每次提问前和任务完成时,单个活跃会话最多出现62次捕获;手动删除待传包后,半小时内即重新打包。
笔者查阅 ZCode 现行隐私政策发现,其中仅载明收集用户“在对话中提交的文本、文件和代码”,并未提及整库快照与Git历史的静默上传。
二、智谱致歉称已修复并将开源
争议发酵数小时后,智谱于 18 日傍晚在官方飞书群作出回应。其承认ZCode的“代码库索引”功能在生成Repo Wiki页面时,可能将仓库数据上传至云端。该功能上线初期默认开启,影响了部分用户,相关问题目前已修复。
智谱称,Repo Wiki页面在云端生成后,相关数据会被立即销毁、不会保存。官方文档现已明确,该功能不读取.git文件、依赖目录、构建产物和缓存,仅按需发送经过过滤的代码内容。
智谱同时表示,数据问题直接影响用户信任,后续将开源ZCode代码库,引入第三方评估人员审查系统运行,并持续公开审计进展。作为补偿,ZCode向全体用户额外发放一次周额度重置,当日到账。
但对照博主披露与官方回应,仍有多处尚未对上。报道梳理显示,官方未逐项解释四个问题:被上传文件的确切范围、为何会包含 Git 历史、究竟哪些场景触发快照、服务端是否具备解密和读取能力。“页面生成后立即销毁、不保存”的表述,与博主在本地发现的全量快照、失败后持续重试的机制如何对应,也有待智谱方面进一步说明。
三、是否违反相关法律法规?
笔者对照现行法规梳理发现,《个人信息保护法》第十七条要求处理者在处理前以显著方式、清晰语言完整告知处理目的、方式、种类与保存期限;第六条确立了目的明确、直接相关、影响最小的最小必要原则,第十四条要求同意在充分知情前提下自愿、明确作出。AI推理通常只需随请求发送任务相关片段,全量仓库连同历史被静默上传,是否符合“直接相关、最小范围”,存在疑问。
值得注意的是,“默认不用于模型训练”并不等于“默认不上传”——训练授权与收集授权本是两个独立环节。就企业而言,商业代码多属《反不正当竞争法》第十条界定的商业秘密,员工点击消费级隐私政策只能处分个人信息,无权代企业处分核心知识产权;将公司仓库接入未经安全评估的外部工具,还可能违反保密协议。此外,快照落地阿里云OSS属委托第三方处理,隐私政策亦应清晰披露。
出现该情况并非孤例。2023年3月,三星电子半导体部门开放ChatGPT仅20天即发生三起泄密,员工将测量源码、良率代码和内部会议录音贴入对话框,机密直传境外且无法收回,三星随后禁用并自研工具。
不过,该事件与智谱本次事件性质不同,三星是员工主动粘贴的误用,而智谱是客户端静默自动上传。
2026年3月,GitHub Copilot宣布免费及专业档用户交互数据默认用于模型训练,引发开发者强烈反对,但至少公开告知并提供退出路径,企业版明确不用于训练。Cursor的隐私模式开启后代码不留存、不训练,只是默认关闭。行业由此形成几条朴素分水岭:是否明确告知范围、开关是否真正生效、是否默认最小化、密钥归谁、有无企业私有化方案。
AI 编程工具读取代码上下文,本是题中之义,用户对此也有预期。真正越界的往往不是“上传”本身,而是全量范围、静默方式、不可关闭与密钥仅存云端这一组合。
判断一个“快照/备份/同步”功能究竟服务用户还是服务收集,有三条试金石:密钥谁持有、功能谁可关、数据谁可删。三问指向用户,才是备份;指向厂商,更像是采集。
从致歉、修复到承诺开源和第三方审计,智谱迈出了积极一步。但信任的重建依赖可验证。开源范围是否包含上传与加密组件、第三方审计结论能否公开、此前已经上传的数据如何处置,仍需后续答案。这起风波也不只关乎智谱一家,当前正在抢滩企业市场的国产 AI 编程工具,都需要回答同一道题。
商业与涉密项目暂不在该客户端登录、不将其纳入工作区,企业可将此类工具纳入第三方安全评估与白名单。个人用户可在系统层面对“~/.zcode/v2/checkpoints” 目录加锁,从内核层面拒绝写入,同时定期扫描仓库历史、轮换误提交的密钥。


