ARTICLE · 1042607
智谱AI编程工具ZCode被曝静默上传用户仓库数据,官方致歉并承诺开源

导语:9月18日,有网友曝光智谱AI旗下编程工具ZCode会在用户登录状态下静默将本地工作区打包加密后上传到阿里云OSS,包含完整git历史、LFS大文件缓存、reflog等敏感内容。事件发酵后,智谱在官方社群致歉,承认是"代码库索引"功能引发的问题,已紧急修复,并宣布近期将开源ZCode代码库以接受第三方审查。
事件经过
9月18日当天,有开发者在社交平台详细披露了ZCode的异常行为:只要用户处于登录状态,ZCode就会在后台静默地把整个本地工作区打包,加密后上传到阿里云OSS。更令人警觉的是,整个过程没有任何UI开关可以让用户关闭这一行为。
曝光帖很快引发讨论,因为被打包上传的内容覆盖面相当广——完整git历史、LFS大文件缓存、reflog记录,以及全局应用配置,都被一并收入压缩包。这意味着云端拿到的不是开发者的"当前代码",而是这个仓库自打创建以来的全部内容,包括历史commit里早已被删除、但仍留在历史记录中的敏感配置和密钥,以及那些还没推送到远端的本地分支——而这些分支往往承载着企业尚未公开的研发动向。
用户工作区被静默加密上传至云端的概念示意图。图片版权 华盟网
加密机制的特殊之处
网友还指出了一个相当棘手的技术细节:ZCode上传包使用的RSA加密公钥是由服务端在运行时动态下发的,私钥只保存在云端。也就是说,这个加密包连用户本人都解不开——一旦数据被上传,本地就再也无法审计里面到底装了什么。
这种"服务端持有私钥、客户端无法解密"的设计,与常见的端到端加密模型相反。在端到端模型里,服务方只持有公钥,私钥只在用户手中;服务端私钥意味着运营方随时可以解密用户上传的数据,且没有技术层面的限制。如果运营方被入侵、内部人员滥用、或是出于法律要求被强制调取,理论上用户的私有代码库就有可能外泄。
官方回应
事件发酵后,智谱在ZCode官方社群进行了正式回应。要点如下:
承认事实:确认上传行为真实存在。 解释原因:相关数据由"代码库索引"功能产生,目的是为用户生成代码仓库的wiki页面。 数据处理声明:生成wiki页面后,仓库数据会被销毁,不会长期保存。 问题定性:上线初期该功能默认开启,且未在UI中提供关闭选项,部分用户因此受到影响——目前相关问题已经修复。 补救措施:为打消外界质疑,智谱宣布近期将开源ZCode代码库,邀请第三方对其进行审查;当日为受影响的用户进行一次免费的周额度重置以示歉意。
几点值得关注的问题
尽管智谱已经致歉并着手修复,几个问题仍然摆在桌面上:
一是"索引即上传"的边界问题。"代码库索引"听起来是个很常规的功能——很多现代IDE和开发工具都会在本地为代码建立索引,用于跳转、搜索和智能提示。但"本地索引"和"把完整仓库传到云端"是完全不同的两件事。把仓库整体打包上传,本质上等于让工具运营方拿到了用户代码库的完整副本,无论后续是否真的"销毁",这一行为本身就需要事先获得用户明确、知情的同意,而不是以"默认开启"的方式默默进行。
二是默认开启 vs 明确同意。**根据网友披露,ZCode并未在UI中提供关闭选项。这种"无开关的默认开启"在国内外的隐私合规框架下都很难站住脚——无论是GDPR、《个人信息保护法》还是苹果、微软的应用商店审核指南,都要求此类数据收集行为需要"明确同意"且可被用户撤回。
三是"客户端无法解密"的设计。**正如上文分析,这种加密方式等于把数据控制权完全让渡给了运营方。即便智谱主观上没有作恶意图,这种架构本身也放大了潜在风险——一旦发生数据泄露,影响的是所有用户的代码库。
总结
ZCode事件是国内AI编程工具领域迄今最严重的一次"工具主动外传用户数据"风波。智谱的回应速度和致歉态度值得肯定——开源代码库、邀请第三方审查也是相对有力的补救措施。但对开发者来说,这件事本身已经是一次提醒:任何AI编程工具在接入工作区之前,都值得先问一句"它到底在不在上传我的代码"。
对于AI编程工具厂商而言,"默认开启"+"服务端私钥"的组合,是接下来在合规层面需要尽快补课的设计决策。

👇 点击阅读原文,访问我的网站


