harley-ghostie/safe-check-CVE-2025-23419

GitHub: harley-ghostie/safe-check-CVE-2025-23419

针对 CVE-2025-23419(NGINX mTLS 会话恢复绕过漏洞)的非侵入式安全检测脚本,通过启发式分析外部可观测指标判断目标是否存在暴露风险。

Stars: 0 | Forks: 0

# CVE-2025-23419 安全检查 - NGINX mTLS 会话恢复 用于安全验证 **CVE-2025-23419** 的脚本仓库,该漏洞与 **NGINX**、**mTLS** 和 **TLS 会话恢复**相关。 该脚本执行启发式检查,以识别潜在的漏洞暴露,而不会执行主动利用,也不会尝试绕过基于客户端证书的身份验证。 其目的是支持在授权环境中进行技术分诊、防御性验证和暴露面分析。 ## 涉及的 CVE | CVE | 技术 | 类型 | 受影响组件 | |---|---|---|---| | `CVE-2025-23419` | NGINX | 可能绕过 mTLS 身份验证 | 虚拟主机中的 TLS 会话恢复 | ## 漏洞概述 **CVE-2025-23419** 影响以下场景:当多个 NGINX `server blocks` 共享相同的 IP 和端口,且环境使用客户端证书身份验证(也称为 **mTLS**)时。 在某些特定配置中,攻击者可能会重新使用先前建立的 TLS 会话,以绕过另一个虚拟主机上下文中的客户端证书身份验证要求。 该漏洞与 **TLS 会话恢复** 的使用有关,特别是当启用了 `ssl_session_cache` 或 `ssl_session_tickets` 时。 实际上,漏洞暴露取决于 NGINX 易受攻击的版本、TLS 1.3 的使用、TLS 会话配置、多个虚拟主机以及环境特定部分中 mTLS 的应用这几者之间的组合情况。 ## 受影响版本 根据公开的安全公告,该问题影响: ``` NGINX 1.11.4 e versões posteriores ``` 当存在以下条件时: ``` NGINX compilado com OpenSSL TLS 1.3 habilitado Session resumption habilitado Uso de ssl_session_cache ou ssl_session_tickets Múltiplos server blocks compartilhando o mesmo IP e porta Autenticação mTLS/client certificate em algum virtual host ``` 修复版本已发布在: ``` NGINX 1.26.3 NGINX 1.27.4 ``` 因此,以下版本: ``` nginx/1.24.0 ``` 只要其配置场景也符合该漏洞的特征,就应被视为 **潜在受影响版本**。 重要提示:仅凭受影响版本不能确认漏洞可被利用。它表明需要对配置进行验证。 ## 可用脚本 | 脚本 | 目的 | 何时使用 | |---|---|---| | `safe-check-CVE-2025-23419.py` | 对潜在 CVE-2025-23419 暴露进行安全启发式检查。 | 在目标暴露了潜在受影响的 NGINX,且怀疑使用了 mTLS/TLS 会话恢复时使用。 | ## 脚本功能 该脚本执行安全验证以收集漏洞的迹象: - 尝试识别 `Server` 标头; - 验证服务是否类似于 NGINX; - 提取公开的 NGINX 版本; - 将版本与潜在受影响范围进行比较; - 尝试推断端点是否需要 mTLS; - 检查 TLS 会话恢复的迹象; - 测试随机 SNI/Host,以识别同一 IP 和端口上可能存在的未配置 mTLS 的 vhost/default; - 返回简单输出,指示为 `POSSIVEL` 或 `NAO_INDICADO`。 ## 脚本不会执行的操作 此脚本不会利用该漏洞。 它不会尝试: - 绕过 mTLS 身份验证; - 访问受保护区域; - 使用有效的客户端证书; - 以攻击性方式在不同 vhost 之间重用会话; - 造成服务不可用; - 执行暴力破解; - 修改环境中的数据。 其目的只是收集技术迹象,以支持防御性分诊和验证。 ## 使用的理想场景 当存在以下一个或多个迹象时,请使用此脚本: ``` Servidor expõe nginx/1.24.0 Ambiente utiliza mTLS Existem múltiplos virtual hosts no mesmo IP e porta Há uso de TLS 1.3 Há suspeita de ssl_session_cache ou ssl_session_tickets habilitados Ferramenta automatizada apontou CVE-2025-23419 ``` 适当目标的示例: ``` https://api.exemplo.com.br/ https://admin.exemplo.com.br/ https://mtls.exemplo.com.br/ https://gateway.exemplo.com.br/ ``` # 脚本使用 ## 基本示例 ``` python3 safe-check-CVE-2025-23419.py https://exemplo.com.br/ ``` ## 详细输出示例 ``` python3 safe-check-CVE-2025-23419.py https://exemplo.com.br/ --verbose ``` ## JSON 输出示例 ``` python3 safe-check-CVE-2025-23419.py https://exemplo.com.br/ --json ``` ## 修改超时示例 ``` python3 safe-check-CVE-2025-23419.py https://exemplo.com.br/ --timeout 10 ``` # 结果解读 ## POSSIVEL 结果 ``` POSSIVEL ``` 指示脚本发现了与潜在 **CVE-2025-23419** 暴露迹象相符的特征。 这并不确认漏洞可被利用。这意味着该环境需要人工分析 NGINX 配置,并由负责团队进行验证。 详细输出示例: ``` POSSIVEL nginx_header: nginx/1.24.0 nginx_ver: (1, 24, 0) (vuln? True) mtls_hint: True tls: TLSv1.3 resumption_reused: True other_vhost_no_mtls_hint: True ``` 这些数据有助于理解为什么该端点被分类为潜在暴露。 ## NAO_INDICADO 结果 ``` NAO_INDICADO ``` 指示脚本未在该端点发现足够的迹象来指出其存在潜在暴露。 这并不绝对保证没有漏洞,特别是在以下情况: - `Server` 标头被隐藏; - NGINX 版本未公开; - mTLS 配置在另一个虚拟主机上; - 负载均衡器/CDN 掩盖了真实的 NGINX; - 验证在错误的端点上执行; - 无法从外部推断真实的 NGINX 配置。 # 脚本中的可调字段 可以调整的主要部分包括: ``` CERT_ERROR_STATUS = {400, 401, 403, 495, 496} ``` 此列表表示可能与缺少或无效客户端证书故障相关的 HTTP 状态码。 也可以通过命令行调整 `timeout`: ``` --timeout 10 ``` # 依赖项 ## 依赖 该脚本仅使用 Python 标准库。 主要依赖: ``` python3 ssl socket argparse urllib ``` 无需通过 `pip` 安装外部库。 # 缓解建议 将 NGINX 更新到已修复的版本,根据所使用的发布渠道,最好更新至 `1.26.3`、`1.27.4` 或更高版本。 检查共享相同 IP 和端口的 `server blocks` 配置,特别是当只有部分虚拟主机配置了 mTLS 时。 评估使用以下配置: ``` ssl_session_cache ssl_session_tickets TLS 1.3 server blocks compartilhando IP e porta mTLS aplicado em virtual hosts específicos ``` 还建议隔离需要客户端证书的上下文,并验证 mTLS 身份验证是否应用于正确的虚拟主机。 此外,请检查 proxies、gateways、load balancers、ingress controllers 和 CDN 中的配置,因为终止 TLS 的组件可能不是最终响应应用程序的同一组件。 # 参考资料 ``` https://mailman.nginx.org/pipermail/nginx-announce/2025/NYEUJX7NCBCGJGXDFVXNMAAMJDFSE45G.html https://nvd.nist.gov/vuln/detail/CVE-2025-23419 https://ubuntu.com/security/CVE-2025-23419 https://github.com/advisories/GHSA-84xh-pwc6-7g4g https://access.redhat.com/security/cve/cve-2025-23419 ``` # 免责声明 此脚本只能在授权环境中使用。 其目的是支持安全分诊、安全验证、授权渗透测试、防御性分析以及配置暴露的确认。 严禁在未经授权的情况下针对系统使用。
标签:AES-256, CISA项目, CVE-2025-23419, Heuristic Check, mTLS, NGINX, PoC, Python, Scanner, SSL_SESSION_CACHE, TLS 1.3, TLS Session Resumption, URL发现, Web服务器安全, 安全检测, 无后门, 暴力破解, 漏洞评估, 虚拟主机, 身份验证绕过, 逆向工具, 防御分析