智谱AI修复ZCode代码上传漏洞,将开源代码库重建信任

0 阅读

ZCode代码上传风波始末

9月中旬,有开发者在社区反馈,使用智谱AI推出的代码助手ZCode时,发现本地项目文件被自动上传至远程服务器。这一行为触发了广泛担忧——毕竟对程序员来说,未公开的源码往往涉及商业逻辑、安全密钥甚至尚未申请专利的核心算法。

起初,ZCode团队并未第一时间回应。直到多个技术论坛出现类似报告,官方才在9月20日发布详细说明,承认问题存在并致歉。

核心争议点在于“代码库索引”功能。该功能本意是提升用户体验:当你在ZCode中打开一个本地仓库,它会尝试构建索引,以便支持会话断点恢复、历史版本回退,以及自动生成Repo Wiki页面。问题出在Repo Wiki的生成逻辑上——为了渲染页面结构,系统需要将整个仓库的部分元数据(包括文件路径、函数签名、注释等)上传到云端处理。

更关键的是,这项功能上线时默认开启,且没有明显的权限提示。很多用户根本不知道自己的代码正在“外传”。

官方回应:数据不留存,漏洞已修复

在情况说明中,ZCode团队强调,上传的数据仅用于临时生成Wiki页面,处理完成后立即销毁,不会存储在任何持久化数据库中,也不会用于模型训练或其他用途。

“我们理解开发者的敏感性,”声明写道,“即使数据不留存,未经明确同意的上传行为本身也是不可接受的。”

目前,该功能已调整为默认关闭。用户需手动启用,并在首次使用时看到清晰的授权弹窗,说明将上传哪些内容、用途是什么、保留多久。同时,后台逻辑也做了隔离,确保即使启用,也不会上传.git目录、node_modules、.env等敏感路径。

此外,所有ZCode用户已在9月20日当天获得一次额外的“周额度”重置。这意味着原本本周用完免费调用次数的用户,可以重新开始计费周期——算是对受影响用户的直接补偿。

开源与第三方审查:重建信任的两步棋

但光靠道歉和修复显然不够。开发者要的是可验证的透明。

ZCode宣布,将在“近期”开源其客户端及核心服务端代码。虽然未给出确切时间表,但明确表示会优先开放与数据处理相关的模块。开源后,任何人都能审查代码逻辑,确认是否存在隐藏上传、后门或日志记录。

与此同时,团队已联系多家安全公司和独立研究员,邀请他们开展第三方审计。审计范围包括数据传输链路、临时存储机制、权限控制策略等。ZCode承诺将分阶段公开审计报告,不遮掩问题。

这种组合拳在AI工具领域并不常见。多数厂商选择闭源+模糊声明,而ZCode这次选择把代码摊开,算是对信任危机的一次正面回应。

默认开启为何成“雷区”?

这件事背后,其实戳中了AI编程工具的一个通病:为了追求“开箱即用”的流畅体验,厂商常常把高权限功能设为默认开启。

比如某些AI助手会自动扫描整个工作区,甚至读取剪贴板;有的在首次运行时就请求访问所有本地文件。理由听起来很合理:“这样才能提供上下文感知的智能补全”。但对开发者而言,这相当于把家门钥匙交给一个陌生人,还被告知“你放心,我只看客厅”。

ZCode的问题不是孤例。去年某国际知名AI编码插件也曾因类似行为被社区声讨,最终被迫修改默认策略。区别在于,ZCode这次反应更快,补救措施也更彻底。

值得思考的是:在AI辅助编程越来越普及的今天,用户是否真的愿意用隐私换便利?从社区反馈看,答案是否定的。大多数开发者宁愿多点几次确认按钮,也不希望代码在不知情下离开本地。

开发者该如何自保?

即便厂商承诺“数据不留存”,谨慎仍是第一道防线。以下几点建议或许能帮你在使用AI编程工具时降低风险:

  • 检查网络请求:用Charles、Wireshark等工具监控插件是否在后台上传数据。
  • 限制访问范围:只在必要时授予工具访问特定项目目录的权限,避免全局授权。
  • 屏蔽敏感文件:确保.gitignore中包含密钥、配置文件等,部分工具会尊重这些规则。
  • 优先选择本地模型:如CodeLlama、StarCoder等可本地运行的模型,数据完全不出设备。
  • 关注开源项目:像Continue、CodeWhisperer(社区版)等开源或透明度高的工具更值得信赖。

当然,这不该全由用户承担。工具厂商有责任把隐私设计(Privacy by Design)融入产品基因,而不是事后补救。

信任一旦受损,重建需要时间

ZCode这次处理得不算差:快速响应、承认错误、修复漏洞、补偿用户、承诺开源、引入第三方。但信任的裂痕不会一夜弥合。

很多开发者已经卸载插件,转投其他工具。有人留言说:“就算现在改了,谁知道之前有没有偷偷留底?”这种怀疑很难用技术手段消除,只能靠长期透明的行为来慢慢修复。

对整个AI编程行业来说,这也是个警示:功能再强大,如果建立在用户不知情的数据上传之上,终将反噬。未来的竞争,或许不只是模型能力的比拼,更是隐私保护和透明度的较量。

ZCode选择开源,迈出了关键一步。接下来,就看代码是否经得起 scrutiny(审查)了。