找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 100|回复: 2

NGINX ngx_http_rewrite_module 堆缓冲区溢出漏洞(CVE-2026-42945) 之discuz伪静态规则调整 New

[复制链接]

370

主题

1063

回帖

1435

积分

金牌会员

积分
1435
发表于 7 小时前 | 显示全部楼层 |阅读模式
漏洞名称


NGINX ngx_http_rewrite_module 堆缓冲区溢出漏洞


漏洞编号


QVD-2026-26347,CVE-2026-42945


公开时间


2026-05-13


影响量级


万级


奇安信评级


高危


CVSS 3.1分数


8.1


威胁类型


代码执行、拒绝服务


利用可能性




POC状态


已公开


在野利用状态


未发现


EXP状态


已公开


技术细节状态


已公开


危害描述:未经身份认证的攻击者可通过发送构造的 HTTP 请求触发漏洞,造成 Worker 进程崩溃,在特定环境下还可实现远程代码执行。



影响组件

NGINX 是一款高性能、轻量级的开源 Web 服务器与反向代理服务,广泛用于静态资源托管、负载均衡、API 网关、缓存加速等场景,支持 HTTP/HTTPS、WebDAV、HTTP/3 等多种协议,具备高并发、低资源占用、模块化扩展等特性,是全球互联网主流的服务端基础软件,被政企、云厂商、互联网企业大量部署。ngx_http_rewrite_module 是 NGINX 的核心内置模块,用于基于 PCRE 正则表达式动态修改请求 URI、实现 URL 重写/重定向、条件路由及变量操作。


漏洞描述

近日,奇安信CERT监测到官方修复NGINX ngx_http_rewrite_module 堆缓冲区溢出漏洞(CVE-2026-42945),该漏洞源于处理特定 rewrite 指令时,由于内部标志位管理错误,导致堆缓冲区分配长度与实际写入长度不一致,从而引发堆缓冲区溢出。未经身份认证的攻击者可通过发送构造的 HTTP 请求触发漏洞,造成 Worker 进程崩溃,在特定环境下还可实现远程代码执行。该漏洞影响自 0.6.27 至 1.30.0 的绝大部分 NGINX 版本,已在代码库中存在长达 18 年。目前该漏洞PoC和技术细节已公开。鉴于该漏洞影响范围较大,建议客户尽快做好自查及防护。
利用条件

在 Nginx 的配置中,必须存在一个 rewrite 指令,并且该指令同时满足:

1. 使用了未命名的 PCRE 正则捕获(例如 $1, $2 等)。
2. 其替换字符串中包含问号(?)。
3. 在此 rewrite 指令之后,紧跟着另一个 rewrite、if 或 set 指令。

完整原文:https://mp.weixin.qq.com/s/OiG79CNVC91Wj8C_6VJRog

使用宝塔的站长,可先点击“软件商店”右上角的“更新软件列表”,然后升级 Nginx 到 1.30.1 及以上版本解决此漏洞,升级过程中站点无法访问

如果你的 Nginx 无法升级到安全版本,可修改伪静态规则
  1. rewrite ^(?<path>[^\.]*)/topic-(?<topic>.+)\.html$ $path/portal.php?mod=topic&topic=$topic last;rewrite ^(?<path>[^\.]*)/article-(?<aid>[0-9]+)-(?<page>[0-9]+)\.html$ $path/portal.php?mod=view&aid=$aid&page=$page last;rewrite ^(?<path>[^\.]*)/forum-(?<fid>\w+)-(?<page>[0-9]+)\.html$ $path/forum.php?mod=forumdisplay&fid=$fid&page=$page last;rewrite ^(?<path>[^\.]*)/thread-(?<tid>[0-9]+)-(?<page>[0-9]+)-(?<extra>[0-9]+)\.html$ $path/forum.php?mod=viewthread&tid=$tid&extra=page%3D$extra&page=$page last;rewrite ^(?<path>[^\.]*)/group-(?<fid>[0-9]+)-(?<page>[0-9]+)\.html$ $path/forum.php?mod=group&fid=$fid&page=$page last;rewrite ^(?<path>[^\.]*)/space-(?<type>username|uid)-(?<value>.+)\.html$ $path/home.php?mod=space&$type=$value last;rewrite ^(?<path>[^\.]*)/blog-(?<uid>[0-9]+)-(?<id>[0-9]+)\.html$ $path/home.php?mod=space&uid=$uid&do=blog&id=$id last;rewrite ^(?<path>[^\.]*)/(?<action>fid|tid)-(?<value>[0-9]+)\.html$ $path/index.php?action=$action&value=$value last;rewrite ^(?<path>[^\.]*)/(?<plugin>[a-z]+[a-z0-9_]*)-(?<param>[a-z0-9_\-]+)\.html$ $path/plugin.php?id=$plugin:$param last;if (!-e $request_filename) {    return 404;}
复制代码
如需有偿服务,联系官方有偿服务QQ 1453650
回复

使用道具 举报

370

主题

1063

回帖

1435

积分

金牌会员

积分
1435
楼主 发表于 7 小时前 | 显示全部楼层
Nginx 1.30.1   前来占位,吃瓜中
回复

使用道具 举报

370

主题

1099

回帖

1471

积分

金牌会员

积分
1471
发表于 7 小时前 | 显示全部楼层
漏洞 居然存在那么久?    :lol   第一时间把 所有服务器 升级,  都搞定了  !
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表