Node.js 2026 年 6 月安全发布解析:11 个 CVE 全覆盖与 26.x/24.x/22.x 修复指南
【免费下载链接】nodejs.orgThe Node.js® Website项目地址: https://gitcode.com/GitHub_Trending/no/nodejs.org
本篇技术指南基于 nodejs.org 官方安全公告 june-2026-security-releases.md 撰写,系统梳理 Node.js 于 2026 年 6 月 18 日发布的安全更新:涉及 26.x、24.x、22.x 三条仍在维护的发布线,共修复 11 个 CVE(含 2 个高危、5 个中危、4 个低危),并同步升级 llhttp、nghttp2、openssl、undici 四个关键依赖。读完本文,你将掌握每个漏洞的成因、受影响版本、修复版本对应的具体提交,以及如何结合官方发布说明完成升级与验证。
一、发布概要:三条发布线、最高严重级别为 HIGH
根据安全公告,Node.js 项目于 2026 年 6 月 18 日(周四)发布安全版本,覆盖仍在维护的 26.x(Current)、24.x(LTS,代号 "Krypton")与 22.x(LTS,代号 "Jod")三条发布线:
| 发布线 | 修复版本 | 角色 | 最高严重级别 |
|---|---|---|---|
| 26.x | v26.3.1 | Current | HIGH |
| 24.x | v24.17.0 | LTS | HIGH |
| 22.x | v22.23.0 | LTS | HIGH |
三条发布线中,绝大多数 CVE 均影响全部受支持版本;仅个别 CVE 影响范围不同(详见下文各漏洞说明)。公告特别强调:每当发生安全发布时,End-of-Life(EOL)版本始终受影响 。因此确保系统使用最新版本至关重要,具体维护时间表可参照官方 Release Schedule(发布于 Node.js release 仓库)。 本次安全发布同时更新了四个直接参与网络、加密与解析链路的底层依赖,以修复其中已公开的漏洞: 也就是说,修复版本号因发布线而异,升级时务必以对应发布说明中列出的 undici 版本为准,不可跨线套用。 官方发布说明文件(仓库路径见下)是验证修复落地情况的一手依据。三个版本的安全修复提交高度一致,可通过各发布说明的 小节逐条核对: 各发布说明末尾还附有完整的分平台产物清单(Windows/macOS/Linux/AIX/ARM 安装包与二进制)及 PGP 签名的 SHASUMS 校验块,用于下载后的完整性校验。 结合公告与发布说明,建议按以下流程处置: 本仓库(nodejs.org,Node.js 官网源码)将安全公告作为博客的一个独立分类维护。从源码结构看,相关支撑包括: 也就是说,本文所分析的 2026 年 6 月安全公告,正是这条“安全工作组数据 → 生成器分组 → EOL 表格 → 博客公告”链路中的一环;读者既可通过博客页面阅读公告全文,也可在 EOL 页面按版本查看历史漏洞的修复状态。若需报告新漏洞,可遵循官方 SECURITY.md 流程并订阅低流量的 nodejs-sec 公告邮件列表,以持续获取安全发布动态。 【免费下载链接】nodejs.orgThe Node.js® Website项目地址: https://gitcode.com/GitHub_Trending/no/nodejs.org二、依赖更新清单:四个底层组件同步升级
SEMVER-MAJOR,并与 CVE-2026-48937(GOAWAY 后会话未清理)的修复提交一同落地。三、高危漏洞详解(2 个)
1. CVE-2026-48933:WebCrypto AES 整数溢出导致远程进程中止(DoS)
subtle.encrypt()的输入长度是2GiB 的整数倍时,内部对输出缓冲区长度的计算会发生溢出,进而导致进程崩溃(Remote Process Abort)。2. CVE-2026-48618:unicode 点分隔符处理导致 TLS 通配符深度认证绕过
四、中危漏洞详解(5 个)
3. CVE-2026-48615:代理凭据泄露进 ERR_PROXY_TUNNEL 错误消息
http://user:pass@proxy:8080)时,代理隧道(CONNECT)失败产生的ERR_PROXY_TUNNEL错误消息可能携带这些凭据,进而被日志、诊断工具或其他错误消费方捕获泄露。4. CVE-2026-48619:node:http2 客户端因攻击者控制的 ORIGIN 帧无界内存增长
originSet容量设置上限。5. CVE-2026-48937:HTTP/2 会话在无效协议错误后未清理(GOAWAY 后继续接收数据)
GOAWAY帧后仍持续接受数据,会话生命周期管理存在缺陷,可能与 nghttp2 升级引入的协议错误处理路径有关。6. CVE-2026-48928:大写 SNI 上下文匹配导致 mTLS 授权绕过
7. CVE-2026-48930:内嵌 NUL 字节主机名导致静默权威重绑定
\0(NUL)字节时会被截断。攻击者可利用截断差异构造主机名,实现“静默权威重绑定”(silent authority rebinding),绕过预期的 TLS 主机名校验。8. CVE-2026-48934:不同 servername 复用 TLS 会话导致主机身份验证绕过
五、低危漏洞详解(4 个)
9. CVE-2026-48617:Permission Model 因 process.report.writeReport() 路径误校验被绕过
--permission启动)对process.report.writeReport()写入路径的校验存在缺陷,可绕过既定文件权限边界,造成机密性影响。process.chdir的处理。10. CVE-2026-48935:Permission Model 经 FileHandle.utimes()(promises API)被绕过
--allow-fs-read只读限制下,攻击者仍可通过 promises API 的FileHandle.utimes()修改文件元数据(mtime/atime),说明权限模型未覆盖该调用路径。11. CVE-2026-48936:Unix 域套接字服务器绕过 --permission 网络限制(CVE-2026-21636 修复不完整)
--allow-net权限,攻击者仍可通过 Unix 域套接字(Unix domain socket)启动本地服务器。这是此前 CVE-2026-21636 修复的不完整修复(incomplete fix),说明权限模型的网络作用域校验在 pipe/套接字路径上仍有缺口。12. CVE-2026-48931:http.Agent 的 TOCTOU 竞态导致 HTTP 响应队列投毒
http.Agent存在检查-使用竞态(TOCTOU Race Condition),客户端可能在尚未发送请求之前就接受了先到的响应,造成响应队列投毒(Response Queue Poisoning)。六、版本级修复对照:三个发布说明中的 Notable Changes
Notable Changes与Commits七、升级建议与安全运维要点
node -v;凡处于 22.x(<22.23.0)、24.x(<24.17.0)、26.x(<26.3.1)的版本均需升级。npm ls undici(或检查process.versions相关字段)确认 undici 已到位——22.23.0 对应 6.27.0、24.17.0 对应 7.28.0、26.3.1 对应 8.5.0。--permission的隔离环境(CVE-2026-48617、48935、48936)。生产环境若涉及上述场景,应优先安排升级窗口。八、在 nodejs.org 仓库中的安全公告呈现机制
yyyy-mm-主题.md命名,frontmatter 中category: vulnerability标记分类,slug决定 URL 路径(本公告 slug 为june-2026-security-releases)。V0_REGEX、VER_REGEX(如12.x)与RANGE_REGEX(如>= 20)解析vulnerable版本表达式,将漏洞按主版本号分组,供 EOL 页面等渲染使用。vulnerability.xmlfeed(见 BlogHeader 测试用例),便于运维人员第一时间跟踪新公告。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考