HackerNews

HackerNews
存在 18 年的 NGINX 重写模块漏洞可致未授权远程代码执行

存在 18 年的 NGINX 重写模块漏洞可致未授权远程代码执行

给文章评分:

网络安全研究人员披露了多个影响 NGINX Plus 和 NGINX Open 的安全漏洞,其中包括一个长达 18 年未被发现的严重漏洞。

该漏洞由 depthfirst 发现,是一个影响 ngx_http_rewrite_module 的堆缓冲区溢出问题(CVE - 2026 - 42945,CVSS v4 评分:9.2),攻击者可利用此漏洞通过特制请求实现远程代码执行或造成拒绝服务(DoS)攻击。它被命名为 “NGINX Rift”。

F5 公司在周三发布的公告中称:“NGINX Plus 和 NGINX 开源版在 ngx_http_rewrite_module 模块存在漏洞。当‘rewrite’指令后紧跟‘rewrite’‘if’或‘set’指令,且未命名的 Perl 兼容正则表达式(PCRE)捕获(例如,$1、$2)的替换字符串中包含问号(?)时,就会出现此漏洞。”

“未经身份验证的攻击者,在特定条件下,可通过发送特制的 HTTP 请求利用此漏洞。这可能导致 NGINX 工作进程中的堆缓冲区溢出,进而致使其重启。此外,对于禁用了地址空间布局随机化(ASLR)的系统,攻击者有可能实现代码执行。”

在 2026 年 4 月 21 日进行责任披露后,以下版本已修复该问题:

  • NGINX Plus R32 - R36(R32 P6 和 R36 P4 版本引入修复)

  • NGINX 开源版 1.0.0 - 1.30.0(1.30.1 和 1.31.0 版本引入修复)

  • NGINX 开源版 0.6.27 - 0.9.7(无修复计划)

  • NGINX 实例管理器 2.16.0 - 2.21.1

  • F5 针对 NGINX 的 Web 应用防火墙(WAF)5.9.0 - 5.12.1

  • NGINX 应用保护 WAF 4.9.0 - 4.16.0

  • NGINX 应用保护 WAF 5.1.0 - 5.8.0

  • F5 针对 NGINX 的 DoS 防护 4.8.0

  • NGINX 应用保护 DoS 4.3.0 - 4.7.0

  • NGINX 网关结构 1.3.0 - 1.6.2

  • NGINX 网关结构 2.0.0 - 2.5.1

  • NGINX 入口控制器 3.5.0 - 3.7.2

  • NGINX 入口控制器 4.0.0 - 4.0.1

  • NGINX 入口控制器 5.0.0 - 5.4.1

depthfirst 在其公告中表示,该漏洞可让远程未授权攻击者通过发送特制的统一资源标识符(URI)破坏 NGINX 工作进程的堆。该漏洞之所以严重,是因为无需身份验证即可利用,且能可靠地触发堆溢出,并可能导致在 NGINX 工作进程中实现远程代码执行。

depthfirst 称:“能够通过 HTTP 访问存在漏洞的 NGINX 服务器的攻击者,只需发送单个请求,就能使工作进程中的堆溢出,从而实现远程代码执行。无需身份验证步骤,无需事先获取访问权限,也无需现有会话。”

“超出分配范围写入的字节源于攻击者的 URI,因此这种破坏由攻击者操控,并非随机。重复发送请求还可使工作进程陷入崩溃循环,降低该实例所服务的每个站点的可用性。”

NGINX Plus 和 NGINX 开源版还修复了其他三个漏洞:

  • CVE - 2026 - 42946(CVSS v4 评分:8.3):ngx_http_scgi_module 和 ngx_http_uwsgi_module 模块中存在过度内存分配漏洞,具备中间人(AitM)能力的远程未授权攻击者,在配置了 scgi_pass 或 uwsgi_pass 时,可借此控制上游服务器的响应,读取 NGINX 工作进程的内存或使其重启。

  • CVE - 2026 - 40701(CVSS v4 评分:6.3):ngx_http_ssl_module 模块存在释放后使用漏洞,当 ssl_verify_client 指令设置为 “on” 或 “optional”,且 ssl_ocsp 指令设置为 “on” 时,远程未授权攻击者可借此对数据修改进行有限控制,或重启 NGINX 工作进程。

  • CVE - 2026 - 42934(CVSS v4 评分:6.3):ngx_http_charset_module 模块存在越界读取漏洞,当配置了 charset、source_charset、charset_map 以及禁用缓冲(“off”)的 proxy_pass 指令时,远程未授权攻击者可借此泄露内存内容或重启 NGINX 工作进程。

建议用户应用最新版本以获得最佳防护。若无法立即针对 CVE - 2026 - 42945 进行补丁更新,建议用户修改重写配置,将每个受影响的 rewrite 指令中的未命名捕获替换为命名捕获。


消息来源:thehackernews.com
本文由 HackerNews.cc 翻译整理,封面来源于网络;
转载请注明“转自 HackerNews.cc”并附上原文
分享到:
hackernews

hackernews

该作者暂无简介