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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-42945-nginx-rift-poc — PoC для CVE-2026-42945 (nginx Rift) — переполнение буфера в куче в ngx_http_rewrite_module. Включает режимы обнаружения/зондирования/эксплуатации, двухфиксаторную Docker-лабораторию, эмпирическое обнаружение адресов, проверку смещения OOB. Первоначальное раскрытие от depthfirst. | Kitploit
Инструменты/GitHubGitHub/f2u0a0d3/cve-2026-42945-nginx-rift-poc
Динамический анализ (песочница)Фреймворки для эксплойтовАнализ уязвимостейЭксплуатация веб-приложенийФаззингТестирование на ПроникновениеОбучение и ОбразованиеЭксплуатация Бинарных ФайловЛаборатории и Практика
GitHubf2u0a0d3/cve-2026-42945-nginx-rift-poc

CVE-2026-42945-nginx-rift-poc

PoC для CVE-2026-42945 (nginx Rift) — переполнение буфера в куче в ngx_http_rewrite_module. Включает режимы обнаружения/зондирования/эксплуатации, двухфиксаторную Docker-лабораторию, эмпирическое обнаружение адресов, проверку смещения OOB. Первоначальное раскрытие от depthfirst.

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

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

NGINX Rift — CVE-2026-42945

RCE proof-of-concept для CVE-2026-42945, критического переполнения буфера в куче в модуле ngx_http_rewrite_module NGINX, появившегося в 2008 году. Позволяет неаутентифицированное удаленное выполнение кода на серверах, использующих комбинации rewrite ... ?... + set для захвата.

Первоначальное раскрытие уязвимости: depthfirst — обнаружена вместе с CVE-2026-42946, CVE-2026-40701, CVE-2026-42934 с помощью их автономной системы аудита исходного кода.

Структура

root@kitploit:~
poc-CVE-2026-42945/
├── exploit.py            — improved PoC (3 modes: --check / --probe / --exploit)
├── poc.py.orig           — original depthfirst PoC (reference)
├── env/                  — dual-fixture Docker lab
│   ├── Dockerfile          (vuln: nginx commit 98fc3bb78)
│   ├── Dockerfile.patched  (patched: release-1.31.0)
│   ├── docker-compose.yml  (both services)
│   ├── nginx.conf          (vulnerable rewrite + set config)
│   ├── entrypoint.sh       (runs under setarch -R — ASLR off)
│   └── server.py           (backend stub)
├── discover-addresses.sh — extract HEAP_BASE / LIBC_BASE / system() offset from running container
├── verify.sh             — dual-fixture reproducer (exploit vuln, prove patched blocks)
├── setup.sh              — build helper (legacy single-image)
├── references.md         — full bug mechanics, exploitation strategy, mitigations
└── README.md             — this file

Уязвимость (кратко)

Двухпроходный скриптовый движок, рассинхронизация флага is_args:

  • Проход длины видит is_args = 0 → выделяет сырую длину захвата
  • Проход копирования видит is_args = 1 → ngx_escape_uri(NGX_ESCAPE_ARGS) 3x расширение → переполнение кучи

Эксплуатация: heap feng shui через тело POST /spray (нулевые байты разрешены в теле, внедрен поддельный ngx_pool_cleanup_s) + переполнение URI, повреждающее соседнюю голову ngx_pool_t.cleanup. Уничтожение пула → system(cmd).

Полная механика и стратегия эксплуатации в references.md.

Затронутые и исправленные версии

ПродуктЗатронутыеИсправленные
NGINX Open Source0.6.27 – 1.30.01.30.1, 1.31.0
NGINX PlusR32 – R36R36 P4, R35 P2, R32 P6

Уведомление вендора: https://my.f5.com/manage/s/article/K000160932

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

root@kitploit:~
# Build both fixtures
docker compose -f env/docker-compose.yml build

# Start lab (vuln=:19321, patched=:19421)
docker compose -f env/docker-compose.yml up -d

# Detect-only (no overflow trigger)
python3 exploit.py --check --host 127.0.0.1 --port 19321

# Full exploit
python3 exploit.py --exploit --host 127.0.0.1 --port 19321 \
    --cmd 'echo pwned > /tmp/rift'

docker exec nginx-rift-vuln cat /tmp/rift

# Dual-fixture verify (exploit vuln + confirm patched blocks)
./verify.sh

# Teardown
docker compose -f env/docker-compose.yml down

Режимы

РежимСценарий использованияПобочный эффект
--checkОпределение наличия поверхности rewriteНет — только отправка маленьких пробных URI
--probeПеребор offsets для приземления spray для ЭТОЙ сборкиВызывает краш рабочих процессов во время поиска; без выполнения
--exploitПолная цепочка RCEКраш рабочего процесса + вызов system() с --cmd

Для целей, не являющихся localhost, требуется флаг --i-have-tested-this (подтверждение, что жестко заданные offsets соответствуют развернутой сборке).

Определение адресов

Значения по умолчанию --heap-base / --libc-base / --system-offset соответствуют встроенной лаборатории (Ubuntu 22.04 / glibc 2.35 / nginx commit 98fc3bb78 / ASLR выключен). Для новой сборки или другой libc:

root@kitploit:~
docker compose -f env/docker-compose.yml up -d nginx-vuln
./discover-addresses.sh
# Copy values into exploit.py invocation

Предостережения

  • Только для лаборатории. Жестко заданные offsets стабильны только внутри встроенного фикстура. Эксплуатация в производственной среде требует вывода offsets для каждой цели (утечка информации + перебор offset).
  • ASLR. Лаборатория отключает ASLR через setarch -R. Реальные цели имеют включенный ASLR — требуется дополнительный примитив утечки информации.
  • Зависимость от конфигурации. Уязвимая поверхность требует комбинации rewrite ... ? + set $X $N в развернутом nginx.conf. Во многих реальных конфигурациях этого нет.

Благодарности

  • Обнаружение уязвимости + оригинальный PoC: depthfirst
  • Этот форк: добавлен режим обнаружения --check, перебор offset --probe, исправленный фикстур, помощник определения адресов, верификатор двойного фикстура
Скачать инструмент