Node.js 双高危漏洞预警:CVE-2026-105482|CVE-2026-105481
飓风网络安全
2026年10月23日 21:31
北京
去阅读
2026年10月21日,Node.js 官方发布安全更新,一次性修复10个安全漏洞,其中 CVE-2026-105482(DNS解析截断高危漏洞) 与 CVE-2026-105481(HTTP Keep-Alive响应处理漏洞) 覆盖全量主流维护版本,波及大量Node.js业务系统。本文从技术原理、影响范围、风险场景与修复方案四个维度,对两个漏洞进行完整拆解。
一、漏洞整体概览
本次两个漏洞均属于Node.js核心运行时缺陷,无需特殊业务配置即可触发,影响所有基于Node.js 22.x、24.x、26.x构建的Web服务、API网关、代理服务与中间件系统。
CVE-2026-105482
• 风险等级:高危(High)
• 漏洞类型:DNS解析逻辑缺陷 / 安全校验绕过
• 影响版本:22.x、24.x、26.x全系列
• 修复版本:22.23.4 / 24.22.1 / 26.12.1
CVE-2026-105481
• 风险等级:中危(Medium)
• 漏洞类型:HTTP协议处理逻辑缺陷 / 响应注入
• 影响版本:22.x、24.x、26.x全系列
• 修复版本:22.23.4 / 24.22.1 / 26.12.1
二、漏洞技术深度解析
1. CVE-2026-105482:dns.resolve NUL字符截断高危漏洞
漏洞原理
Node.js 内置的 dns.resolve 系列函数(含 resolve4、resolve6、resolveCname 等所有衍生方法)在处理域名输入时,未对字符串中的 \0(NUL空字符)做完整校验,会在NUL字符处直接截断域名,最终导致业务层校验的域名与底层实际解析的域名不一致。
典型攻击链路:
-
业务层对用户输入的域名做白名单校验,例如校验后缀必须为 .example.com;
-
攻击者构造恶意域名 evil.com\0.example.com,业务层字符串匹配时读取完整字符串,判定后缀符合白名单规则;
-
底层调用 dns.resolve 解析时,遇到 \0 自动截断,实际解析的域名为 evil.com,完全绕过业务层安全校验。
核心风险场景
• SSRF防护绕过:业务通过域名白名单限制内网访问时,攻击者可利用该漏洞解析内网或恶意地址,实现SSRF攻击;
• 重定向/跳转绕过:URL跳转校验场景中,绕过域名白名单跳转到钓鱼站点;
• TLS证书校验逻辑失效:部分业务基于域名做证书匹配时,出现校验逻辑与实际连接目标不一致;
• 数据安全风险:结合业务逻辑,可将请求转发至恶意服务器,造成敏感数据泄露。
2. CVE-2026-105481:HTTP Keep-Alive 响应提前处理漏洞
漏洞原理
在HTTP长连接(Keep-Alive)复用场景下,Node.js 套接字会错误处理请求发送前就已写入缓冲区的响应数据。正常流程中,长连接复用必须遵循“先发送请求,再接收对应响应”的时序;而该漏洞破坏了请求-响应的一一对应关系,导致上一个请求的残留响应、甚至提前注入的响应数据,会被匹配到下一个请求上。
核心风险场景
• HTTP响应注入:在代理服务、网关场景中,攻击者可构造特殊请求时序,让其他用户的请求收到恶意伪造的响应内容;
• 缓存污染:若业务侧存在HTTP响应缓存机制,恶意响应可能被缓存,扩大影响范围;
• 跨用户数据泄露:高并发长连接场景下,极端情况会出现不同用户的响应数据串扰,造成信息泄露。
该漏洞触发依赖特定的连接时序与业务场景,通用Web服务触发难度较高,因此官方定级为中危;但在反向代理、API网关、长连接密集型业务中风险显著提升。
三、影响范围与资产排查
- 直接受影响版本
• Node.js 26.x:< 26.12.1
• Node.js 24.x:< 24.22.1
• Node.js 22.x:< 22.23.4
注:Node.js 18.x、20.x 官方未列入受影响列表,但部分第三方发行版(如Debian源)存在回移植缺陷,建议同步关注发行版安全公告。
- 重点受影响业务形态
• 面向公网的Node.js Web服务(Express、Koa、Nest.js等框架构建);
• API网关、反向代理、BFF层服务;
• 包含用户可控域名解析功能的业务系统(URL检测、资源抓取、域名校验等);
• 微服务架构中基于Node.js的内部服务调用组件。
四、修复方案与处置建议
- 官方补丁升级(首选根治方案)
直接升级Node.js至对应分支的最新安全版本,是最彻底的修复方式:
• 26.x 分支:升级至 v26.12.1 及以上
• 24.x 分支:升级至 v24.22.1 及以上
• 22.x 分支:升级至 v22.23.4 及以上
升级命令参考(使用nvm管理场景):
nvm install 22.23.4
nvm use 22.23.4
- 临时缓解措施(无法立即升级时)
针对CVE-2026-105482(高危):
-
业务层对所有用户传入的域名参数做严格校验,过滤包含 \0 空字符的输入;
-
域名白名单校验必须在解析逻辑之前执行,且校验逻辑需主动截断NUL字符后再匹配;
-
禁用业务中非必要的 dns.resolve 自定义解析逻辑,优先使用系统原生DNS解析能力。
针对CVE-2026-105481(中危):
-
对外服务配置反向代理(Nginx/Envoy),由代理层统一处理HTTP长连接,降低Node.js直接处理公网长连接的风险;
-
高安全级别的业务可临时关闭HTTP Keep-Alive复用,牺牲部分性能换取安全。
-
企业级处置优先级建议
-
最高优先级:存在域名白名单校验、URL跳转、资源抓取功能的公网Node.js服务,立即修复CVE-2026-105482;
-
次高优先级:API网关、BFF层、反向代理类Node.js服务,同步修复两个漏洞;
-
普通优先级:内部业务系统、无用户可控域名输入的服务,可在常规补丁窗口完成升级。
五、补充说明
本次Node.js安全更新同步修复了包括Brotli解码器RCE(CVE-2026-111497,高危)、TLS主机名验证绕过等在内的共10个漏洞,建议企业在升级时同步完成全量补丁修复,避免遗漏其他风险点。
对于依赖Node.js基础镜像的容器化业务,需同步更新基础镜像版本,并重新构建发布业务镜像,避免镜像层遗留漏洞。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论