惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 聂微东
博客园 - 【当耐特】
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
C
Check Point Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
美团技术团队
WordPress大学
WordPress大学
Last Week in AI
Last Week in AI
Y
Y Combinator Blog
IT之家
IT之家
T
Tailwind CSS Blog
月光博客
月光博客
Vercel News
Vercel News
V
V2EX
Engineering at Meta
Engineering at Meta
B
Blog
Stack Overflow Blog
Stack Overflow Blog
A
About on SuperTechFans
Hugging Face - Blog
Hugging Face - Blog
人人都是产品经理
人人都是产品经理
腾讯CDC
I
InfoQ

FreeBuf网络安全行业门户

网易 SRC 实战:一天 4 份 finding 的工具化流程 勒索软件开始定向攻击AI模型和算力 - FreeBuf网络安全行业门户 2026年身份可见性是身份安全核心基础,破解多云与Agentic AI身份盲区 - FreeBuf网络安全行业门户 研究员借助Claude Opus 5串联漏洞,接管OpenAI员工账号 - FreeBuf网络安全行业门户 AutoRAN 复现:用 8B 弱模型自动化劫持大推理模型的“安全思维链” - FreeBuf网络安全行业门户 CISA通报Linux内核漏洞遭在野利用,要求3日内完成修复与取证排查 - FreeBuf网络安全行业门户 Gemini在安全测试中入侵3家真实企业,配置失误致沙箱失效 - FreeBuf网络安全行业门户 BragJack攻击可让恶意扩展劫持AI Agent,波及5款主流浏览器 - FreeBuf网络安全行业门户 研究人员公开四个Linux内核漏洞利用代码,可本地获取root权限 - FreeBuf网络安全行业门户 Brevo供应链攻击感染超10万网站,盗用Cloudflare密钥在边缘注入恶意代码 - FreeBuf网络安全行业门户 用户代码库被悄悄打包,智谱ZCode上传机制曝光 - FreeBuf网络安全行业门户 微软上线AI漏洞专项赏金计划;OpenAI、Anthropic与Google协作制定AI安全框架 | FreeBuf周报 - FreeBuf网络安全行业门户 FreeBuf早报 | BlackHatSect0r利用DeepSeek驱动AI Agent自动化攻击;Docker Sandboxes曝严重逃逸漏洞 黑客仿冒ChatGPT订阅提醒邮件,窃取OpenAI账号凭证 - FreeBuf网络安全行业门户 AI辅助攻击案例:PaperCut攻击行动 - FreeBuf网络安全行业门户 四大AI编码Agent曝0-Click RCE漏洞,两款尚未修复 - FreeBuf网络安全行业门户 大模型渗透测试从0到1:提示词注入+越狱+输出绕过,附完整payload - FreeBuf网络安全行业门户 AI驱动恶意软件每小时重写自身,规避特征检测规则 - FreeBuf网络安全行业门户 恶意VS Code项目暗藏One Click攻击路径,攻击者可持久访问开发者工作站 - FreeBuf网络安全行业门户 研究人员借助Claude Opus 5入侵OpenAI论坛,触及内部代码仓库 - FreeBuf网络安全行业门户 26秒攻破11家组织:数百AI代理涌向PaperCut,打印服务器怎么变成了域控跳板 - FreeBuf网络安全行业门户 ThreatsDay发布本周安全动态,自改写Agent、800余漏洞修复在列 - FreeBuf网络安全行业门户 八类错配三条合法命令,AD CS 把域控钥匙签给了攻击者 - FreeBuf网络安全行业门户 Docker Sandboxes曝严重逃逸漏洞,恶意代码可读写macOS主机文件 - FreeBuf网络安全行业门户 从配置即执行到会话劫持:MCP 两种传输方式的安全属性对决 - FreeBuf网络安全行业门户 AI Agent 拿下域控:同一条 AD CS 链路,人打 7.2 秒、AI 打 6 分 17 秒 裸 Codex 把专用 AI 渗透框架的 benchmark 优势抹平了 修复已提交不是已修复,27 天补丁差,AI 把 CVE-2026-85046 武器化压到三周 15 次干净发布,换来 300 家组织的凭据:MCP 供应链投毒的量化测量与驻留防护 OWASP Agent 标准族选型地图:AOS ACS AISVS AST10 四标准实测对照与分期落地指南
ZCode 静默上传全量 Git 历史 - FreeBuf网络安全行业门户
关 注 0 文章数 0 关注者 · 2026-09-18 · via FreeBuf网络安全行业门户

