安全 · 2026年10月26日

也发布于 日本語

Node.js修复Brotli远程代码执行漏洞,代号Node2Shell

man walking on stairs
Proxyclick Visitor Management System / Unsplash

Node.js项目于2026年10月21日发布安全更新,修复了名为Node2Shell的严重远程代码执行漏洞。该漏洞存在于内置的Brotli解码器中,攻击者可通过发送特制的压缩数据触发任意代码执行。

此次更新覆盖了Node.js 22.23.4、24.22.1和26.12.1三个受支持分支,共修补了10个漏洞,其中4个被评定为高危。最严重的漏洞编号为CVE-2026-111497,属于Brotli解码器中的越界写入错误。Brotli是谷歌开发的压缩库,Node.js捆绑了其副本。恶意输入可导致解码器在内存缓冲区末尾之外写入数据。该修复基于Brotli项目2026年2月的提交。此次更新还同步了Node.js内置的证书存储。

Imperva红队于10月22日披露了该漏洞的利用细节。研究人员Ron Masas证实,向官方Node.js 24.22.0镜像发送特制Brotli数据可成功执行代码。利用场景包括应用通过fetch函数下载恶意响应,或通过Express 5或body-parser 2接收恶意请求。修复后的版本24.22.1会拒绝此类数据。

Imperva指出,攻击在其配置中需要多次尝试才能成功,且仅在Linux arm64架构上得到验证。GitHub上发布的利用代码据称仅适用于特定配置的Node.js版本。截至目前,尚未报告任何真实世界攻击。任何处理攻击者控制的Brotli数据的Node.js应用均面临风险。用户应升级至22.23.4、24.22.1或26.12.1及更高版本。25.x、23.x、20.x及更早分支已停止维护,不会获得修复。Bun 1.4.4版本也于10月22日发布了修复。