智谱ZCode偷传代码风波全解析:200万开发者必看安全指南

智谱ZCode"偷传代码"风波全解析:200万开发者必看的安全指南#

Article Image

各位值友,如果你是程序员或者在用AI编程工具,这篇文章一定要看完。

9月18日,开发者圈炸了——智谱的AI编程客户端ZCode被扒出在后台静默上传用户的完整代码仓库,包括.git历史、配置文件、甚至明文API密钥。这件事迅速冲上热搜,知乎浏览量超130万,B站相关视频播放量破13万。

作为一个也用过ZCode的开发者,我连夜研究了整个事件,今天给大家做个完整复盘+自查指南+替代方案推荐。无论你是不是ZCode用户,这篇文章都值得看完,因为类似的隐私风险可能存在于所有AI编程工具中。

一、事件全复盘:到底发生了什么?#

事情的起因很偶然。9月18日凌晨,独立开发者ferstar在清理MacBook磁盘时发现,ZCode的本地数据目录~/.zcode竟然占了700多MB。

他顺着目录挖下去,在v2/checkpoints/里翻出一个313MB的加密压缩包。状态文件显示:这是一个商业项目的全量工作区快照,上传失败了564次,还在本地排队重试——也就是说它一直在锲而不舍地往云端传。

ferstar逆向了客户端代码,还原了整条上传链路:

  1. 客户端向zcode.z.ai申请上传凭证
  2. 服务端返回RSA公钥和阿里云OSS的表单签名
  3. 本地把整个工作区(包括.git)打成tar.gz
  4. AES-256-CTR加密后直传阿里云OSS
  5. 解密密钥只在智谱服务器端——用户自己打不开自己硬盘上的包

最可怕的是:上传机制默认常开,只要登录就会触发。界面里两个开关("优化体验"和"仓库快照索引")经过多位开发者代码验证,都不影响上传行为。一个开关只管是否用于训练数据,另一个只管服务端是否建索引——打包上传照跑不误。

二、传了什么?远比你想象的严重#

Article Image

ferstar和他的同行们做了详细分析,发现上传的数据远比想象中严重:

数据类型占比/大小风险说明风险等级
.git/objects(完整Git历史)86.6%(102MB)所有提交历史、分支、删除过的敏感配置🔴 极高
.git/lfs(大文件缓存)56.8%(196MB)二进制资产、设计稿、模型文件🔴 极高
源码与文档13.4%(46MB)全部源代码、配置文件🔴 极高
provider_config.json少量9家第三方服务的明文API密钥🔴 极高
.git/config微量内网GitLab域名、SSH密钥路径🔴 极高

简单说:不只是当前代码,连你早就删掉的敏感配置、历史密钥、未公开的分支名,全都一锅端了。最讽刺的是,很多开发者以为只是"当前文件"被读取,实际上整个仓库自创建以来的全部历史都被打包上传了。

更让人不安的是触发时机。ferstar发现,触发快照的不是什么特殊操作,而是每次发Prompt前和任务结束时。一个活跃使用会话里最多产生62次快照。也就是说,你正常写代码的过程中,它在不停地拍照上传。

三、官方回应与后续进展#

9月18日下午,智谱在用户群致歉,归因于"代码库索引"功能。官方说法是:Repo Wiki生成页面时可能触发仓库数据上传,云端生成后立即销毁不会保存。

9月19日,ZCode发布3.14.0版本,更新日志写了"修复仓库百科异常上传的问题"。ferstar确认最新版已经移除了上传链路代码。

但问题在于:

  • "立即销毁"无法验证——私钥在智谱服务器端,用户无法解密也无法确认删除
  • 开源承诺已逾期——致歉时说"近期开源",但超过一天还没动静,社区追问声不断
  • 企业用户直接发律师函——太原承明科技9月19日晚正式发函,提出12项整改要求,限期10月10日前答复

承明科技的律师函里有一组更吓人的数字:一个工作区超3.29万个文件、约4.11亿明文字符被上传,内容包括完整源码、版本历史、数据库口令、云凭证、研发规划和商业计划。

更打脸的是:官方致歉当日凌晨,仍被监测到上传行为。承明科技称已独立取证,对"已修复"的说法表示质疑。

四、自查清单:你现在该怎么办?#

第一步:检查你的机器

打开终端,执行以下命令:

# 1. 检查快照目录大小(几百MB起步就有问题)
du -sh ~/.zcode