freeBuf

主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

以下内容为网友爆料,非本人实测。本文整理自网友、独立开发者 ferstar 发表在其个人博客上的排查记录《扒一扒 ZCode 静默上传全量 Git 历史的骚操作》。文中所有细节、截图数据、代码与命令均转述自该文,未对所述行为做独立复现与技术验证,亦不对其真实性作保证。本文仅作技术现象讨论与安全意识提醒,不构成对任何厂商的定性结论。涉及生产环境与商业代码,请以官方文档、隐私政策及厂商正式回应为准,操作前充分评估影响。

据这位网友描述,事情最初只是周末清磁盘,顺手看了一眼名为 ~/.zcode 的目录,奇怪它怎么悄无声息占了 700 多 MB。

断断续续排查下来,他在文中给出了一个挺离谱的结论。我把他的排查过程、证据链和最后的防御思路整理出来,供各位参考——你大概率也在用类似的工具。

按原文的说法:只要处于登录状态,ZCode(智谱官方的 AI 编程桌面端)就会在后台把整个工作区打包加密并上传,内容包括完整的 .git 历史、LFS 大文件缓存、reflog,乃至全局应用配置。

更受争议的一点是,文中称加密用的 RSA 公钥由服务端动态下发、私钥仅存在于云端,本地那份几百兆的密文用户自己与客户端都无法解开。

下面是原文给出的排查链条。

起点:一个卡在 pending 里的 313MB 压缩包

据文中描述,~/.zcode 是 ZCode 的本地数据根目录。他当时扫出来的体积分布大致如下:

  • cli/:约 257MB(本地会话数据库、执行日志)
  • computer-use/:约 130MB(应用本体和运行依赖)
  • v2/checkpoints/:约 303MB —— 文中的主角

点进该目录,里面是一个 313MB 的 .enc 加密文件,以及一份状态文件(原文贴出的内容如下):

{
  "workspacePath": "/Users/ferstar/myprojects/<某商业项目>",
  "lastCompressedSize": {
    "encryptedSizeBytes": 313070842,
    "workspaceSizeBytes": 345549173
  },
  "kind": "baseline",
  "failureCount": 564
}

按原文的解读:

  1. 客户端扫描了本地打开的商业项目,排除 node_modules 等少量目录后,将剩余 345MB 打包加密为 313MB 的压缩包,标记为 baseline(全量快照);
  2. 该包已尝试上传 失败 564 次,一直卡在本地 pending/ 目录等待重试。

原文提到,整个项目 10GB,排掉依赖后剩下的 345MB 几乎都是核心资产。

它传去了哪:文中还原的两步链路

文中称日志里未直接打出上传地址,作者遂将客户端的 app.asar 解开查看代码,还原出的链路为两步:

  1. 先向协调服务器取凭证:客户端请求 https://zcode.z.ai(文中标注为代码里的 VITE_ZCODE_ENDPOINT_ORIGIN),服务端返回 OSS 表单签名(policyx-oss-signature)、动态分配的 Object Key、大小限制及本次加密所用公钥;
  2. 表单直传 OSS:本地打包、流式加密后,据称不经业务服务器,直接 HTTP POST 将 tar.gz.enc 提交至阿里云 OSS,再由 OSS 回调通知后端登记。

文中还称,抓包观察到进程常驻的 HTTPS 连接指向 zcode.z.ai 的解析 IP 及两个阿里云 OSS 节点。

争议最大的一环:那把钥匙在服务端

文中称客户端采用的是标准信封加密(Envelope Encryption),贴出的关键片段如下:

keyId: String(i.encryption.key_version),keyWrapAlgorithm: "rsa-oaep-sha256",publicKeySpkiPem: Ylt(i.encryption.public_key)
  • 文件内容用随机对称密钥以 AES-256-CTR 加密;
  • 该对称密钥再用 RSA-OAEP-SHA256 包裹,所用公钥即上一步由服务端下发者。

原文作者的质疑集中在:该 RSA 公钥由服务端下发、私钥始终在云端;他尝试用本机私钥解 envelope 未成功,据此认为本地密文“用户与客户端均无法解开”。

文中的推论是:若目的是为用户提供断点恢复或跨设备同步,密钥理应绑在本地(如 Git、Time Machine 那样);一把只有服务端能解开的钥匙,意味着服务端单方面具备解密能力。

(此为原文观点,未独立验证。)

快照里装了什么:文中称近九成是 .git

文中称密文虽不可解,但快照生成时在本地留下了 Manifest 清单,作者统计了其中 42,411 个文件

