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发现, 云安全监控, 反取证, 堆溢出漏洞, 安全合规, 安全检测, 安全评估, 版本管理, 缓冲区溢出检测, 网络代理, 逆向工具, 配置扫描, 配置检查, 防守安全, 静态分析