封面新闻记者 杨峰

9月21日,针对开发者指出的后台打包上传用户项目的现象,智谱旗下独立桌面AI编程客户端ZCode通过官方公众号宣布整改完成、客户端代码开源,并向用户致歉。智谱称,第三方安全审计确认相关云端存储桶及全部数据对象已删除。

开发者清理磁盘 发现软件项目被后台打包上传

9月18日,开发者Ferstar发布排查记录称,他清理磁盘时发现ZCode数据目录占了700多兆,一个checkpoints文件夹里存着313MB加密文件和一份状态文件。状态文件显示,客户端扫描了他本地打开的一个商业项目,把345MB内容打包加密成全量快照并尝试上传,连续失败564次。清单列出42411个文件,其中保存完整版本记录的Git目录占86.6%,当前源码和文档只占约13.4%。

开发者Ferstar称,被打包的主体是项目几年来的完整修改历史,而非他当下在写的代码。Git历史能找回旧版本,也意味着从代码里删掉的东西未必真消失:误提交的密钥、内部服务器地址、未推送的本地分支,都可能留在历史里被一并传走。

Ferstar还原的上传链路是:客户端向服务器申请上传凭证,服务器返回云存储地址和一把公钥,文件本地加密后直传阿里云对象存储。ZCode界面有两个开关,分别只管数据是否用于模型训练、是否为快照建索引;在他使用的问题版本里,两个开关都关闭后,客户端仍会打包上传。随后,另有开发者在Windows系统上复现出同样的目录和状态文件。

致歉、开源、质疑企业撤回指控

9月18日,智谱在官方用户群说明并致歉:上传源于内置的“代码库索引”功能,数据仅用于云端生成代码知识库页面,完成后立即销毁。

9月19日,ZCode推送3.14.0版本,更新日志写明“修复仓库百科异常上传的问题”;Ferstar发现问题时使用的版本是3.12.3。9月20日晚,智谱MaaS平台另行宣布,近期将上线“数据内容不留存”功能,生效后模型调用的输入、输出不再静态存储。9月21日,ZCode客户端代码开源至GitHub。

GitHub上的ZCode公开仓库显示,其创建于9月20日,只有2个提交、没有版本标签,在文件树中检索,找不到Repo Wiki和上传凭证相关路径,抹平了内部开发历史,外界看到的是整改后版本,出问题时的旧代码已无从比对。

Ferstar在核对开源的代码后称,他找到了检查点功能的实现代码,其核心是在本地调用Git命令做增量比对、元数据存放在本机,不依赖云端。“此前官方拿‘检查点回滚’当理由来解释整仓上传,在源码面前站不住脚。”

9月19日,ZCode的企业用户太原承明科技向智谱发函,提出12项答复要求,并保留索赔、诉讼权利;随后,该公司又发布澄清说明,称函件举证有误、措辞过度,撤回所列主张。9月22日,记者联系到该公司,其技术人员称,此前指出的问题在更新后的版本中已无法复现。

以代码开放接受社区监督

9月21日,智谱公司工作人员向封面新闻记者表示,针对社区反馈的ZCode产品安全问题,公司已完成整改并正式将ZCode开源至GitHub。中国信息通信研究院技术评测确认,zcode-prod阿里云OSS存储桶状态为云端零数据;绿盟科技审查确认,相关存储桶及全部数据对象均已删除。ZCode v3.14.0已移除Repo Wiki入口及生成链路,未发现可触发本地仓库快照或文件外发的功能。

截至发稿,中国信通院和绿盟科技均未公开本次审计的报告或结论。

智谱方面称,将建立常态化漏洞反馈机制,并根据问题严重程度给予奖励;开源是回应用户关切、提升产品透明度的重要一步,未来将邀请社区共同参与产品改进。对于社区中提及的代码数据,智谱承诺未留存,也从未将其用于模型训练。