Node.js 项目
安全更新已发布
现已针对 25.x、24.x、22.x、20.x Node.js 发布线提供以下问题的更新。
此安全更新包含以下依赖项更新以解决公开漏洞:
- undici (6.24.1, 7.24.4) 在 22.x、24.x、25.x 上
CVE-2026-21637 的不完全修复:loadSNI() 在 _tls_wrap.js 中缺少try/catch 导致远程拒绝服务(Remote DoS) (CVE-2026-21637) - (高)
Node.js TLS错误处理中的一个缺陷使得SNICallback调用在同步异常下未受保护,而等效的ALPN和PSK回调已在CVE-2026-21637中得到修复。这代表对先前漏洞的不完全修复。
当SNICallback 在遇到意外输入时会同步抛出异常,该异常绕过 TLS 错误处理程序,作为未捕获异常传播,导致 Node.js 进程崩溃。
- 此漏洞影响所有收到 CVE-2026-21637 修复的 Node.js 版本,包括 20.x、22.x、24.x 和 25.x,以及任何 TLS 服务器上
SNICallback可能因意外servername输入而抛出的情况。
感谢 mbarbs 报告这个漏洞,也感谢 mcollina 修复它。
Node.js HTTP 请求处理中的一个缺陷会导致未捕获的 TypeError,当接收到一个带有名为 __proto__ 的头部的请求且应用程序访问 req.headersDistinct 时。
当这种情况发生时,dest["__proto__"] 解析为 Object.prototype 而不是 undefined,导致.push() 必须在一个非数组上被调用。该异常在属性获取器内部同步抛出,无法被 error 事件监听器拦截,这意味着除非将每次 req.headersDistinct 访问都包裹在 try/catch 中,否则无法处理。
- 此漏洞影响所有运行在 20.x、22.x、24.x 及 v25.x 上的 Node.js HTTP 服务器。
感谢 yushengchen 报告此漏洞,并感谢 mcollina 修复它。
Node.js 权限模型绕过:UDS 服务器绑定/监听操作无需 --allow-net (CVE-2026-21711) - (中等)
Node.js 权限模型网络强制机制中的一个缺陷导致 Unix 域套接字(UDS)服务器操作缺少必要的权限检查,而所有可比较的网络路径均正确执行了这些检查。
因此,在...下运行的代码--permission--allow-net可以创建并暴露本地IPC端点,允许与同一主机上的其他进程进行通信,从而超出预期的网络限制边界。
- 此漏洞影响Node.js25.x使用权限模型(Permission Model)的过程,其中
--allow-net被故意省略以限制网络访问。请注意,--allow-net目前是一项实验性功能。
感谢 xavlimsg 报告此漏洞,也感谢 RafaelGSS 修复该漏洞。
通过畸形 URL 格式在 node_url.cc 中触发断言错误,导致 Node.js 崩溃(CVE-2026-21712)——(中危)
Node.js 的 URL 处理中存在一个缺陷,会在原生代码中引发断言失败。url.format() 被调用时使用了包含无效字符的畸形国际化域名(IDN),导致 Node.js 进程崩溃。
- 该漏洞影响 24.x 和 25.x 版本。
感谢 wooffie(伍菲)报告此漏洞,并感谢 RafaelGSS(拉斐尔·GSS)修复它。
通过 memcmp() 在 HMAC 验证中存在时序侧信道漏洞。crypto_hmac.cc 可能导致潜在的MAC伪造(CVE-2026-21713)-(中等)
Node.js HMAC验证中的一个缺陷在验证用户提供的签名时使用了非常量时间比较,可能泄露与匹配字节数成比例的时间信息。在某些可以实现高分辨率时间测量的威胁模型下,此行为可能被利用为时间预言机来推断HMAC值。
Node.js 已经在代码库的其他地方提供了时序安全比较原语,表明这是一个疏忽,而不是有意的设计决策。
- 此漏洞影响 20.x、22.x、24.x 和 25.x。
感谢 x_probe 报告此漏洞,并感谢 panva 修复它。
Node.js HTTP/2 服务器中的内存泄漏,通过WINDOW_UPDATE在流0上导致资源耗尽 (CVE-2026-21714) - (中等)
当客户端在流0(连接级别)上发送WINDOW_UPDATE帧,导致流量控制窗口超过最大值2³¹-1时,Node.js HTTP/2服务器会发生内存泄漏。服务器正确发送了GOAWAY帧,但Http2Session对象从未被清理。
- 此漏洞影响Node.js 20、22、24和25上的HTTP2用户。
感谢 galbarnahum 报告此漏洞,并感谢 RafaelGSS 修复它。
V8 中的 HashDoS(CVE-2026-21717) - (中危)
V8 字符串哈希机制的一个缺陷导致类似整数的字符串被哈希为其数值,从而使哈希碰撞变得极易预测。通过构造一个在 V8 内部字符串表中引发大量此类碰撞的请求,攻击者可显著降低 Node.js 进程的性能。
最常见的触发器是任何调用的端点JSON.parse()在攻击者控制的输入上,JSON 解析会自动将短字符串内部化到受影响的哈希表中。
- 该漏洞影响20.x、22.x、24.x和25.x。
感谢 sharp_edged 报告此漏洞,并感谢 joyeecheung 修复它。
realpathSync.native中的权限模型绕过导致文件存在性泄露(CVE-2026-21715) - (低危)
Node.js 权限模型文件系统强制执行中的一个漏洞fs.realpathSync.native()在缺少必要的读取权限检查的情况下,而所有类似的文件系统函数都正确地执行了这些检查。
因此,运行在下的代码--permission受限制--allow-fs-read仍然可以使用fs.realpathSync.native()检查文件是否存在,解析符号链接目标,并枚举允许目录之外的文件系统路径。
- 该漏洞影响20.x、22.x、24.x 和 25.x使用权限模型的进程,其中
--allow-fs-read被故意限制。
谢谢斯蒂夫(stif)报告此漏洞,并感谢拉斐尔GSS(RafaelGSS)修复了它。
CVE-2024-36137 补丁绕过 - FileHandle.chmod/chown (CVE-2026-21716) - (低)
对 CVE-2024-36137 的不完整修复导致 promises API 中的 FileHandle.chmod() 和 FileHandle.chown() 缺少必要的权限检查,而它们基于回调的等价方法(fs.fchmod()、fs.fchown())已被正确修补。
因此,在受限环境下运行的 --permission 中的代码--allow-fs-write 仍然可以使用基于 Promise 的 FileHandle 方法来修改已打开文件描述符的文件权限和所有权,从而绕过预期的写入限制。
- 此漏洞影响使用权限模型的 20.x、22.x、24.x 和 25.x 进程,其中
--allow-fs-write被有意限制。
感谢 wooseokdotkim 报告此漏洞,并感谢 RafaelGSS 修复它。
下载与发布详情
摘要
Node.js项目将于2026年3月24日(星期二)或之后不久发布25.x、24.x、22.x、20.x版本线的新版本,以解决:
- 2个高严重性问题。
- 5个中严重性问题。
- 2个低严重性问题。
影响
Node.js 的 25.x 发行线存在 2 个高危问题、5 个中危问题、2 个低危问题。 Node.js 的 24.x 发行线存在 2 个高危问题、4 个中危问题、2 个低危问题。 Node.js 的 22.x 发行线存在 2 个高危问题、4 个中危问题、2 个低危问题。 Node.js 的 20.x 发行线存在 2 个高危问题、4 个中危问题、2 个低危问题。
请注意,当发布安全更新时,处于生命周期结束(End-of-Life)的版本总是会受到影响。为确保您的系统安全,请使用我们的说明中概述的最新版本。发布日程。
发布时间
版本将于2026年3月24日星期二或之后不久提供。
当前Node.js安全策略可以在以下位置找到https://nodejs.org/en/security/. 如果您希望报告 Node.js 中的漏洞,请按照 https://github.com/nodejs/node/blob/master/SECURITY.md 中概述的流程操作。
订阅低流量、仅用于发布公告的 nodejs-sec 邮件列表(地址:https://groups.google.com/forum/#!forum/nodejs-sec),以了解 Node.js 及 nodejs GitHub 组织所维护项目的安全漏洞和安全相关版本的最新信息。






















