Node.js 项目于 2026 年 10 月 21 日发布安全公告,披露内置 Brotli 解码器中的越界写入漏洞 CVE-2026-111497,影响 Node.js 26.x、24.x 和 22.x 版本线。Node.js 将其评为高危,作为 CVE 编号分配机构的 Google 给出的 CVSSv4 评分为 9.2,属严重级别。
攻击者若能向使用 node:zlib 解压 Brotli 数据的应用提供恶意压缩数据,就可能破坏进程内存,进而导致进程崩溃、泄露敏感内存内容或远程代码执行。Node.js 已发布修复版本,Rapid7 建议受影响组织尽快升级。
漏洞基本情况
该漏洞编号为 CVE-2026-111497,由 Node.js 项目在 2026 年 10 月 21 日发布的安全公告中披露,问题出在 Node.js 内置的 Brotli 解码器。
漏洞被归类为越界写入(CWE-787)和未检查返回值(CWE-252)。按照厂商公告的描述,解码器把一次非法的 Brotli 块切换当作临时需要更多输入来处理,而没有将其视为永久性的格式错误。
这一处理方式使流式解码器继续把输入字节追加到一个 8 字节的内部缓冲区,畸形输入因此得以写出缓冲区边界之外,破坏进程内存。

技术成因
漏洞的源头在 Google Brotli 上游代码中,受影响的 Node.js 版本线将其作为依赖打包。CVE 记录列出的受影响上游 Brotli 范围覆盖所有平台:1.0.3 至 1.0.10 之前、1.1.0 至 1.1.1 之前,以及 1.2.0 至 1.2.1 之前。
Node.js 项目在其打包的解码器中完成了修复,修复版本见下文。由于问题出在上游解码器,其影响范围并不限于 Node.js。
厂商和项目公告还指出,Bun、Python 的 Brotli 与 brotlicffi 包、.NET、Envoy 和 Istio、brotli4j 以及部分操作系统软件包中也存在受影响的实现。各产品的受影响版本、默认暴露情况和修复方式不同,仅存在受影响解码器并不等于已经暴露,除非应用确实处理攻击者控制的 Brotli 数据。
影响范围
据 Node.js 说明,这种内存破坏可导致进程崩溃、泄露敏感的进程内存内容,或实现远程代码执行。
因此,实际暴露程度取决于应用是否会把攻击者控制的压缩数据交给受影响的解码器处理。截至 2026 年 10 月 26 日,Rapid7 尚未发现该漏洞在野被利用,CVE-2026-111497 也未列入 CISA 的已知被利用漏洞目录。
不过,考虑到该漏洞可能泄露内存或支持远程代码执行,Rapid7 仍建议相关组织优先安排修复。
修复版本与建议
厂商已提供修复该漏洞的安全更新。运行受影响 Node.js 版本的组织应尽快升级,不必等待常规补丁周期:22.x 中低于 22.23.4 的版本受影响,应升级到 22.23.4 或更高版本;24.x 中低于 24.22.1 的版本受影响,应升级到 24.22.1 或更高版本;26.x 中低于 26.12.1 的版本受影响,应升级到 26.12.1 或更高版本。
厂商表示,已停止维护(end-of-life)的 Node.js 版本线在发布安全版本时也应视为受影响,使用这类版本的组织应迁移到受支持且已修复的版本线。
Node.js 尚未发布厂商支持的工作绕过方案。如果无法立即升级,Rapid7 建议临时限制或禁用应用中对不可信 Brotli 数据进行解压的路径,以降低暴露风险,最新缓解指引可参考 Node.js 安全公告。
Rapid7 的 Exposure Command、Vulnerability Management 和 Nexpose 客户可通过针对 Linux、macOS 和 Windows 的认证漏洞检查评估暴露情况,该检查已在 2026 年 10 月 26 日的内容更新中提供。
要点
- 漏洞编号为 CVE-2026-111497,属越界写入
- Node.js 评为高危,Google 给出 CVSSv4 9.2 分
- 可导致进程崩溃、内存泄露或远程代码执行
- 受影响版本线为 26.x、24.x 和 22.x
- 修复版本为 22.23.4、24.22.1、26.12.1 及以后

正在读取登录状态…
暂无讨论,说说你的看法吧