ONCALL://19
INC-07 · Node TLS 三个版本

Node.js 10 月安全发布:TLS 主机名绕过与 Brotli 越界写

Node.js 在 2026-10-21 为 22.x、24.x、26.x 三条发布线发布安全更新。高危项包括两项 TLS 证书主机名校验绕过和一项 Brotli 解码器越界写。“三个版本”指的就是这三条发布线。

INC-07高危直接命中软件漏洞P1今天披露 2026-10-21
段子原句“Node.js 24 LTS Brotli 中间件,开启了 Brotli 压缩功能”
编号
CVE-2026-105483CVE-2026-106069CVE-2026-111497
严重度
官方标为 High;未公布 CVSS 数值
利用状态
未见利用未见利用:官方未确认公开 PoC 或在野利用。
对段子公司
Node.js 24 同时受两项 TLS 绕过和 Brotli 越界写影响。Brotli 漏洞能否触发,取决于服务是否解码不可信的 Brotli 数据。
影响范围
22.x、24.x、26.x 都受影响,EOL 版本也视为受影响。全角数字 IP 的绕过只影响 24.x 和 26.x。官方未公布受影响实例数。24.22.1 还内置了 eMudhra 受影响 CA 的拒绝表。
修复版本
  • →22.23.4
  • →24.22.1
  • →26.12.1
处置清单见处置顺序 · P1

结论

Node.js 于 2026-10-21 发布 26.x、24.x、22.x 安全更新,修复三项高危 TLS 主机名校验问题和一项 Brotli 解码器越界写问题。[1] 官方将漏洞标为 High,但本次可打开的官方公告未给 CVSS 数值。[1] 段子所说“Node.js 24 LTS Brotli”对应真实风险;Node.js 24、22、26 均受影响,修复版本分别为 24.22.1、22.23.4、26.12.1。[2] [3] [4]

事件经过

Node.js 项目在 2026-10-21 发布安全公告,涉及 10 项漏洞及依赖更新。[1] 本报告只调查其中 TLS 主机名校验和 Brotli 解码器议题。

TLS 高危项包括 CVE-2026-105483 和 CVE-2026-106069。[1] 官方还列出 CVE-2026-105482 为 DNS 输入问题,不属于 TLS 项目本身。[1]

Brotli 项 CVE-2026-111497 描述为解码器越界写,可导致远程代码执行。[1] 官方把其严重性标为 High。[1]

技术细节

CVE官方描述发布线严重性
CVE-2026-105483IP 地址以全角数字表示时,TLS 证书主机名校验可绕过26.x、24.xHigh
CVE-2026-106069主机名宽松解析为 IP 地址时,TLS 证书主机名校验可绕过26.x、24.x、22.xHigh
CVE-2026-111497Brotli 解码器越界写,可导致远程代码执行26.x、24.x、22.xHigh

以上名称及适用发布线来自 Node.js 官方公告。[1] 官方修复提交显示 TLS 更新拒绝非规范 IP 地址,并修正 IP 规范化回归。[2] [3] [4]

全角数字或宽松 IP 表示可能令主机名校验端点和证书匹配端点产生不一致。[1] 由此可能接受本不该通过校验的证书,造成 TLS 身份验证绕过。具体利用前提未在官方公告中展开。

Brotli 漏洞位于 Node.js 所带 Brotli 解码器。[1] 处理攻击者控制的压缩输入时,解码器存在越界写风险,公告称可远程执行代码。[1] 目前不能从已打开的公告确定越界写的精确条件、内存布局或稳定利用方式。该问题不是公告所称的 zlib 解压炸弹。

影响范围

受影响发布线为 22.x、24.x、26.x;其中 CVE-2026-105483 只列 24.x 和 26.x。[1] Node.js 官方将所有 End-of-Life 版本也视为受安全发布影响。[1]

官方公告没有提供受影响实例数、下载量、用户数或已受攻击组织数。[1] 因此,实际部署规模未找到可靠数字。

本次 TLS 三项高危问题的 CVSS 分数未在已打开的官方公告或发布页中显示。[1] [2] [3] [4] NVD 页面当时仅呈现加载信息,评分未验证。[5]

时间线

  1. 2026-10-21(UTC 日期;具体披露时刻未公布)
    Node.js 官方公告安全更新,列出 TLS 与 Brotli 漏洞。[1]
  2. 2026-10-21(UTC 日期)
    Node.js 发布 22.23.4、24.22.1、26.12.1。[2][3][4]

修复与缓解

发布线修复版本
22.x22.23.4
24.x24.22.1
26.x26.12.1

版本页均标记为安全发布,并记录 Brotli 依赖补丁及 TLS 修复。[2] [3] [4] 应尽快升级到对应修复版本,或升级到仍受支持且已包含修复的更新版本。

若暂时无法升级,应避免将未经信任的 Brotli 压缩数据交给受影响 Node.js 进程解码,并审查 TLS 客户端是否访问攻击者可控的主机名。此类缓解不能替代升级。

对段子中公司的影响

假想公司使用 Node.js 24 LTS,并启用 Brotli 中间件。若其实际运行版本低于 24.22.1,且请求路径会解码攻击者可控的 Brotli 数据,则 CVE-2026-111497 与其配置直接相关。[1] [2]

Node.js 24.x 也受两项 TLS 主机名绕过影响。[1] 若服务作为 TLS 客户端连接外部端点,且主机名或证书输入可被攻击者影响,就存在身份校验风险。

“开启 Brotli 压缩”本身不证明漏洞一定可触发。服务端只压缩响应而不解压不可信输入时,是否触及该解码缺陷取决于实际解码流程。公司部署版本及处理路径未知。

存疑与未验证

  • CVSS 评分:未找到官方数值;官方只标为 High。[1]
  • 在野利用、公开 PoC:未找到官方公告中的确认,状态未验证。[1]
  • 具体攻击输入、触发条件、越界写实现细节:官方公告未披露,未验证。
  • 受影响实例数、下载量、用户数、损失金额:未找到可靠统计。
  • 事件实际披露时刻及时区:未找到;公告标题仅标日期 2026-10-21。
  • 段子中的部署版本、是否解码不可信数据、是否进行受影响 TLS 连接:均未验证。

参考资料

调研截止 2026-10-22 UTC+8 · 未验证的内容已在正文中标注 · 数字以原始来源为准

本页目录