智谱ZCode代码上传风波:564次上传失败,暴露一个假开关

一个10GB的软件项目,被打包成313MB的加密文件。上传失败564次,于是它就躺在程序员的硬盘里。

你打不开它。你的编辑器打不开它。写它的那家公司,把解密私钥留在了自己的服务器上。

这不是备份。备份的第一条铁律,是主人自己能恢复。一份连本人都解不开的东西,只有一个准确的名字:别人的资产。

先看清楚,这不是一次"异常触发"

9月18日凌晨,开发者ferstar在清理磁盘时发现,~/.zcode这个目录占了700多MB。顺着往下查,他挖出了一条完整的链路。

客户端向智谱服务器申请上传凭证,拿到服务端下发的加密公钥、大小限制,以及阿里云OSS的表单凭证。然后按自己的筛选规则扫描工作区,AES加密,再用RSA公钥把对称密钥包起来,密文直接投递到OSS,最后通过回调向后台登记。

技术博主Vonng用Claude在自己的Mac上独立复现了一遍,结论是:真的。他的机器上有四个工作区的快照记录:一个229MB、一个232MB、一个405MB(加密后7.4MB,状态显示已被服务端接受)、还有一个1.53GB(加密后1.07GB,超出服务端给的上限,失败计数102次)。

请注意最后这个细节。

上传的大小阈值,是服务端下发的。收不收,也是服务端定的。客户端的角色,是执行,不是决策。

更值得琢磨的是打包范围。Vonng那个被接受的快照里有9619个文件,其中8323个属于.git目录,占了93.9%的字节。ferstar抓到的那个包里,.git占86.6%。

为什么.git这么重?因为在代码的过滤链里,放行 .git 的规则排在所有排除规则之前。那个所谓1MB的大小上限、那份密钥过滤清单,对.git下面的一切都不生效。一个137MB的packfile,就是这么整包进去的。

翻译一下这意味着什么:任何一个曾经被提交过的私钥、口令、API Key,哪怕你当天就git rm删掉了,哪怕你用filter-repo重写过历史,它依然原封不动地躺在.git/objects里,等着被打包送走。

Vonng写得很克制:他的私钥没被带走,纯属运气。他那个仓库里甚至包含.git/filter-repo和.git/lost-found——前者说明有人专门重写过历史来清除敏感数据,后者是悬空对象目录。ZCode打包带走的,恰恰是你刻意清掉的东西。

而那份过滤清单薄到什么程度?他自己一个PGP公钥文件,因为扩展名是.asc、文件名里既没有token也没有secret,就这么混进了快照清单。

再看隐私政策。ZCode写得很清楚,只有"通过对话"提交的文本、文件、代码,才在它宣称的收集范围内。后台快照不是通过对话提交的。

这不叫措辞漏洞。这叫承诺之外的采集。

最扎心的不是上传,是那个假的开关

如果只是"功能误触发",改掉就好。真正让开发者炸锅的,是另一件事。

设置里有一个开关,叫"仓库快照索引"。

Vonng的机器上,这个开关的状态是:一直显示关闭。9月13日到18日的日志里,这个字段出现了1339次,每一次都是false,没有一次是true。而他那四个快照,全部产生在这几天。

代码说明了原因。在真正执行采集的宿主包里,这个字段只出现两次:一次是数据库迁移赋值,一次是设置名列表。两次都不在采集路径上。

采集入口只要求sidecar实例存在,而那个实例是无条件构造的。搜遍整个app.asar,找不到任何能关掉它的环境变量。

真正的判定在哪?在服务器。

客户端每次发提示词,都会无条件向服务器请求上传凭证。服务器给,就采;服务器不给,就不采。这个请求不缓存、不记日志,失败也不提示。

开关不在你的电脑上。开关在别人的服务器上。

这就是整个事件里最致命的一击。用户以为自己按下了"关闭",其实只是看见了一张贴纸。

企业用户太原承明科技的取证更直接:6个工作区、34549个文件、约425MB,包含完整源代码、系统架构、版本控制历史、数据库口令、云服务凭证和员工个人信息。他们的说法是,客户端9月16日已更新到3.12.3版本,但在智谱9月18日公开致歉的当天凌晨,仍然检测到上传行为。

72小时整改,快得让人佩服,也快得让人不安

