hnytgl/cve-2026-42945
GitHub: hnytgl/cve-2026-42945
这是一个用于静态检测 NGINX 配置中 CVE-2026-42945 漏洞风险的工具,帮助安全团队识别高风险 rewrite 模式。
Stars: 1 | Forks: 0
# CVE-2026-42945 安全检测工具
这是一个面向防守和内网排查的 CVE-2026-42945 静态检测工具,用于检查 NGINX `ngx_http_rewrite_module` 相关配置是否存在高风险 rewrite 组合。
本项目不提供漏洞利用代码,不发送恶意 HTTP 请求,也不会尝试触发崩溃或远程代码执行。它只读取本地 NGINX 配置文件,帮助安全团队判断是否需要升级或整改配置。
## 漏洞背景
CVE-2026-42945 是 NGINX Open Source 和 NGINX Plus `ngx_http_rewrite_module` 中的堆缓冲区溢出漏洞。
公开公告描述的风险场景大致包括:
- 存在 `rewrite` 指令;
- 后续紧跟 `rewrite`、`if` 或 `set` 指令;
- 配置中使用了未命名 PCRE 捕获引用,例如 `$1`、`$2`;
- rewrite replacement 字符串中包含 `?`。
NGINX Open Source 的修复版本包括 `1.30.1`、`1.31.0` 及更新版本。NGINX Plus 请以厂商公告中的修复版本为准。
参考链接:
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-42945
- F5 公告: https://my.f5.com/manage/s/article/K000161019
- oss-security 镜像: https://seclists.org/oss-sec/2026/q2/519
## 安装要求
只需要 Python 3,无第三方依赖。
python3 --version
## 使用方法
推荐先导出 NGINX 完整渲染后的配置:
nginx -T > nginx-rendered.conf
python3 cve_2026_42945_checker.py nginx-rendered.conf
也可以直接扫描配置目录:
python3 cve_2026_42945_checker.py /etc/nginx
输出 JSON:
python3 cve_2026_42945_checker.py --json nginx-rendered.conf
如果配置导出中没有包含 NGINX 版本信息,可以手动指定版本进行辅助判断:
python3 cve_2026_42945_checker.py --json --nginx-version 1.30.0 nginx-rendered.conf
输出 SARIF,方便导入 GitHub code scanning 或内部安全平台:
python3 cve_2026_42945_checker.py --sarif nginx-rendered.conf > cve-2026-42945.sarif
## 退出码
- `0`:未发现高风险配置模式;
- `1`:发现至少一个高风险配置模式;
- `2`:输入文件或路径读取失败。
## 输出说明
检测结果中的重点字段包括:
- `versions`:从配置或参数中识别到的 NGINX 版本及判断结果;
- `findings`:命中的风险配置位置、原因和证据;
- `summary`:扫描文件数量、发现数量和最高风险级别。
示例风险结果会指出类似这样的证据:
rewrite ... ?$1; -> set ... $1;
这表示该配置形态与公开公告描述的风险条件相近,需要优先复核。
## 修复建议
优先升级 NGINX 到已修复版本:
- NGINX Open Source `1.30.1`、`1.31.0` 或更新版本;
- NGINX Plus 使用厂商公告中的修复版本。
同时建议复核 rewrite 规则:
- 尽量避免依赖 `$1`、`$2` 这类未命名捕获引用;
- 优先使用具名捕获;
- 简化连续 rewrite、if、set 组合;
- 对外发布前使用 `nginx -T` 导出的完整配置进行扫描。
## 局限性
这个工具是静态配置检测器,不是完整漏洞验证器。它可能无法覆盖:
- 运行时动态生成的配置;
- 未包含在扫描路径中的 include 文件;
- 厂商 backport 补丁;
- 与实际流量、编译参数、运行环境相关的差异。
请把它作为内网排查和配置审计辅助工具,而不是唯一的漏洞评估依据。
## 开发
运行测试:
python -m pytest
仓库已包含 GitHub Actions 工作流,会在 push 和 pull request 时自动运行测试。
标签:CVE-2026-42945, NGINX安全, NGINX配置, Python安全工具, rewrite模块, URL发现, 云安全监控, 反取证, 堆溢出漏洞, 安全合规, 安全检测, 安全评估, 版本管理, 缓冲区溢出检测, 网络代理, 逆向工具, 配置扫描, 配置检查, 防守安全, 静态分析