Files
wxvl/doc/2026-10/【已复现】Node.js Brotli 解码器远程代码执行漏洞(CVE-2026-111497).md
T
test 435d83d9fe 正在获取URL...
chainreactors: 17 个URL
BruceFeIix: 27 个URL
Doonsec: 36 个URL
总共去重后: 48 个URL
【已复现】Node.js Brotli 解码器远程代码执行漏洞(CVE-2026-111497)、藏了 14 年的漏洞,一周之内让半个互联网开始加班、客户端漏洞挖掘skills v1.1、Python生态曝Brotli高危漏洞(CVE-2026-111497): Node2Shell(HTTP2Shell)影响范围扩大,或导致远程代码执行、​CNNVD | 关于Oracle多个安全漏洞的通报、【新增产品解决方案】PHP 远程代码执行漏洞(CVE-2026-109618、CVE-2026-109619)安全风险通告、赏金视角下的缓存欺骗与投毒:补丁比漏洞更危险?Cloudflare 绕过与 DoS 翻车复盘、只需修改 URL 即可登录后台?教育网这套系统暴露未授权访问漏洞、GitHub开源AI渗透测试工具PentestCode:13个Agent共享战况,自己却踩过两个高危漏洞、PHP2Shell从漏洞修复到威胁狩猎的证据链分析、某统一身份认证通杀漏洞挖掘、从Node.js高危漏洞爆发,看山石网科的风险软件治理之道、
2026-10-24 08:41:13 +00:00

9.5 KiB
Raw Blame History

【已复现】Node.js Brotli 解码器远程代码执行漏洞(CVE-2026-111497)

安恒信息CERT 2026-10-24 05:45

安恒信息安全通告

漏洞概述
漏洞名称
Node.js Brotli 解码器远程代码执行漏洞(CVE-2026-111497)
安恒CERT评级
1级
CVSS4.0评分
9.2
CVE编号
CVE-2026-111497
CNVD编号
未分配
CNNVD编号
未分配
安恒CERT编号
DM-202610-013151
POC情况
已发现
EXP情况
已发现
在野利用
未发现
研究情况
已复现
危害描述
CVE-2026-111497 是 Node.js 随包 Brotli 解码器中的越界写入漏洞(CWE-787、CWE-252),上游缺陷位于 Google Brotli 的 c/dec/decode.c。解码器遇到非法的块类型切换时,将其误判为需要更多输入而不是永久格式错误,导致流式解码器持续把输入字节追加到一个仅 8 字节的内部缓冲区,写入越过缓冲区末尾,破坏相邻的解码器状态内存。未经身份认证的远程攻击者只需向使用 node:zlib 解压 Brotli 数据的功能投递特制压缩流即可触发,可造成解码进程崩溃、泄露进程内存内容,并可能进一步在目标服务端执行任意代码。Node.js 22.x、24.x、26.x 分支均受影响;Google Brotli 1.0.3 至 1.2.0、PyPI 包 brotli 低于 1.2.1 与 brotlicffi 低于 1.2.1.0 同样受影响。

该产品主要使用客户行业分布广泛,漏洞危害性极高,建议客户尽快做好自查及防护。

安恒研究院卫兵实验室已通过恒脑.零日雷达复现此漏洞。

screenshot

漏洞信息

Node.js 是基于 Chrome V8 引擎的开源跨平台 JavaScript 运行时,采用事件驱动、非阻塞 I/O 模型,广泛用于构建服务端与网络应用,其内置的 node:zlib 模块提供 Brotli 压缩与解压能力。

漏洞描述

漏洞危害等级:
严重

漏洞类型:
越界写入

影响范围

影响版本:
Node.js 22.x 低于 22.23.4、24.x 低于 24.22.1、26.x 低于 26.12.1(即随包 Google Brotli 1.0.3 至 1.2.0 的版本);Google Brotli 1.0.3 至 1.2.0;PyPI brotli 低于 1.2.1、brotlicffi 低于 1.2.1.0。Node.js 20.x、21.x、23.x、25.x 已停止维护,同样受该缺陷影响但不再提供修复。

CVSS向量

访问途径(AV):网络

攻击复杂度(AC):高(AT:P,存在额外攻击前提)

所需权限(PR):无需任何权限

用户交互(UI):不需要用户交互

影响范围(S):不适用(CVSS 4.0 无 S 指标)

机密性影响(C):高

完整性影响(I):高

可用性影响(A):高

修复方案

官方修复方案

Node.js 官方已于 2026 年 10 月 21 日发布安全版本 22.23.4、24.22.1、26.12.1,分别修复 22.x、24.x、26.x 分支随包 Brotli 解码器的越界写入问题。请按所在分支升级到以下版本或更高版本:22.x 升级至 22.23.4 及以上,24.x 升级至 24.22.1 及以上,26.x 升级至 26.12.1 及以上。20.x、21.x、23.x、25.x 等已停止维护的分支不再提供修复,应迁移到受支持版本。直接使用 Google Brotli 的场景应升级至 1.0.10、1.1.1 或 1.2.1 及以上,上游修复提交 0ed4268a 让解码器在块类型非法时立即返回错误码,不再继续向 8 字节内部缓冲区追加输入;Node.js 侧对应回补提交为 nodejs/node 67d294739f。容器镜像、CI 运行时、Electron 等打包形态需同步更新其中内置的 Node.js 与 libbrotlidec 后重新构建。

信息来源:https://nodejs.org/en/blog/vulnerability/october-2026-security-releases#nodejs-brotli-decoder-out-of-bounds-write-permits-remote-code-execution-cve-2026-111497---high

临时缓解方案

官方未提供可替代升级的临时修复,完成升级前可采取以下保守缓解:在反向代理或 WAF 上对入站请求的 Content-Encoding 头做不区分大小写的 br 令牌比对,直接拒绝要求 Brotli 解压的请求,或仅允许受信任客户端使用 br;在应用侧关闭对不可信来源的自动解压,对来自外部的压缩数据改用 gzip 或先限制解压来源与解压后尺寸;排查容器基础镜像、CI 运行时与系统 libbrotlidec 中内置的 Brotli 版本,随 Node.js 一并升级到 1.0.10、1.1.1 或 1.2.1。上述措施不能替代版本升级。

信息来源:https://github.com/CaterMaoZi/CVE-2026-111497-POC

参考资料

https://nodejs.org/en/blog/vulnerability/october-2026-security-releases

https://nodejs.org/en/blog/release/v22.23.4/

https://nodejs.org/en/blog/release/v24.22.1/

https://nodejs.org/en/blog/release/v26.12.1/

https://nvd.nist.gov/vuln/detail/CVE-2026-111497

https://www.cve.org/CVERecord?id=CVE-2026-111497

https://github.com/advisories/GHSA-9v8h-qqgm-4m35

https://github.com/google/brotli/commit/0ed4268a4401abcb4472096340477cf4af7d1a2b

https://github.com/google/brotli/commit/50a9b70a4d5e1443fc40927952276b68fffa83a0

https://github.com/google/brotli/releases/tag/v1.0.10

https://github.com/google/brotli/releases/tag/v1.1.1

https://github.com/google/brotli/releases/tag/v1.2.1

https://github.com/nodejs/node/commit/67d294739f

https://github.com/CaterMaoZi/CVE-2026-111497-POC

http://www.openwall.com/lists/oss-security/2026/10/23/25

https://lists.debian.org/debian-lts-announce/2026/10/msg00049.html

技术支持

如有漏洞相关需求支持请联系400-6059-110获取相关能力支撑。