资讯 Nginx CVE-2026-42533:map 正则捕获变量触发 worker 堆溢出,修复版本 1.31.3+/1.30.4+

2026-09-24 21:14:17

Nginx CVE-2026-42533:map 正则捕获变量触发 worker 堆溢出,修复版本 1.31.3+/1.30.4+

官方公告在 nginx.org/en/security_advisories.html,漏洞编号 CVE-2026-42533,严重级别 major。受影响组件为 NGINX Open Source 和 NGINX Plus 的 map 指令正则匹配路径。修复版本:1.31.3+、1.30.4+;受影响:0.9.6–1.31.2。

触发条件

CVE 详情见 cve.circl.lu/vuln/rlsa-2026:66542(Rocky RLSA-2026:66542,公开日期 2026-07-15):

  • map 指令使用正则匹配;
  • 字符串表达式在引用 map 输出变量之前,先引用 map 的正则捕获变量;
  • 或者在特定条件下,字符串表达式中使用不可缓存变量,也可达到相同结果。

未认证攻击者配合某些不受其控制的条件,发送构造的 HTTP 请求,即可在 NGINX worker 进程中造成堆缓冲区溢出,导致 worker 重启。若系统关闭 ASLR 或攻击者能绕过 ASLR,则可能进一步代码执行。影响:远程 DoS,或可能代码执行。无控制面暴露,仅数据面问题。CWE-122 Heap-based Buffer Overflow。CVSS 3.1 8.1 High(AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H);CVSS 4.0 9.2 Critical。

受影响版本自查

  • NGINX Open Source:0.9.6–1.31.2 受影响;1.31.3+、1.30.4+ 不受影响。NGINX Plus 同样受影响。
  • 自查:nginx -v 查看当前版本;发行版包用 apt list --installed nginx 或对应包管理器确认补丁版本。
  • Ubuntu 用户需对照 USN-8563-5 的包版本:
    • 26.04 LTS:nginx 1.28.3-2ubuntu1.11
    • 24.04 LTS:1.24.0-2ubuntu7.18
    • 22.04 LTS:1.18.0-6ubuntu14.21

升级与发行版修复反复

直接升级到 1.31.3+ 或 1.30.4+ 可修复该漏洞。Ubuntu 的修复经历过回退:USN-8563-1 引入回归;USN-8563-2 将 CVE-2026-42533 的补丁回退;USN-8563-5(2026-09-14)重新加入更好的修复。因此 Ubuntu 用户不要停在中间版本,应更新到 USN-8563-5 列出的包版本。

同一更新还修复:

  • CVE-2026-56434:ngx_http_ssi_module 的 use-after-free,触发条件涉及 SSI、proxy_pass 且禁用 proxy buffering。
  • CVE-2026-60005:ngx_http_slice_module 的内存泄露。

在无法立即升级时,缓解重点是避免触发该表达式求值路径:审查使用 map 正则匹配的配置,检查字符串表达式中是否在 map 输出变量之前引用 map 的正则捕获变量;同时避免在字符串表达式中依赖不可缓存变量。最终仍需升级到修复版本。

其他近期 Nginx 公告

同一安全公告页还有:

  • CVE-2026-60005:ngx_http_slice_module 内存泄露,medium,修复于 1.31.3+/1.30.4+。
  • CVE-2026-56434:ngx_http_ssi_module use-after-free,medium,修复于 1.31.3+/1.30.4+。

更早的 HTTP/2 DoS(Amazon Linux ALAS2023-2026-2130,2026-09):未限制请求头数量。攻击者先填充 HPACK 动态表,再发出数千个索引引用;与 HTTP/2 零字节流控窗口停摆结合时,分配被固定,单个客户端即可耗尽服务器内存。

复制全文 生成海报 Nginx 安全 CVE 运维

推荐文章

程序员茄子在线接单