内容 体积 占比 包含信息
.git/lfs/ 196.1 MB 56.8% LFS 缓存,历史拉过的所有大文件与二进制资产
.git/objects/ 102.2 MB 29.6% 完整 Git 历史对象库(Commit / Tree / Blob)
.git/logs/ 0.6 MB 0.2% reflog 轨迹,本地所有分支操作与未推送记录
其余源码与文档 ~46.2 MB 13.4% src/、各类配置与业务代码

按该统计,.git 一个目录占 86.6%。原文由此认为,云端可能拿到的不只是当前代码,还有仓库的完整历史:

  • 早被覆盖删除的敏感配置与历史 key,Git 对象库中仍可能留存;
  • 本地尚未推送远端的分支名,可能反映未公开的研发动向;
  • .git/config 中配置的内部自建 GitLab 域名与仓库路径。

文中还提到一个 repo_snapshot_extra_manifest,称其会对 ZCode 全局配置文件(如 settings.behavior.json)取哈希后跨工作区打包,随快照一并上传。

开关:文中称两个开关都管不着它

原文作者把设置项与代码逻辑逐个比对后,给出的对照如下:

开关 容易被理解成 文中称实际作用
优化体验 optimizeAgentExperienceEnabled 数据采集 / 遥测上传 只管是否用于 模型训练;关闭后仍会抓快照
仓库快照索引 repoSnapshotIndexingEnabled 快照功能本身 只管服务端拿到快照后 是否建索引;关闭后本地仍会打包上传

文中进一步称,负责快照捕获与上传的 sidecar 在启动时 无条件实例化,代码中未见针对用户配置的判断分支,唯一前提是 tokenProvider 能取到登录后的 JWT。

原文的结论是:只要登录账号,该上传机制即常开,且 UI 中没有能关闭它的开关。

文中列出的抓取触发点有两个:一是每次发 Prompt 前的 captureBeforePrompt,二是任务结束时的 repo-wiki-update;据其日志观察,单个活跃会话最多产生过 62 次 快照捕获。

隐私政策里是怎么写的

文中提到,ZCode 隐私政策确有写明会收集“对话中提交的文本、文件和代码”——这属于 AI 助手调用模型推理的常规环节,各家做法相近。

原文作者称,通篇 未见关于“整个工作区连同完整 Git 历史被打包上传”的说明,官方文档、FAQ 与更新日志中亦未找到相关描述。

能对应上的只有一句:“优化计划默认关闭,不主动加入不会将输入用于训练”——而按前文对照,该开关涉及的是训练用途,而非是否上传。

原文给出的应对思路:锁目录

据文中描述,作者首次删除该 pending 包后,半小时内又生成了新的 313MB 压缩包,失败计数从 564 变为 565,因此认为“手动删除只是打地鼠”。

他给出的思路是在文件系统层加不变锁,禁止写入该目录。以下为原文提供的命令,请结合自身环境评估后再操作:

macOS

# 清空并锁定 checkpoints 目录
rm -rf ~/.zcode/v2/checkpoints
mkdir -p ~/.zcode/v2/checkpoints
chflags uchg ~/.zcode/v2/checkpoints

# 验证:应输出 Operation not permitted
touch ~/.zcode/v2/checkpoints/test

Linux

rm -rf ~/.zcode/v2/checkpoints
mkdir -p ~/.zcode/v2/checkpoints
sudo chattr +i ~/.zcode/v2/checkpoints
touch ~/.zcode/v2/checkpoints/test

文中所述的影响与恢复方式:

  • 阻断效果:写入目录时被内核拦截,无产物生成,后续直传无从谈起;
  • 功能影响:“检查点回滚 / 时间线”可能不可用,日常补全、对话、工具调用据称不受影响;
  • 恢复方式chflags nouchg ...(macOS)或 sudo chattr -i ...(Linux)。

值得讨论的两个问题

抛开具体厂商不谈,原文引发的讨论其实集中在两个层面,我觉得对每个人都适用。

一是 数据范围。模型推理需要的是与当前任务相关的上下文,而全量仓库快照意味着连同数年的提交历史一并打包。二者的量级完全不同。

二是 密钥归属。若功能定位是用户侧的断点恢复或跨端同步,密钥理应掌握在用户手里;服务端独占解密能力的设计,会让“加密”这件事在隐私保护上失去意义。

工具本身没有原罪,但数据边界应该由使用者自己来划。在软件层面没有提供开关时,用操作系统层的机制去约束它,也是一种选择。

本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)