Node.js 三条版本线发布安全更新:修复四项高危漏洞,涉及 TLS 验证与 Brotli 解码
据 IT之家 2026 年 10 月 21 日报道,Node.js 为 26.x、24.x 和 22.x 系列发布安全更新,修复涉及域名解析、TLS 证书验证、压缩解码及权限模型等环节的多项漏洞,其中包括四项高危漏洞。来源列出的更新版本为 v26.12.1、v24.22.1 和 v22.23.4。对于使用 Node.js 部署网站后端、自动化服务或 AI 应用配套工具的团队,这次更新值得优先评估。
四项高危问题:从主机名校验到解码器内存安全
此次高危漏洞中,三项与域名或主机名处理有关。CVE-2026-105482 涉及 dns.resolve 对包含 NUL 字符的域名进行截断,影响上述三个版本系列。域名输入与实际解析结果出现差异,意味着依赖这些结果进行安全判断的应用需要关注底层行为变化。
另外两项涉及 TLS 证书主机名验证:CVE-2026-105483 可在 IP 地址使用全角数字表示时绕过验证,影响 26.x 和 24.x;CVE-2026-106069 则与主机名经宽松解析后被识别为 IP 地址有关,影响三个系列。它们提示开发者,连接是否可信,不仅取决于是否启用加密,也取决于目标地址解析与证书身份匹配是否一致。
另一项高危漏洞 CVE-2026-111497 位于 Brotli 解码器。据报道,该缺陷可能引发越界写入,进而导致远程代码执行,三个系列均受影响。这里需要区分漏洞后果与实际攻击情况:来源说明了潜在风险,但未提供已遭利用的信息。
中低危修复同样涉及应用运行边界
除高危问题外,本次更新还覆盖 HTTP 连接处理、随机值生成、压缩文件处理和文件系统权限等场景,不能只按严重等级忽略其业务影响。
- Keep-alive 套接字可能处理请求发送前已写入的响应;非规范 IPv4 主机名还存在证书验证不正确的问题,两项均涉及三个版本系列。
- crypto.randomUUID() 与 randomInt() 的熵缓存可能被保存在用户态启动快照和 SEA 中,导致不同进程重复生成相同值,三个系列均受影响。
- 26.x 的 ZIP 文件头验证失败后,仍可能返回攻击者控制的前缀字节;该系列还修复了通配符匹配授予过多文件系统权限的问题。
- 通过 fs.realpathSync 绕过权限模型的问题涉及 26.x、24.x 和 22.x。
影响与解读:AI 工具链也要检查运行时
对中文开发者而言,Node.js 的安全维护不只关乎传统网站。若 AI 产品的接口层、工具调用服务、自动化脚本或桌面工具构建流程依赖它,底层运行时也应纳入资产排查。不过,使用 Node.js 不等于所有漏洞都可被触发,实际风险仍取决于版本、功能调用方式及输入是否可被外部控制。
建议团队先确认生产服务、容器镜像和打包工具中实际使用的 Node.js 版本,再升级对应版本线的安全版本,并对 HTTPS 请求、域名解析、Brotli 数据处理及权限限制开展回归测试。使用启动快照或 SEA 的项目,还应检查随机值生成相关逻辑。此次更新的关键启示是:应用层依赖更新之外,运行时本身也是安全维护的重要一环。