客观说,智谱这次的危机处置,是中国AI公司里少见的利落。

9月18日,出情况说明,道歉,把根源归到"代码库索引"下的Repo Wiki功能,承诺云端生成页面后数据立即销毁,并给全体用户补偿一次周额度重置。

9月19日,v3.14.0发布,更新日志里写着"修复仓库百科异常上传的问题"。

9月20日晚,MaaS平台宣布上线"数据内容不留存"功能。提示词和模型返回结果只在内存里参与当次计算,请求一结束立即释放。

9月21日早,ZCode正式开源(github.com/zai-org/ZCode),委托中国信通院和绿盟科技做安全审计,宣布漏洞奖励计划,承诺每月发布安全审计报告。

三天,从道歉到开源,从零留存到第三方审计,一套动作打完。资本市场的反馈也很直接:9月21日智谱盘中最低触及-5.96%,午后翻红,收报794港元,涨1.79%。

但快,不等于答得清。

承明科技的12页法律函里,有几个问题至今没有拿到书面答复:数据是否发生了出境传输或境外存储?ZCode客户端的网络请求指向新加坡主体,而服务协议签约主体是北京智谱华章,责任主体到底是谁?已上传数据的备份和衍生物清干净了吗?“云端生成后立即销毁”,凭什么由平台自证?

还有一个更结构性的问题。开源的是客户端代码。而做采集决策的服务器逻辑、OSS里的对象清单、销毁的时间与记录,一行都看不到。信通院和绿盟科技的审计结论,也是平台委托、平台披露。

“透明"在这里有个边界:客户端的窗帘拉开了,服务器那扇门还关着。对于一家把"代码"当作核心资产的公司来说,这个边界很微妙。你交付的是信任,而信任不能只开一半。

这一跤,摔在智谱最赚钱也最脆的地方

为什么这场风波对智谱的杀伤力,远大于一次普通的公关事故?答案在财报里。

8月31日,智谱发布上市后首份中期业绩。2026年上半年总收入9.54亿元,同比增长399.7%;净亏损20.72亿元,同比收窄12.1%;经调整净亏损19.64亿元;研发投入21.31亿元,同比增长33.6%,是同期收入的2.2倍。

真正关键的是结构变化。

开放平台及API业务收入8.25亿元,同比增长2735.7%,占总收入的比例从去年同期的15.2%飙升到86.5%。而企业级通用大模型(本地化部署)收入从1.48亿元降到6704万元,下滑54.6%。

一句话:智谱正在从"卖软件授权"转向"卖调用量”。

这条路它走得很快。API平均售价较年初提升约101%,token调用量增长超过40倍,单位token推理成本下降约80%,付费日活用户数较年初增长603%。MaaS平台用户已超740万。8月11日,ZCode宣布用户数突破100万;到9月21日,媒体报道这个数字已经到200多万。

代价也很清楚。本地化部署业务的毛利率是48.8%(2025年数据),云端API只有18.9%。今年上半年,随着云端占比拉高,公司整体毛利率从50.0%掉到26.4%,云端API业务的毛利率刚从-0.4%转正到24.6%。

于是一个残酷的循环出现了:高毛利的重交付生意在萎缩,低毛利的调用生意在膨胀。要维持增速,就要更多的数据、更密的迭代、更狠的成本控制。

而Coding,正是这条路唯一的收费站。唐杰在业绩会上把公司业务分成三个阶段:2025年以前是做本地化部署,2025年初之后进入以Coding为代表的第二阶段,再往上是Co-work和更高程度的自主执行。

问题是,这个收费站现在站满了人。阿里、腾讯、字节各自在做Coding产品,DeepSeek走极致性价比,Kimi主打Agent集群并行。智谱想守住的不是跑分第一,而是开发者的日常工作流入口。

而入口的第一道门,叫信任。

再看资本端,压力更直观。

2026年1月8日,智谱在港交所上市(02513.HK),IPO净募资48.96亿港元,开盘市值超500亿港元。之后股价一路狂飙:6月22日市值一度突破1万亿港元,跻身港股科技股第三大市值公司;有报道称最高触及2980港元、市值到过1.3万亿港元。

