Repositório com script de validação segura para a CVE-2025-23419, vulnerabilidade relacionada ao NGINX, mTLS e TLS session resumption.
包含安全验证脚本的仓库,用于 CVE-2025-23419,该漏洞涉及 NGINX、mTLS 和 TLS session resumption。
O script realiza uma checagem heurística para identificar possível exposição à falha, sem executar exploração ativa e sem tentar burlar autenticação por certificado cliente.
该脚本执行启发式检查,以识别可能暴露于该漏洞的情况,但不执行主动利用,也不尝试绕过客户端证书认证。
A proposta é apoiar triagem técnica, validação defensiva e análise de exposição em ambientes autorizados.
其目的是支持授权环境中的技术筛查、防御性验证和暴露分析。
涉及的 CVE
| CVE | Tecnologia | Tipo | Componente afetado |
|---|---|---|---|
CVE-2025-23419 | NGINX | Possível bypass de autenticação mTLS | TLS session resumption em virtual hosts |
漏洞总结
A CVE-2025-23419 afeta cenários onde múltiplos server blocks do NGINX compartilham o mesmo IP e porta, e o ambiente utiliza autenticação por certificado cliente, também conhecida como mTLS.
CVE-2025-23419 影响多个 NGINX server blocks 共享相同 IP 和端口,并且环境使用客户端证书认证(也称为 mTLS)的场景。
Em determinadas configurações, um atacante poderia reutilizar uma sessão TLS previamente estabelecida para contornar exigências de autenticação por certificado cliente em outro contexto de virtual host.
在某些配置下,攻击者可能重用先前建立的 TLS 会话,以绕过另一个虚拟主机上下文中的客户端证书认证要求。
A vulnerabilidade está relacionada ao uso de TLS session resumption, especialmente quando ssl_session_cache ou ssl_session_tickets estão habilitados.
该漏洞与使用 TLS session resumption 有关,尤其是在启用了 ssl_session_cache 或 ssl_session_tickets 的情况下。
Na prática, a exposição depende da combinação entre versão vulnerável, uso de TLS 1.3, configuração de sessão TLS, múltiplos virtual hosts e aplicação de mTLS em partes específicas do ambiente.
实际上,暴露风险取决于易受攻击的版本、TLS 1.3 的使用、TLS 会话配置、多个虚拟主机以及环境中特定部分应用 mTLS 的组合。
受影响版本
De acordo com advisories públicos, o problema afeta:
根据公开公告,该问题影响:
NGINX 1.11.4 e versões posteriores
NGINX 1.11.4 及更高版本
Quando as seguintes condições estão presentes:
当满足以下条件时:
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 使用 OpenSSL 编译
启用了 TLS 1.3
启用了 Session resumption
使用了 ssl_session_cache 或 ssl_session_tickets
多个 server blocks 共享相同 IP 和端口
部分虚拟主机启用了 mTLS/客户端证书认证
A correção foi publicada nas versões:
修复已在以下版本中发布:
NGINX 1.26.3
NGINX 1.27.4
Portanto, uma versão como:
因此,像这样的版本:
nginx/1.24.0
deve ser tratada como potencialmente vulnerável, desde que o cenário de configuração também seja compatível com a falha.
应被视为 潜在易受攻击,前提是配置场景也符合漏洞条件。
Importante: a versão vulnerável, sozinha, não confirma exploração. Ela indica necessidade de validação da configuração.
重要提示:仅凭易受攻击的版本并不能确认被利用。它表明需要验证配置。
可用脚本
| Script | Objetivo | Quando usar |
|---|---|---|
safe-check-CVE-2025-23419.py | Realiza uma verificação segura e heurística para possível exposição à CVE-2025-23419. | Usar quando o alvo expõe NGINX potencialmente vulnerável e há suspeita de uso de mTLS/TLS session resumption. |
| 脚本 | 目的 | 何时使用 |
|---|---|---|
safe-check-CVE-2025-23419.py | 对可能的 CVE-2025-23419 暴露执行安全且启发式的检查。 | 当目标暴露了潜在易受攻击的 NGINX,并怀疑使用了 mTLS/TLS session resumption 时使用。 |
脚本功能
O script executa validações seguras para levantar indícios da vulnerabilidade:
该脚本执行安全验证,以收集漏洞的迹象:
Server;Server 头部;POSSIVEL ou NAO_INDICADO.POSSIVEL 或 NAO_INDICADO。脚本不做什么
Este script não explora a vulnerabilidade.
此脚本不利用漏洞。
Ele não tenta:
它不会尝试:
A proposta é apenas levantar indícios técnicos para apoiar triagem e validação defensiva.
其目的仅是收集技术迹象,以支持筛查和防御性验证。
理想使用场景
Use este script quando houver um ou mais dos seguintes indícios:
当存在以下一个或多个迹象时,使用此脚本:
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
服务器暴露 nginx/1.24.0
环境使用 mTLS
同一 IP 和端口上存在多个虚拟主机
使用了 TLS 1.3
怀疑启用了 ssl_session_cache 或 ssl_session_tickets
自动化工具指出了 CVE-2025-23419
Exemplos de alvos adequados:
适合的目标示例:
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
POSSIVEL(可能)
Indica que o script encontrou indícios compatíveis com possível exposição à CVE-2025-23419.
表示脚本发现了与 CVE-2025-23419 可能暴露相符的迹象。
Isso não confirma exploração. Significa que o ambiente merece análise manual da configuração NGINX e validação com o time responsável.
这并不确认已被利用。它意味着环境值得进行 NGINX 配置的手动分析,并与负责团队进行验证。
Exemplo de saída detalhada:
详细输出示例:
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
Esses dados ajudam a entender por que o endpoint foi classificado como possível exposição.
这些数据有助于理解为什么该端点被归类为可能暴露。
结果 NAO_INDICADO
NAO_INDICADO
NAO_INDICADO(未指示)
Indica que o script não encontrou indícios suficientes para apontar possível exposição naquele endpoint.
表示脚本未在该端点找到足够的迹象来指出可能的暴露。
Isso não garante ausência absoluta da vulnerabilidade, principalmente se:
这并不能保证绝对不存在漏洞,尤其是在以下情况下:
Server estiver oculto;Server 头部被隐藏;脚本中可调整的字段
Os principais pontos que podem ser ajustados são:
主要可调整的点是:
CERT_ERROR_STATUS = {400, 401, 403, 495, 496}
Essa lista representa códigos HTTP que podem indicar falha relacionada a certificado cliente ausente ou inválido.
此列表表示可能指示缺少或无效客户端证书相关故障的 HTTP 状态码。
Também é possível ajustar o timeout pela linha de comando:
也可以通过命令行调整 timeout:
--timeout 10
要求
依赖项
O script utiliza apenas bibliotecas padrão do Python.
该脚本仅使用 Python 标准库。
Dependências principais:
主要依赖项:
python3
ssl
socket
argparse
urllib
Não é necessário instalar bibliotecas externas via pip.
无需通过 pip 安装外部库。
缓解建议
Atualize o NGINX para uma versão corrigida, preferencialmente 1.26.3, 1.27.4 ou superior, conforme o canal utilizado.
将 NGINX 更新到已修复的版本,根据所使用的通道,最好更新到 1.26.3、1.27.4 或更高版本。
Revise a configuração de server blocks que compartilham o mesmo IP e porta, especialmente quando houver mTLS em apenas parte dos virtual hosts.
审查共享相同 IP 和端口的 server blocks 配置,尤其是当仅部分虚拟主机具有 mTLS 时。
Avalie o uso de:
评估以下内容的使用情况:
ssl_session_cache
ssl_session_tickets
TLS 1.3
server blocks compartilhando IP e porta
mTLS aplicado em virtual hosts específicos
ssl_session_cache
ssl_session_tickets
TLS 1.3
共享 IP 和端口的 server blocks
应用于特定虚拟主机的 mTLS
Também é recomendado isolar contextos que exigem certificado cliente e validar se a autenticação mTLS está sendo aplicada no virtual host correto.
还建议隔离需要客户端证书的上下文,并验证 mTLS 认证是否应用于正确的虚拟主机。
Além disso, revise configurações em proxies, gateways, balanceadores, ingress controllers e CDNs, pois o componente que termina TLS pode não ser o mesmo que responde pela aplicação final.
此外,审查代理、网关、负载均衡器、Ingress 控制器和 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
法律声明
Este script deve ser utilizado apenas em ambientes autorizados.
此脚本仅应在授权环境中使用。
A finalidade é apoiar triagem, validação segura, pentest autorizado, análise defensiva e confirmação de exposição de configuração.
其目的是支持筛查、安全验证、授权渗透测试、防御性分析以及配置暴露确认。
O uso contra sistemas sem autorização é proibido.
禁止在未经授权的系统上使用。