
2026年9月18日,开发者ferstar发布深度逆向工程分析报告,揭示Z.ai旗下AI编程桌面应用ZCode存在严重隐私风险。Z.ai是GLM系列开源权重模型的幕后公司。报告显示,用户一旦登录ZCode,应用便会静默打包整个工作区——包括完整的.git历史记录、LFS资产缓存、引用日志及全局配置——并加密上传至阿里云对象存储(OSS)。
抓包数据显示,一个包含42,411个文件、大小345MB的商业工作区被打包成313MB的加密档案。调查期间,该机制记录了564次上传失败。这一发现引发了社区对“本地运行”安全性的重新审视。
权重开源不等于运行时透明
舆论中存在明显混淆:因GLM模型权重开源,部分用户误以为ZCode也是开源软件。事实上,权重开放与承载权重的“容器”封闭是两个概念。ZCode是Z.ai为其自家模型打造的第一方集成方案,属于闭源软件,声称第三方编辑器无法匹敌其体验。
事件迅速发酵,ferstar的报告浏览量突破27.6万。开源AI智能体开发者Petri Kuittinen回应称:“切勿信任闭源AI运行环境。”
加密机制:只有服务器能读取
技术细节显示,ZCode采用信封加密技术:有效载荷由对称密钥加密,该密钥再通过RSA-OAEP公钥封装。公钥在上传凭证协商阶段由服务器下发,而对应的私钥仅存储于Z.ai云端。ferstar尝试使用本地所有私钥解密均告失败。这意味着,即使用户持有加密文件,也无法自行解密,唯一能读取代码的是Z.ai服务器。
打包内容详情
基于42,411个文件的快照,打包清单以明文形式本地存储,具体分布如下:
| 内容 | 大小 | 占比 |
|---|---|---|
| .git/lfs/ | 196.1 MB | 56.8% |
| .git/objects/ | 102.2 MB | 29.6% |
| .git/logs/ | 0.6 MB | 0.2% |
| 源代码与文档 | 46.2 MB | 13.4% |
仅.git目录就占负载总量的86.6%。
设置开关无效,侧车进程强制上传
交叉比对UI开关与代码后发现,用户设置无法阻止数据外泄:
- “优化体验”(
optimizeAgentExperienceEnabled)仅控制数据是否用于模型训练,不影响快照捕获和上传。 - “仓库快照索引”(
repoSnapshotIndexingEnabled)仅控制服务器是否索引快照,不影响本地打包和上传。
主机程序启动时会无条件实例化捕获侧车进程,唯一要求是令牌提供商生成有效的JWT。会话日志显示,活跃会话中触发了62次捕获事件,分别在每次提示词输入前及任务完成时执行。
公共收集库OrcaPromptVault中的131KB系统提示词佐证了这一点。其中“检查点/回滚”功能硬编码在系统提示中,但未提及阿里云、OSS或隐私相关内容。数据外泄管道独立于智能体工具循环之外,因此智能体本身对此“一无所知”,且无任何权限设置可拦截。
隐私政策未披露
ZCode隐私政策仅声明收集“对话期间提交的文本、文件和代码”,这是行业标准的推理上下文披露。但在政策、FAQ和更新日志中,均未提及打包上传整个工作区和Git历史的行为。最接近的条款仅涉及默认关闭的优化程序模板。
背景与回应
ZCode于2026年7月推出,营销策略建立在信任之上,定位为对抗Anthropic Claude Code遥测争议的替代方案。Z.ai高管此前在X平台承诺,不会实施“超出网站所列范围”的功能。然而,工作区快照功能并未在网站列出。
Z.ai已于2026年1月在港交所上市。截至发稿,官方X账号未回应ferstar的帖子。一个与ZCode团队关联的账号回复称:“嘿,很抱歉让你发现了这个”,这被视为对机制存在的间接确认。社区讨论焦点在于:此次是在未经同意的情况下,上传了整个仓库及其全部历史,且加密使得只有供应商可读取。
可行的防御措施
删除待处理归档文件无效,客户端会在半小时内重新打包并重试。有效修复方法是在内核级别使检查点目录变为不可写:
Linux:
rm -rf ~/.zcode/v2/checkpoints
mkdir -p ~/.zcode/v2/checkpoints
sudo chattr +i ~/.zcode/v2/checkpointsmacOS:
rm -rf ~/.zcode/v2/checkpoints
mkdir -p ~/.zcode/v2/checkpoints
chflags uchg ~/.zcode/v2/checkpoints代价是检查点回滚UI将停止工作,但聊天、自动补全和工具调用可正常运行。如需恢复,可使用 chattr -i 或 chflags nouchg。
对本地运行的启示
ZCode事件表明,“本地运行”的信任面已从模型层深化至运行时层。包裹在“电话回传”式运行容器中的本地模型,实质上并不本地。建议开发者检查所有智能体运行容器:登录后传输了什么?谁可以解密存储内容?Tokenstead正据此追踪相关遥测行为,若Z.ai作出修复或披露变更,本文将随之更新。