然后是坠落。7月17日单日下跌28.49%,一天蒸发约2000亿港元市值。9月13日宣布约50亿美元融资——20亿美元股份配售加30亿美元零息可转债,配售价714港元,较公告前收盘价折让约9.96%——次日股价一度跌超10%。

到9月18日风波爆发当天,股价收报742.5港元,总市值约3620亿港元。52周的价格区间是116.10港元到2980港元,也就是说,从最高点算,市值回撤了七成以上。(9月21日收报794港元。)

年内三轮融资,合计约756亿港元。钱是拿到了,但"万亿智谱"这个故事,已经被市场重新定价。

所以回到ZCode这件事,它的杀伤力不在于泄露了什么,而在于它戳中了一个最不该被戳中的点:

一家卖代码工具的公司,最怕的不是代码写得不如别人,是别人不敢把代码交给它。

边界,是Agent时代最稀缺的东西

说到底,ZCode不是孤例。

今年7月,安全研究者cereblab抓包了xAI的Grok Build CLI。即使提示词明确写着"回复OK,不要读取任何文件",它依然把整个仓库打包成Git bundle上传到了Google Cloud Storage。克隆回来,连智能体从未读过的文件、完整的提交历史都在。关掉"改进模型"选项,无效。

那次,是xAI在服务端关闭上传、补上退出开关、马斯克公开承诺删除已上传数据。智谱这次,路径几乎一模一样。

这不是巧合,是这个行业的通病:桌面Agent是一个拥有全盘读取权限、还常驻后台、还能联网的进程。我们却习惯用"聊天窗口"的框架去理解它。

所以,判断一个AI工具到底尊不尊重你,只需要问三个问题:

数据是否被限制在必要范围内?钥匙握在谁手里?我能不能关掉它?

智谱这次的答案分别是:不是(它要的是整个仓库历史)、服务器(本地没有可解密的私钥)、不能(那个开关是假的)。

三个问题,三个否。

智谱的整改是真的,动作也是快的,开源、审计、零留存、漏洞奖励、月度报告——该做的都做了,方向也对。但信任这东西的定价方式很特殊:涨得极慢,跌得极快。

2026年上半年的财报证明,智谱的商业化正在加速。但ZCode这件事也证明,它还没完全想清楚一件事:当你的产品握在几百万开发者手里,你已经不是一家软件公司了,你是基础设施。

基础设施的第一条规则,从来不是聪明。

是可信。

最后留个问题:如果明天你的公司要选一个AI编程工具,你会把一个连自己都打不开的加密包,当成"我们很安全"的证明吗?

参考来源

