已存在15年之久的NGINX漏洞可导致RCE"

admin 2026-10-18 10:54:18 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

已存在15年之久的 NGINX 漏洞可导致RCE

Guru Baran
Guru Baran

代码卫士

2026年7月21日 15:06
北京

在小说阅读器读本章

去阅读

  聚焦源代码安全,网罗国内外最新资讯!

编译:代码卫士

安全研究员 Stan Shaw发现了位于nginx脚本引擎中的一个严重的预认证远程代码执行漏洞CVE-2026-42533,自2011年3月即map指令获得正则表达式支持以来就被秘密利用。

F5 公司收到漏洞报告后,已在 nginx 1.30.4(稳定版)和1.31.3(主线版)中发布了修复方案,同时为NGINX Plus R33–R36(在R36 P7中修复)和37.0.0.1–37.0.2.1(在37.0.3.1中修复)提供了相应补丁。

该漏洞的根源在于nginx内部脚本引擎中缺少对PCRE捕获状态的保存/恢复。nginx在两遍中计算表达式——第一遍为LEN遍,用于测量缓冲区大小;第二遍为VALUE遍,用于写入实际数据。两遍都依赖一个名为r->captures的共享可变数组。当带有正则表达式的map指令在对捕获组(如$1)的两次引用之间执行时,它会悄悄覆盖该共享状态,导致LEN遍和VALUE遍在大小计算上产生不一致。

漏洞已存在15年之久

这种不匹配产生了两种不同的攻击原语:

  • 堆缓冲区溢出:当被覆盖的捕获组比原始值更大时,VALUE遍写入的数据超出缓冲区大小,从而用完全由攻击者控制的内容破坏相邻堆内存。
  • 信息泄露:当被覆盖的捕获组更小时,缓冲区过大,响应会泄露未初始化的堆字节——包括libc和堆指针,仅通过一次未认证的GET请求即可足以绕过ASLR。

攻击者可组合这两种原语,通过大约一次泄露请求、约40次喷射连接和一次触发溢出请求,在启用完整ASLR的Ubuntu 24.04上以10/10的可靠性实现可靠的RCE。研究人员提到,该漏洞不仅限于单个指令,它至少涉及9个源文件中的13个独立调用点,同时影响HTTP和stream模块。任何将正则表达式捕获源(location、server\_name、rewrite或if块)与之后在同一请求上下文中求值的基于正则表达式的map变量结合使用的配置,都可能被利用——即使这些配置位于同一location块中的不同指令之间。

常见受影响的指令包括:

  • proxy\_set\_header、proxy\_method、proxy\_pass、fastcgi\_param、uwsgi\_param、scgi\_param
  • grpc\_set\_header、return、add\_header、rewrite、set
  • root、alias、access\_log,以及若干其他指令。

此外,通过命名捕获组((?P...))还存在一个独立的、可单独利用的变种,该变种的缓存方式不同,因此仅修复编号捕获组的补丁无法解决该问题。

受影响版本

产品 受影响版本 修复版本
NGINX Open Source(稳定版) 0.9.6 至 1.30.3 1.30.4
NGINX Open Source(主线) 1.31.2及之前版本 1.31.3
NGINX Plus R33–R36 R36 P7
NGINX Plus(更新产品线) 37.0.0.1–37.0.2.1 37.0.3.1

值得注意的是,近期针对其它 nginx 漏洞的修复方案——CVE-2026-42945、CVE-2026-9256、CVE-2026-42055 和 CVE-2026-48142——并未解决此问题,这意味着已打补丁的组织机构仍然面临风险。令人惊讶的是,这种棘手的异常行为早在十多年前的 2014 年 nginx trac 工单中就已被首次指出,当时开发者 Maxim Dounin 承认这是一个缺陷,但从未作为安全关键问题被彻底修复。

该研究员已在 GitHub(0xCyberstan/CVE-2026-42533-Config-Scanner)上发布了一个静态配置扫描器,可识别易受攻击的指令顺序而无需实际利用,为防御者提供了一种立即审计暴露情况的方法。

完整的概念验证和利用技术细节将在补丁发布后延迟 21 天公开,以便给管理员留出更新时间,这一决定是基于 CVE-2026-42945(“NGINX Rift”)公开后迅速被武器化的前车之鉴。

战术性安全建议

  • 立即升级到 nginx 1.30.4、1.31.3 或对应的已修复 NGINX Plus 版本。
  • 对生产环境配置运行静态扫描器,以识别易受攻击的指令顺序。
  • 审计任何将正则表达式捕获与基于正则表达式的 map 变量结合使用的 location 块,并重新调整配置结构,避免捕获引用出现在 map 变量求值前后。
  • 即使未使用 HTTP/3 或其它近期修复的模块,也应将该问题视为紧急,因为该漏洞与这些修复无关。

开源卫士试用地址:https://oss.qianxin.com/#/login

代码卫士试用地址:https://sast.qianxin.com/#/login


推荐阅读

NGINX Open Source 中存在两个可导致RCE的严重漏洞

NGINX 新漏洞可导致远程攻击者触发恶意代码

已存在18年的 Nginx 漏洞可导致 RCE 攻击

已遭活跃利用的 nginx-ui 漏洞可导致 Nginx 服务器遭完全接管

Ingress NGINX 控制器中存在严重漏洞可导致RCE

原文链接

https://cybersecuritynews.com/15-year-old-nginx-vulnerability/

题图:Pixabay License

本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。

奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的产品线。

 觉得不错,就点个 “在看” 或 \"赞” 吧~


已存在15年之久的NGINX漏洞可导致RCE" 网络安全文章

已存在15年之久的NGINX漏洞可导致RCE"

安全研究员发现nginx脚本引擎中存在严重远程代码执行漏洞CVE-2026-42533,自2011年map指令支持正则表达式以来已存在15年。漏洞源于PCRE捕获状态保存/恢复缺失,可导致堆缓冲区溢出和信息泄露,攻击者通过未认证GET请求即可实现RCE。受影响版本包括NGINXOpenSource0.9.6至1.30.3和1.31.2及之前版本,以及NGINXPlusR33-R36等。建议立即升级至修复版本1.30.4、1.31.3或对应Plus版本,并使用静态配置扫描器审计易受攻击的指令顺序。
【已复现】Fastjson1.2.83远程代码执行漏洞(QVD-2026-43021)安全风险通告第二次更新" 网络安全文章

【已复现】Fastjson1.2.83远程代码执行漏洞(QVD-2026-43021)安全风险通告第二次更新"

奇安信CERT发布Fastjson1.2.83远程代码执行漏洞(QVD-2026-43021)安全风险通告,该漏洞影响Fastjson1.x全系列版本,CVSS评分9.8,攻击者可构造恶意JSON请求在服务器上执行任意代码。利用条件包括使用SpringBootfat-jar、JDK8及服务器允许出站HTTP访问。官方暂未发布1.x修复补丁,建议迁移至Fastjson2.x或启用SafeMode作为临时缓解措施。奇安信多款产品已支持检测。
披着“主页保护”外衣的劫持者:您的浏览器首页正被导流变现" 网络安全文章

披着“主页保护”外衣的劫持者:您的浏览器首页正被导流变现"

本文分析了Vaultify恶意软件,其伪装成主页保护工具劫持浏览器导航页。软件通过Hook系统进程拦截浏览器启动、篡改配置文件实现持久化,并利用加密云控动态下发推广链接与插件,具备反杀软能力。建议用户立即卸载该软件,清理残留进程与目录,恢复浏览器配置,排查可疑扩展,必要时重置浏览器或使用安全软件查杀。
评论:0   参与:  0