PHP 今晚发补丁,Node.js 也来凑热闹:26.x/24.x/22.x 全线安全更新,五个 HIGH 级 CVE 一网打尽

一、同一个晚上,两大运行时齐刷刷发安全更新

今天(10 月 21 日)对后端运维来说注定是排队打补丁的一天:先有 PHP 核心 9.2 分双 RCE 的紧急补丁(北京时间 22:00 上线),紧接着 Node.js 官方的 2026 年 10 月安全更新也在今天落地——26.x、24.x、22.x 三条在支持期内的版本线全部发版,每条线的最高严重等级都是 HIGH。新版本已经推上 GitHub:v26.12.1(Current)和 v24.22.1(LTS),22.x 线同步发版(版本号以官方 releases 页为准)。

先把预期管理做在前面:这批 Node.js 更新里没有披露 RCE。它和 PHP 那两颗"直接拿 shell"的 9.2 分不是一个量级,问题集中在 TLS/DNS 输入校验、brotli 解码器和依赖库的崩溃/资源耗尽类缺陷。但 HIGH 就是 HIGH——TLS 相关的缺陷占了三个,对你线上服务的握手层是实打实的暴露,该升还是要升。

笔记本屏幕上的 JavaScript 代码
Node.js 三条在支持线同步发安全版本,CVE 明细已随发布公开

二、这次修了什么:五个 HIGH,两个 Medium,三个 Low

以 v26.12.1 的 release notes 为准,主要修复包括:

  • CVE-2026-106069 / CVE-2026-106072(High):tls——拒绝非规范 IP 地址。TLS 组件再收两个收紧类修复;
  • CVE-2026-105482(High):dns——校验 resolve 输入中的空字节。DNS 解析入口的输入校验缺口;
  • CVE-2026-105483(High):tls——修复 IP 归一化回归。上个版本引入的问题被回补;
  • CVE-2026-111497(High):brotli 解码器块切换错误暴露(src + 依赖 cherry-pick 双修);
  • CVE-2026-105481(Medium):http——agent 数据守卫在无 I/O 场景下生效;
  • CVE-2026-106074(Medium):crypto——跨快照重置随机数缓存,涉及快照恢复后的随机数复用问题;
  • CVE-2026-106070 / CVE-2026-106071 / CVE-2026-106073(Low):zlib ZIP 本地头缓存、fs 权限树通配节点、realpathSync 权限模型检查。

依赖同样值得看:undici 被升到 8.12.2(26.x)/ 7.30.1(24.x)——这一下带上了 undici 自己的两个 7.5 分 HIGH:CVE-2026-109924(EventSource 客户端被恶意 SSE 服务端拖到内存耗尽)和 CVE-2026-109869(服务端返回超过五个 content-encoding 后断连,直接打崩 Node 进程,且应用层 catch 住 fetch 异常也没用)。如果你的服务会 fetch 不可信的第三方地址,这两个比运行时本体的问题更值得关心。另外还有 c-ares 1.34.9、OpenSSL 3.5.9、根证书 NSS 3.131.1 和一个 V8 回移。

键盘与显示器的特写
undici 的两个 7.5 分缺陷随本次发版一并修复,依赖升级别漏掉

三、为什么"只是 HIGH"也值得今晚动手

三个理由。第一,TLS/DNS 校验类缺陷是供应链扫描器的最爱,这类问题不需要复杂前置条件,配合自动化工具的利用率一直不低。第二,undici 的两个崩溃缺陷影响面在应用层——BFF、爬虫、聚合服务、任何会去请求外部 API 的 Node 进程都可能被打崩,而这类服务恰恰很少有人当"安全资产"管。第三,EOL 版本一个补丁都拿不到:Node.js 官方明确说"安全发布时,所有已结束生命周期的版本一律视为受影响"——20.x(2026 年 4 月停更)、18.x、16.x 全部属于这一档。还在跑 20.x 的 SSR 节点和 CI 构建机,这次更新对它们等于零。

顺带一提生态联动:Laravel 已确认 Forge 和 Cloud 的基础镜像会带上 PHP 和 Node.js 两边的修复,Next.js 也在 10 月 14 日刚发过 16.4.1 / 15.5.28 修两颗未授权 RCE。这一周实质上是"运行时补丁周",别只盯着一个 PHP。

四、升级清单:今晚照着做

  • 盘点真实版本:node --version 只能看 CLI,生产进程、容器镜像、CI runner 要逐个查(docker run --rm node:24 node --version 这种方式最靠谱);
  • 升级到对应修复版本:26.x → 26.12.1,24.x → 24.22.1,22.x 取官方 releases 页对应的安全版本;
  • 依赖里有 undici 的注意:直接依赖或传递依赖的 undici 要落到 6.29.1 / 7.30.1 / 8.12.2 及以上——它是传递依赖,npm update 不一定动它,老实用 npm ls undici 查、lockfile 重建;
  • 改完必须重启进程:pm2、systemd、Docker 容器都要真正重启加载新二进制,改了 package.json 不重启等于没改;
  • 容器镜像要重建:基础镜像 tag 换新后走完整流水线重建,别只改 Dockerfile;
  • 20.x 及以下现在就排迁移计划:这批漏洞它们永远修不上,下一波安全更新时还会"被受影响"。

写在最后

PHP 是 9.2 的 RCE,Node.js 是一批 HIGH 级的校验与崩溃类缺陷——同一晚两条主线、两种威胁画像,共同点只有一个:漏洞都在运行时,WAF 和应用层修补都挡不住,必须换二进制、重启进程。补丁已经躺在官方 releases 页上了,今晚把版本盘点做了、窗口排了,比看十篇预警分析都有用。

参考来源:Node.js 官方安全公告(October 2026 Security Releases)、v26.12.1 / v24.22.1 release notes、undici GHSA 安全公告(CVE-2026-109924 / CVE-2026-109869)、PHP 官方提前预警、Laravel Forge/Cloud 公告。

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容