{
  "comments": [
    {
      "user": "写代码的老张",
      "time": "2026-09-22T08:12:00Z",
      "content": "那个开关是假的这条,我是真的后背发凉。我们公司上个月刚给团队开了ZCode的Coding Plan,我当时还专门去设置里把'仓库快照索引'关掉,觉得自己挺谨慎。现在才知道,我关的是一个装饰品。",
      "likes": 386,
      "replies": [
        {
          "user": "法务小姐姐",
          "time": "2026-09-22T08:31:00Z",
          "content": "日志里1339次全是false,快照却照生不误——这个细节如果被监管认定为'告知不实',性质就不是技术故障了。个人信息保护法里,'告知同意'是底线条款。",
          "likes": 152
        },
        {
          "user": "写代码的老张",
          "time": "2026-09-22T08:47:00Z",
          "content": "所以这两天我们技术组在盘凭证轮换的清单,数据库口令、云AK、CI的token,全得换一遍。成本不大,但心里膈应。",
          "likes": 63
        }
      ]
    },
    {
      "user": "价值投资者老王",
      "time": "2026-09-22T08:20:00Z",
      "content": "市场其实早就投票了。6月还在万亿港元,9月18号只剩3620亿。三个月跌掉七成,跟ZCode这件事关系不大,是'中国版Anthropic'这个故事自己撑不住了。营收9.54亿,市销率算算就知道。",
      "likes": 241,
      "replies": [
        {
          "user": "理性看IPO",
          "time": "2026-09-22T08:39:00Z",
          "content": "别把两件事混一起。财报里的结构变化是真实的好消息:API收入涨了27倍,毛利率从负转正到24.6%,付费日活涨603%。问题是这类生意的护城河是信任,恰好被这次事件正面命中。",
          "likes": 118
        },
        {
          "user": "价值投资者老王",
          "time": "2026-09-22T09:02:00Z",
          "content": "认同结构改善,但整体毛利率从50%掉到26.4%也是事实。低毛利换高增速,这条路能不能走到盈利拐点,两年后才知道。",
          "likes": 74
        }
      ]
    },
    {
      "user": "财务分析爱好者",
      "time": "2026-09-22T08:35:00Z",
      "content": "最值得警惕的是动机链条。半年亏20.72亿,研发投了21.31亿,是收入的2.2倍。年内融了三轮,756亿港元。越缺钱越要证明增速,越要证明增速就越想抓数据和压成本。这次不是某个工程师手滑,是KPI的压力溢出来了。",
      "likes": 297,
      "replies": [
        {
          "user": "行业研究员老陈",
          "time": "2026-09-22T09:10:00Z",
          "content": "补充一个背景:它高毛利的本地化部署收入上半年掉了54.6%,云端API的毛利率只有它的一半不到。基本盘在缩,新盘子薄,这种时候最容易在合规上'省事'。",
          "likes": 131
        }
      ]
    },
    {
      "user": "安全圈混子",
      "time": "2026-09-22T09:05:00Z",
      "content": "86.6%的字节是.git,过滤规则里放行.git排在所有排除之前,1MB上限和密钥清单对它不生效——这已经不是疏忽了,这是设计。一个正常做索引的功能,没有任何理由要完整的历史对象。",
      "likes": 412,
      "replies": [
        {
          "user": "Vonng的读者",
          "time": "2026-09-22T09:26:00Z",
          "content": "而且本地找不到解密私钥。备份的定义就是主人能恢复,解不开的密文不叫备份,叫交付。",
          "likes": 188
        },
        {
          "user": "安全圈混子",
          "time": "2026-09-22T09:41:00Z",
          "content": "对。还有那个filter-repo和lost-found目录被一起打包,等于把你专门清理过的敏感历史又捡回来了。",
          "likes": 96
        }
      ]
    },
    {
      "user": "用脚投票",
      "time": "2026-09-22T09:30:00Z",
      "content": "道歉、开源、审计、零留存、漏洞奖励、月度报告,三天全打完了,效率是真的高。但你注意到没有:12页法律函问的那些问题,数据有没有出境、备份删没删干净、销毁怎么证明,一个书面答复都没有。开源的是客户端,服务端还是黑箱。",
      "likes": 268,
      "replies": [
        {
          "user": "券商营业部老李",
          "time": "2026-09-22T09:52:00Z",
          "content": "卖方研报当天就出'维持买入'了,说是风险集中释放、中期逻辑没变。这是他们的立场,正常。但企业客户的采购流程不吃研报,吃的是合规审查表。",
          "likes": 143
        }
      ]
    },
    {
      "user": "吃瓜不吐皮",
      "time": "2026-09-22T10:05:00Z",
      "content": "最有意思的是时间线:16号更新3.12.3,18号凌晨新版本还在传,18号白天道歉说已修复,19号v3.14.0才算真修。那中间这一天,是谁在替谁承担风险?",
      "likes": 176,
      "replies": [
        {
          "user": "法务小姐姐",
          "time": "2026-09-22T10:22:00Z",
          "content": "所以承明科技才要问'修复效果'。企业做合规整改是有成本的,凭证轮换、日志审计、内部报备,全是真的钱和时间。",
          "likes": 108
        }
      ]
    },
    {
      "user": "隔壁厂的算法工程师",
      "time": "2026-09-22T10:40:00Z",
      "content": "说句公道话,Grok七月干过一模一样的事,提示词写着'不要读文件'照样打包整个仓库上云。整个行业都在用聊天窗口的方式理解一个全盘权限常驻进程。智谱该骂,但这不是它一家的病。",
      "likes": 205,
      "replies": [
        {
          "user": "行业研究员老陈",
          "time": "2026-09-22T11:03:00Z",
          "content": "同意,但差别在执行速度。xAI当时是服务端关链路、补开关、公开承诺删数据。智谱这次动作也不慢,开源加信通院审计,某种意义上把行业标准往前推了一步。",
          "likes": 127
        }
      ]
    }
  ]
}
累计浏览 -- 次

评论区 --