Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
nginx-rift-scanner — 用于 CVE-2026-42945 (NGINX Rift) 的仅检测扫描器,该漏洞是 ngx_http_rewrite_module 中的堆溢出。版本检测 + nginx.conf 模式分析。仅使用 Python 3 标准库,无网络调用。 | Kitploit
工具/GitHubGitHub/simota/nginx-rift-scanner
静态分析漏洞扫描器漏洞分析代码分析配置审计Web安全
GitHubsimota/nginx-rift-scanner

nginx-rift-scanner

用于 CVE-2026-42945 (NGINX Rift) 的仅检测扫描器,该漏洞是 ngx_http_rewrite_module 中的堆溢出。版本检测 + nginx.conf 模式分析。仅使用 Python 3 标准库,无网络调用。

查看仓库
12个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

nginx-rift-scanner

无第三方依赖的 Python 3 扫描器,用于检测 CVE-2026-42945("NGINX Rift")—— ngx_http_rewrite_module 中一个 CVSS v4.0 9.2 严重(CRITICAL) 的基于堆的缓冲区溢出(CWE-122)。

检测内容

每次调用都会执行两项独立的检查:

检查项方式
版本nginx -V、dpkg/rpm/apk、Dockerfile/compose 镜像标签
配置模式对 nginx.conf 及所有 include 文件进行支持大括号感知的解析

受影响版本

关于 1.30.1 的说明:已打补丁的 1.30.1 稳定版与易受攻击版本的版本字符串相同, 因此扫描器将所有 1.30.1 归类为 POTENTIALLY_VULNERABLE(退出码 1,采取保守策略)。 请通过软件包变更日志 / 官方公告的回移(backport)信息来确认补丁已应用。

配置触发模式

当 以下三个条件同时成立 时,相应作用域块会被标记:

  1. 某个 rewrite、if 或 set 指令使用了 未命名的 PCRE 捕获组 引用 ($1–$9,包括花括号形式 ${1}–${9})。
  2. 该指令的 值/替换参数 中包含 ? 字符 (对于 rewrite/set,正则模式的参数被排除在外——那里的 ? 是 PCRE 量词; if 条件则采用保守方式扫描)。
  3. 同一作用域内 随后还有另一个 rewrite/if/set 指令 (include 文件会被拼接到包含它的作用域中,因此跨 边界的配对也能被检测到)。

快速开始

root@kitploit:~
# 克隆并运行
git clone https://github.com/simota/nginx-rift-scanner.git
cd nginx-rift-scanner

# 扫描本地 nginx(nginx 二进制在 PATH 中,配置位于 /etc/nginx/nginx.conf)
python3 scripts/scan_nginx_rift.py

# 自定义路径
python3 scripts/scan_nginx_rift.py \
  --nginx-binary /usr/sbin/nginx \
  --config /etc/nginx/nginx.conf \
  --prefix /etc/nginx \
  --scan-dir /app

# JSON 输出(CI / SIEM)
python3 scripts/scan_nginx_rift.py --json

# 使用内置测试样例进行验证
python3 scripts/scan_nginx_rift.py --config fixtures/vulnerable.nginx.conf
python3 scripts/scan_nginx_rift.py --config fixtures/safe.nginx.conf

退出码:0 = 安全,1 = 版本或配置模式被标记为 VULNERABLE / POTENTIALLY_VULNERABLE。

选项

修复建议

升级(推荐):

  • OSS → NGINX ≥ 1.31.0(或应用 1.30.1 稳定版补丁)
  • Plus → R32P6+、R36P4+ 或 R37+

临时规避 — 将每个同时包含 ? 的 rewrite/if/set 指令中的未命名捕获组替换为命名捕获组:

root@kitploit:~
# 易受攻击
rewrite ^/api/(\w+)$ /new-api?path=$1 last;

# 安全
rewrite ^/api/(?<action>\w+)$ /new-api?path=$action last;

误报说明

配置检测结果属于 启发式 判断。被标记的指令并不能保证一定可利用——? 可能不在 URI 构造路径中, 或者捕获组引用可能不会与发生溢出的内存分配产生交互。在优先进行修复之前,每一条结果都应经过人工审查。

环境要求

  • Python 3.6+(仅标准库——无需 pip 安装)
  • nginx 二进制文件(可选——缺失时跳过版本检查)

测试样例

文件预期结果
fixtures/vulnerable.nginx.conf3 条配置检测结果,退出码 1
fixtures/safe.nginx.conf0 条配置检测结果,退出码 0

测试

root@kitploit:~
python3 -m unittest discover -s tests -v

参考链接

  • NVD:https://nvd.nist.gov/vuln/detail/CVE-2026-42945
  • F5 安全公告 K000161019:https://my.f5.com/manage/s/article/K000161019
下载工具
版本类型
受影响
已修复
NGINX OSS0.6.27 – 1.30.11.31.0+(或已打补丁的 1.30.1)
NGINX PlusR32P6 之前的 R32R32P6+
NGINX PlusR36P4 之前的 R36R36P4+
NGINX PlusR37+不受影响
include
标志默认值说明
--nginx-binary PATHnginxnginx 可执行文件路径
--config PATH/etc/nginx/nginx.conf要扫描的根 nginx 配置文件
--prefix PATH--config 所在目录nginx 配置前缀,用于解析相对路径的 include(nginx 会以前缀为基准解析,而不是包含该 include 的文件所在目录)
--scan-dir PATH.用于搜索 Dockerfile/compose 文件的目录
--json—向 stdout 输出 JSON 报告