本文使用的 Docker 镜像
发布日期: 2026 年 10 月 22 日
风险等级: 高危(High)
漏洞编号: CVE-2026-111497 · CVE-2026-105482 · CVE-2026-105483 · CVE-2026-106069
涉及镜像: library/node — 轩辕镜像 · Docker Hub
CVSS: 官方标为 High,未给出分数。NVD 尚未收录
披露时间: 2026 年 10 月 21 日
相关公告: Node.js 2026-10-21 安全发布
一、漏洞概述
2026 年 10 月 21 日,Node.js 给仍在维护的 22.x、24.x、26.x 发了安全版。官方把其中最高的问题标为 High。一次升级盖住下面四条,也带上同一次发布里的其他中低危修复。
CVE-2026-111497: 捆绑的 Brotli 解码器有越界写。进程若解码攻击者可控的 Brotli 数据,可能泄露内存,或在该进程里执行代码。应用或依赖会解压请求体、下载响应时,暴露面更大。
CVE-2026-105482: dns.resolve 遇到名称里的 NUL 字符时会把名字截断。
CVE-2026-105483: TLS 主机名校验在 IP 被写成全角数字时可能被绕过。这条只影响 26.x 和 24.x。
CVE-2026-106069: 主机名被宽松解析成 IP 时,TLS 主机名校验可能被绕过。
同一次发布还更新了 CA 证书(用来拒绝已泄露的 eMudhra 中间证),以及 c-ares、Undici。24.x 和 22.x 另有 OpenSSL 更新,22.x 另有 SQLite 更新。
二、漏洞状态
统计截止: 2026 年 10 月 22 日(UTC+8)
| 项目 | 状态 |
|---|---|
| 漏洞细节 | 已公开(Node.js 官方安全发布) |
| 官方补丁 | 22.23.4、24.22.1、26.12.1 |
| 官方镜像 | Docker Hub library/node 的上述标签,以及对应 -alpine、-bookworm,推送时间约 2026-10-22 02:39–02:40(UTC) |
| 停更版本 | 20.x 及更早没有这次补丁 |
| CISA KEV | 未列入 |
| CVE | 严重性 | 影响版本线 | 要点 |
|---|---|---|---|
| CVE-2026-111497 | High | 22.x、24.x、26.x | Brotli 解码器越界写,可在进程内执行代码 |
| CVE-2026-105482 | High | 22.x、24.x、26.x | dns.resolve 遇 NUL 截断名称 |
| CVE-2026-105483 | High | 24.x、26.x | 全角数字形式的 IP 绕过 TLS 主机名校验 |
| CVE-2026-106069 | High | 22.x、24.x、26.x | 主机名被宽松解析成 IP 时绕过 TLS 主机名校验 |
三、影响范围
1. 版本线
| 当前版本线 | 升到 |
|---|---|
| 26.x | ≥ 26.12.1 |
| 24.x | ≥ 24.22.1 |
| 22.x | ≥ 22.23.4 |
| 20.x 及更早 | 已停更,没有补丁。迁到 22.23.4 或更新的受支持版本 |
22.x 不受 CVE-2026-105483 影响,但仍受另外三条 High 影响,不能留在 22.23.4 之前。
2. 运行形态
官方镜像 library/node 以及基于它构建的业务镜像都要换基础标签并重建。只重启旧容器不会换掉里面的 Node 二进制。
会处理外部 HTTP、或会解压不可信 Brotli 数据的进程优先升级。只在内网跑、并且不解码外部压缩数据的进程,TLS 和 DNS 两条仍然适用。
四、修复建议
1. 按版本线换镜像(推荐)
| 版本线 | 标签 |
|---|---|
| 22 | 22.23.4 |
| 24 | 24.22.1 |
| 26 | 26.12.1 |
bashdocker pull docker.xuanyuan.run/library/node:22.23.4
24 和 26 把标签换成 24.22.1、26.12.1。需要 Alpine 或 Bookworm 时,使用同一小版本的 -alpine、-bookworm。Hub 上还有 -slim,拉取后在容器里执行 node -v,确认是上表中的小版本,再把 Compose 或 Dockerfile 里的基础镜像改掉并重建。
Docker Hub: library/node
轩辕镜像: library/node
发行说明:2026-10-21 Security Releases。
2. 升级后核对
进入正在运行的容器执行 node -v。宿主机上的 Node 和镜像里的 Node 可能不是同一份。确认版本后重启进程。派生镜像要重新 docker build,不要只拉取旧的业务标签。
五、临时缓解措施
官方修复就是升级。在换到新版本之前:
-
不要让旧进程继续解码不可信的 Brotli 数据
这只缩小 CVE-2026-111497 的入口,挡不住 DNS 和 TLS 两条。 -
不要留在 20.x
停更版本没有这次补丁。 -
不要用未固定的
latest或旧的22、24、26滚动标签表示已经修好
把标签写到 22.23.4、24.22.1 或 26.12.1。
六、与轩辕镜像用户的相关说明
轩辕镜像提供的是镜像加速与拉取服务,不替代 Node.js 的版本修复。加速拉取旧标签不会带上 10 月 21 日的补丁。
- 站内页:library/node。例如
docker.xuanyuan.run/library/node:22.23.4。 - 换标签后重建镜像,并在容器内用
node -v确认。 - 配置与排错见 轩辕镜像使用手册、镜像拉取 FAQ。
七、参考链接
- Node.js:Wednesday, October 21, 2026 Security Releases
- Docker Hub:library/node
- 轩辕站内镜像页:library/node
轩辕镜像安全团队
2026 年 10 月 22 日
评论交流
免责声明
本博客文章所提供的内容、技术方案、配置示例及部署指南等信息,仅供学习交流和技术参考使用。文章内容基于发布时的技术环境和版本信息编写,可能因时间推移、技术更新或环境差异而存在不适用的情况。
用户在参考本博客内容进行部署操作前,应当充分了解相关技术风险,并建议在测试环境中进行充分验证和测试,确认无误后再考虑在生产环境中使用。生产环境部署前,请务必进行数据备份,并制定相应的回滚方案。
用户因使用本博客内容进行部署操作而产生的任何损失、数据丢失、系统故障、安全风险或其他问题,均由用户自行承担全部责任。轩辕镜像官方不对因使用本博客内容而产生的任何直接或间接损失承担责任。
本免责声明的最终解释权归轩辕镜像官方所有。
