“硬盘不够用了”——一个 256GB 的 MacBook Air 用户在做磁盘清理时,顺手掀开了 AI 编程行业最尴尬的一块遮羞布。36氪
9 月 18 日,技术博主 ferstar 写出了那篇《扒一扒ZCode静默上传全量Git历史的骚操作》:智谱旗下 AI 编程工具 ZCode,会在用户登录状态下,把整个工作项目连同完整修改历史打包加密、悄悄往云端传。十天后,道歉、修复、审计、开源、Token 补偿轮番上阵,维权群里的开发者逼近 400 人,而评论区的风向又从"道歉有用吗"滑向了"补偿到账怎么又繁忙了"。
如果你日常把公司仓库、私有项目丢给 AI 编程工具读,这篇值得你花五分钟:事件时间线、被上传的到底是什么、官方答了哪几问还欠哪五问,以及你现在该做的动作。
一条时间线:十天,五步危机处理,两轮舆论反转
9 月 18 日:ferstar 发复盘文。状态记录显示,ZCode 扫描了他正在使用的商业项目,将 345MB 内容打包成一份全量快照,并尝试上传 564 次。 那个 313MB 的大包没传成功,但换一个 538 个文件、压缩加密后仅 15KB 的公开仓库测试,服务器正常接收。当晚智谱在官方群致歉,归因于"代码库索引"功能上线初期默认开启,称 RepoWiki 云端生成页面会触发仓库数据上传、“生成后立即销毁不保存”,同时给出第一版补偿:全体用户一次周额度重置。36氪
9 月 19 日:ZCode 推送 v3.14.0,更新日志写着"修复仓库百科异常上传的问题"。 同一天风波升级:有用户在官方交流群晒出火绒监控截图,单个进程狂传 43GB 数据,截图发出两三分钟被管理员撤回——"撤图"这个动作本身成了新的争议。 太原承明科技正式发函,称独立取证发现 9 月 18 日凌晨仍有上传发生,“修复效果存疑”。界面新闻36氪
9 月 20 日:智谱 MaaS 平台官宣"数据内容不留存"功能:用户的输入和输出,平台不做静态存储,数据只用于当次模型调用,用完即焚。 注意,是"任何用户均可申请开通",不是默认——不申请的用户,数据留存照旧。
9 月 21 日:智谱对外表示 ZCode 即将开源、已邀请中国信通院与绿盟科技做安全审计。据其披露的首轮核查结果:信通院确认涉事 zcode-prod 阿里云 OSS 存储桶当前为云端零数据;绿盟确认该桶及全部数据对象已删除,v3.14.0 已移除 RepoWiki 入口及生成链路。 当天智谱港股(2513.HK)跌超 4%。
9 月 22—27 日:近 400 名开发者进入多个维权群。 企业用户固定证据、发函追责,部分要求退款。
9 月 28 日 10:30:新一轮补偿生效:付费用户及一个月内回归的付费用户获 8 张周额度重置卡;9 月 28 日至 10 月 7 日,面向全体用户每日发放 10 万份 1 亿 Token。微博
9 月 29 日:评论区二次反转:“一亿 Token 到 29 号凌晨就清零了,还频繁提示’系统繁忙,请切换模型、升级账户’”。 市场也不买账,智谱港股当日一度再跌超 5%。微博
把九天排开你会发现,智谱的应对已经从一次客户端热修,被迫升维成"致歉、修复、第三方审计、开源、平台数据政策调整"五步连发。速度没得挑,但争议的重心早就从"以后还传不传"挪到了"之前传走的那些,去哪了"。
被打包上传的到底是什么:不是"几段代码",是项目的全部经历
普通消费纠纷丢的是几十块钱,这件事丢的是资产。对照 ferstar 的逆向结论,有几个细节最值得所有 AI 编程用户警觉:
其一,大头是 .git,不是当前代码。 在他检查的一份 42411 个文件的快照清单里,.git 相关内容占到了 86.6%,还包括 LFS 大文件缓存、reflog 和部分全局开发配置。 Git 历史意味着什么?意味着这个仓库"从出生以来的经历":谁在哪天改了哪个文件、每一次重构前的旧实现,以及——曾经提交进历史、后来又被删掉的密码和密钥,会原样躺在历史对象里。更要命的是打包顺序:针对 pem、key 的过滤规则和 1MB 体积限制,对历史目录完全不生效,这份记录在打包流程中被豁免于所有安全过滤规则。36氪36氪
其二,界面上的开关是"虚"的。 看起来相关的两个选项,一个叫"优化体验",实际只控制数据是否用于模型训练;一个叫"仓库快照索引",实际只控制数据到了服务器端建不建检索目录——两个都关掉时,本地的打包和上传照常运行。36氪
其三,快照在你的每次提问前后都会触发。 一个活跃的使用过程中,他观察到多达 62 次快照记录。 手动删掉那个 313MB 待发送文件,半小时后客户端又生成了新的包继续重试。36氪
其四,锁在你电脑上,钥匙在云端。 Agent 在用户电脑上生成一个加密包,用户自己都无法查看里面到底装了什么。 这也是后面所有"信任死结"的技术根源:销毁承诺从外部无法验证,你只能信,或者不信。36氪
官方给了动作清单,社区要的是证据清单:五样东西还缺几样
维权群里的诉求并不一样:有人要退款,有人只想知道"我的代码到底传上去没有",企业担心的则是商业源码、Git 历史、服务器凭据有没有在不知情时离开过内网。承明科技经技术部门独立取证后正式发函,提出 12 项答复要求,认定 ZCode 的上传行为系自动触发、批量发生。 它要的不止道歉,而是数据处理主体、处理方式、访问日志和删除证明,因为它得向自己的客户解释:那些托付给它的数据是否始终待在应该待的地方。界面新闻
媒体梳理的社区核心诉求是五样:公布修复版本与代码 diff、可验证的数据销毁证据、用户可自查的上传记录、书面确认并删除已上传数据、公开第三方审计报告。 对照进度:存储桶"零数据"有首轮核查口径(注意,是"当前状态",不是逐用户的历史上传证明);“每月公布代码安全审计报告"停在承诺阶段;普通用户手上依然没有自己的上传记录可查。“数据不留存"管的是"以后不留”,用户问的是"之前传的去哪了”,两句话中间隔着的那个坑,目前还没有能自证的填法。36氪
顺带提醒一句反噪音:网传的"智谱为此重写了 70% 可观测性组件""超 120 家金融机构进入灰度测试"等说法,查不到任何可靠出处,大概率是自媒体的演绎。 这场风波里最不缺的就是加戏的截图,最缺的恰恰是可核对的证据。36氪
不是孤例:这行业约束了模型、约束了攻击者,唯独没约束厂商自己
把镜头拉远,ZCode 只是把一类早就存在、很少被点名的风险摆上了桌——Agent 制造商本身就是数据外传的潜在来源。此前独立安全研究者抓包证明,xAI 的编程工具 Grok Build 会把用户整个项目打包上传到谷歌云存储,包括用户明确要求不要读取的文件和未经脱敏的密码。36氪
更早,Claude Code 被发现在用户不知情时回传位置和身份信息,Anthropic 工程师事后确认那是一次有意实验。36氪
注意这些事的共同点:发现者不是监管,不是审计机构,而是清理磁盘的、抓包的、翻日志的个人。 目前行业给 AI 智能体搭的安全框架,管失控、管提示词投毒、管越狱,没一条规则是用来约束厂商自身数据行为的。工具越"懂你整个项目",它想索引你的东西就越顺手——这是结构性空档,不是智谱一家的道德题。36氪
看完这篇,按你的角色做三件事
个体开发者/正在用 ZCode 的:补偿窗口到 10 月 7 日,重置卡和每日 Token 该领就领,但记住两个真实约束——送出的额度当天清零、繁忙时段优先把你挤向"升级账户"。把这当成一次薅补贴的机会可以,当成信任修复就算了。顺手做件更值钱的事:学 ferstar 的路径,查一下各工具在你本地目录的异常占用,看看它们的"索引/快照/Wiki/云端备份"类功能默认开着几个。
企业在职开发(优先级最高):立刻盘点团队接入过 AI 工具的仓库范围,检查历史提交里是否曾出现密钥、口令、客户数据——"删掉了"没用,.git 里都在。留好日志和截图证据,走内部安全和法务流程,别只停在群里吐槽。承明科技们已经在替你踩点了。
外包和企业服务商:这次事件给"交付合规"加了一行新检查项——你的工程师用什么 AI 工具写的代码、代码流经了谁的云。客户问起"数据有没有离开过我们可控范围"时,你需要的是一份工具使用清单和关闭策略,而不是临场反应。
一个通用的投喂边界,适合所有工具:核心业务仓库、含任何凭据或客户数据的代码、别人的私有仓库,在工具说不清"上传什么、留多久、怎么验证"之前,别整库交给它。单文件问答和整库索引,是两回事。
接下来盯四个信号
信通院/绿盟的正式审计报告是否公开,"每月代码安全审计"有没有兑现第一期;
ZCode 开源是否如期交付——代码本身能不能查,是这轮信任重建里唯一技术上可自证的环节;
"数据不留存"从"近期上线"变成默认或便捷选项,还是拖成一张危机公关 PPT;
有没有厂商把"可验证不留存"变成竞争条款——模型能力拉平之后,"数据怎么处理"正在变成 AI 编程工具选型的核心参数。
Token 买得回额度,买不回证据。这轮风波最后的赢家,会是第一个把"你可以自己查"做进产品的厂商。在此之前,先把你开发机上那几个"默认开启"的索引功能翻出来看一眼——ferstar 发现整件事的起点,真的只是硬盘不够用了。