Node.js 为 26.x、24.x、22.x 三个分支同时放出安全更新,一口气处理 10 个漏洞,其中 4 个被列为高危。补丁版本分别是 26.12.1、24.22.1、22.23.4,发布日程定在 2026 年 10 月 21 日。三个受支持分支里,高危就是本次的最高风险等级。

打开网易新闻 查看精彩图片

最严重的后果来自 Brotli 解码器。CVE-2026-111497 影响全部三个发布线,问题是一处越界写(out-of-bounds write),可被用来实现远程代码执行。说白了,解码器会往预期内存区域之外写数据。处理不受信任 Brotli 压缩内容的应用,在排补丁计划时得格外上心。

另外两个高危都出在 TLS 证书主机名校验上,指向同一个问题:证书到底有没有正确匹配它该去的目标。

  • CVE-2026-105483:当 IP 地址使用全角数字时,主机名校验可被绕过,影响 26.x 与 24.x。
  • CVE-2026-106069:涉及松散解析到某个 IP 地址的主机名,三个分支全部受影响。

第四个高危是 CVE-2026-105482,dns.resolve 会截断含 NUL 字符的域名,三个发布线都在范围内。对依赖一致域名处理、再执行 DNS 查询的应用来说,这个缺陷值得警惕。这批修复也接在此前 Node.js 的 TLS 认证绕过补丁之后,那些补丁处理的同样是主机名处理与证书校验上的差异。

三个中危把这次更新的覆盖面拉得更宽,且全部影响 26.x、24.x、22.x:

  • CVE-2026-105481:keep-alive 套接字可以处理一个在请求发出之前就写好的响应。
  • CVE-2026-106072:非标准 IPv4 主机名的证书校验不当,使 DNS 证书名能够认证 IP 端点。
  • CVE-2026-106074:影响存放在启动快照与单可执行应用中的缓存随机数据,由这些产物创建的进程会重复返回 crypto.randomUUID() 与 crypto.randomInt() 的值。

剩下的问题评级为低。CVE-2026-106070 涉及 ZIP 头校验失败后返回攻击者可控的字节;CVE-2026-106071 可通过通配符匹配授予过度的文件系统访问权限——这两个只影响 26.x。CVE-2026-106073 则借 fs.realpathSync 绕过 Permission Model 检查,三个分支都中招。此前 Node.js Permission Model 的漏洞,暴露的也是文件系统限制上的缺口。

发布说明里还列了 c-ares、CA 证书、Undici、OpenSSL 与 SQLite 的更新,各组件覆盖的分支不尽相同。

落到操作层面,管理员该做的是:部署对应的补丁版本,需要时重建应用镜像,重启受影响的服务。测试重点覆盖出站 HTTPS 连接、DNS 处理、压缩内容,以及受权限限制的工作负载。团队应查阅 Node.js 官方安全公告,避开不再支持的版本——项目方明确提醒,即使发了安全版本,已结束生命周期的分支依然受影响,迁移到受支持分支是修复工作的一部分。