# 2. 查看是否有加密快照文件
ls -la ~/.zcode/v2/checkpoints/

# 3. 检查上传状态
# state.json中lastAcceptedManifestHash非空=已上传成功
cat ~/.zcode/v2/checkpoints/*/state.json

# 4. 看failureCount(重试次数)
# 大于0说明一直在尝试上传

第二步:锁定目录(强烈推荐)

# macOS - 从内核层面禁止写入
chflags uchg ~/.zcode

# Linux
sudo chattr +i ~/.zcode

锁定后,ZCode的正常功能(代码补全、对话、工具调用)完全不受影响,但快照功能会被阻断。代价是"检查点回滚/时间线"功能失效——但这本来就不是你想要的功能。

验证方法:执行touch ~/.zcode/v2/checkpoints/test,如果报"Operation not permitted"就说明锁上了。

第三步:轮换密钥

如果你在ZCode里登录过包含API密钥的项目,立即轮换所有密钥。包括:

  • 数据库密码
  • 云服务凭证(AWS、阿里云、腾讯云)
  • 第三方API Key(Stripe、OpenAI、各种SaaS)
  • SSH密钥(如果曾提交过.pub文件)
  • GitLab/GitHub的Personal Access Token

五、替代方案推荐:这些工具更安全#

ZCode事件后,国产AI编程客户端一夜之间几乎全部开源。这是一个好事——高权限Agent客户端,开源从加分项变成了及格线。

工具类型开源特点推荐指数
Claude CodeAgent派否(但行为透明)推理能力最强,CLAUDE.md持久化上下文⭐⭐⭐⭐⭐
DeepSeek HarnessAgent派✅ 完全开源插件架构,18059个commit可审计⭐⭐⭐⭐⭐
Kimi CodeIDE派✅ 开源MoE架构,API定价友好⭐⭐⭐⭐
OpenCodeAgent派✅ 完全开源不绑模型,自由选择API供应商⭐⭐⭐⭐
TraeIDE派否字节出品,永久免费,中文理解强⭐⭐⭐⭐
MiniMax CodeAgent派✅ 开源ZCode事件后紧急开源⭐⭐⭐⭐

选型建议:

  • 习惯终端操作的人 → Claude Code 或 DeepSeek Harness
  • 习惯编辑器的人 → Trae 或 Cursor
  • 追求开源透明的人 → DeepSeek Harness 或 OpenCode
  • 预算有限的人 → Trae(永久免费)或 DeepSeek Harness(开源免费)

六、这件事给所有人的启示#

ZCode事件不只是智谱一家的问题,它给所有AI工具用户敲响了警钟:

  1. 本地模型不等于本地数据——模型在本地跑,但客户端可能在偷偷传数据。小红书上有篇帖子说得好:"模型层和客户端层是两个独立的风险面"
  2. 开关文案和代码逻辑可能不一致——不要相信界面上的开关说明,要看实际的网络行为。这次ZCode的两个开关经代码验证都"管不住"上传
  3. 开源是及格线,不是加分项——高权限Agent客户端,能读你的全仓库、能执行命令、能访问网络,这样的工具必须开源才能被信任
  4. "已经删除"不等于"已经销毁"——云端数据的删除只能靠厂商承诺,用户无法独立验证。这就是为什么"上传行为"比"数据存储"更值得警惕
  5. 默认开启是最大的风险——几乎所有隐私问题都出在"默认开启+没有明显提示"上。以后用任何AI工具,第一件事就是检查它的默认设置

七、小软同学总结#

已经用ZCode的:v3.14.0之后上传链路已被切断,继续用有依据。但建议先自查(看~/.zcode目录)、锁定目录、轮换密钥,然后决定是否继续使用。

观望等回来的:看四个信号——commit数和Git历史补不补、issue开不开、审计完整报告出不出、开源版与套餐版权益是否打通。四个里动两个,性质就从"公开披露"变回"开源"了。

已经决定跳车的:Claude Code、DeepSeek Harness、Kimi Code都是成熟的替代方案。DeepSeek Harness开源且18059个commit可审计,是目前最透明的选择。

最后引用ferstar的原话:"在AI编程工具里,'留在本地'不再是可以信任的假设,而是要亲自排查的结论。"

各位开发者朋友,赶紧去检查一下你的~/.zcode目录吧!如果这篇文章对你有帮助,记得转发给身边用AI编程工具的同事朋友。有问题欢迎在评论区讨论~