Zod 4.6.6 版本遭投毒,切勿安装

Zod 4.6.6 compromised by malware?

知名 TypeScript 库 Zod 的 4.6.6 版本被曝存在严重安全隐患,极可能已被恶意投毒。代码审查发现,该版本在 package.json 中植入了隐蔽的 preinstall 脚本,并在 meta.test.mjs 文件中藏匿了高度混淆的恶意代码。一旦安装,该脚本会通过以太坊 RPC 节点(如 eth.llamarpc.com 和 cloudflare-eth.com)远程拉取并执行未知载荷,甚至会在本地临时目录写入文件后自动清理痕迹。开发者社区已紧急发出警报,建议所有用户立即回退至 4.6.5 版本,并彻底排查依赖环境,防止供应链攻击扩散。

不要安装 Zod 4.6.6,它可能已被感染。
  1. colinmcd

    Zod 维护者在此。正如其他人指出的那样,没有任何发布版本包含恶意软件。这事发生在三周前,而且被迅速发现了。我所有的 git 和 npm 凭证都已立即撤销,以防进一步访问。NPM 团队的安全分析报告在此 [0]。

    看起来是 git push 凭证(可能是 SSH 密钥)从我本地电脑中被窃取了。攻击者利用它试图推送 Zod、standard-schema 和 nub 的恶意版本。Zod 和 standard-schema 的发布工作流已经针对此类情况进行了加固(基于环境范围的受信任发布,需要 npm 凭证),因此无法通过简单的提交触发。nub 的发布 CI 确实被触发了,但在发布前就被 npm 标记为恶意软件。

    我所有的包都已切换到“分阶段受信任发布”,任何发布都需要双重认证(2FA)。由于我不确定还有哪些东西被泄露,我也对整个操作系统进行了重装,并轮换了在受攻击时旧机器上存在的所有凭证。

    讽刺的是,这很可能是在为 nub 的包管理器开发沙箱时发生的。这种攻击与一种较原始的 Shai-Hulud 风格蠕虫的早期变种一致。在开发沙箱时,一个伪造的代理可能在测试运行中执行了 npm 上某个被篡改的包。我本有防范措施(例如过滤掉任何被 OSV 标记的包等),但也许存在尚未发现的恶意包。未来的相关工作将在 o […] 进行。

  2. jaynetics

    被篡改的代码实际上并未发布。这篇分析文章包含大量信息:

    https://github.com/orgs/community/discussions/208477

  3. yuvalkarmi

    这是三周前的事了,各位。这确实是真实的仓库被入侵事件——恶意代码确实进入了 Zod 的主分支,但没有发布到 npm。

    9 月 21 日,有人利用 Colin 的 git 凭证将这段被篡改的代码推送到项目中,Colin 发现后于当天就回滚了它(PR #6620)。他随后在 10 月 11 日发布了 4.6.6 版本,但该版本并不包含被感染的代码。

    顺便一提,Zod 并非唯一被攻击的目标——同样的攻击也针对 standard-schema 和 nub 进行了尝试。nub 确实发布到了 npm,但被 npm 的恶意软件扫描拦截了。

    这看起来是一次合法的(好吧,是非法的)供应链攻击尝试,但没有任何实际的 Zod 发布版本被攻破。

  4. luggage_bazooka

    最新版本的 4.6.6 有一个非常有趣的提交(d821685)“修复 bug 并提升性能”,其中包含以下更改 https://github.com/colinhacks/zod/commit/d821685ea6732436fcd...

    我还没仔细研究 packages/mini/meta.test.mjs 具体在做什么,但看起来不太妙。

  5. jaapz

    可能还挺温和的,它确实被感染了——编辑:标题已更改,之前写的是“可能被感染”。

    恶意软件似乎会在 zod 安装时注入一些 JS 负载来执行,通过从以太坊智能合约获取(如果我没理解错的话)。

    别忘了在 npm 上标记该版本。

    编辑:看起来这次更新从未发布到 NPM:https://news.ycombinator.com/item?id=50053253

同日更多故事

2026-10-12