Node.js是基于Chrome V8引擎的开源跨平台JavaScript运行时,采用事件驱动、非阻塞 I/O 模型,广泛用于构建服务端与网络应用,其内置的node:zlib模块提供Brotli压缩与解压能力。
近日,监测到官方修复Node.js Brotli解码器远程代码执行漏洞(CVE-2026-111497),该漏洞位于Google Brotli解码器(c/dec/decode.c),并影响Node.js内置的Brotli解码器(deps/brotli)。恶意Brotli流可耗尽 block_length[2]并触发非法块切换,旧版BROTLI_SAFE将其误判为“输入不足”,重试循环继续向BrotliDecoderState.buffer.u8[]追加数据,越界覆盖buffer_length、pos、max_distance等字段,造成内存破坏、敏感内存泄露和拒绝服务;特定布局下还可覆盖回调指针,导致远程代码执行。
建议受影响用户做好资产自查以及预防工作,以免遭受黑客攻击。
二、影响范围
1.1.0 <= Google Brotli < 1.1.1
1.2.0 <= Google Brotli < 1.2.1
Node.js 22.x < 22.23.4
Node.js 24.x < 24.22.1
Node.js 26.x < 26.12.1
1.0.3 <= PyPI brotli < 1.2.1
1.0.3 <= PyPI brotlicffi< 1.2.1.0
Node.js 20.x、21.x、23.x、25.x 已停止维护,同样受该缺陷影响但不再提供修复。
三、修复建议
官方已发布安全补丁,请及时更新至最新版本:
Node.js 22.x >= 22.23.4
Node.js 24.x >= 24.22.1
Node.js 26.x >= 26.12.1
Google Brotli >= 1.0.10
Google Brotli >= 1.1.1
Google Brotli >= 1.2.1
Designed by