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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-42945 — Эксплойт, подтверждающий концепцию, для CVE-2026-42945 — переполнение кучи в директивах rewrite/set NGINX, позволяющее осуществить DoS и потенциальный RCE с помощью специально созданных запросов. | Kitploit
Инструменты/GitHubGitHub/imsre9/cve-2026-42945
Анализ уязвимостейЭксплуатацияВеб-безопасностьТестирование на ПроникновениеОбучение и ОбразованиеЭксплуатация Бинарных Файлов
GitHubimsre9/cve-2026-42945

CVE-2026-42945

Эксплойт, подтверждающий концепцию, для CVE-2026-42945 — переполнение кучи в директивах rewrite/set NGINX, позволяющее осуществить DoS и потенциальный RCE с помощью специально созданных запросов.

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

Популярное

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

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

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

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

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

CVE-2026-42945: Переполнение буфера кучи NGINX Rift

Обзор

CVE-2026-42945 — критическая уязвимость переполнения буфера кучи в сервере NGINX, известная как "NGINX Rift". Уязвимость существует в логике обработки директив rewrite и set в NGINX. При выполнении определённых условий конфигурации злоумышленник может вызвать переполнение кучи с помощью специально сформированного запроса, что приводит к отказу в обслуживании (DoS) и потенциальному удалённому выполнению кода (RCE).

Тип уязвимости: Переполнение буфера кучи Уровень риска: Высокий CVE ID: CVE-2026-42945


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

  • Уязвимые версии: NGINX 0.6.27 ~ 1.30.0
  • Неуязвимые версии: NGINX 1.31.0 и новее

Исправленные версии

Рекомендуется немедленно обновиться до одной из следующих версий:

  • NGINX 1.31.0 или более новая стабильная версия
  • Версии с патчами безопасности, предоставленные поставщиками дистрибутивов

Условия эксплуатации

Для эксплуатации уязвимости должны одновременно выполняться два условия:

  1. Условие конфигурации: В конфигурации NGINX одновременно используются:

    • директива rewrite (строка замены содержит символ ?)
    • директива set (ссылается на группы захвата регулярного выражения rewrite, например, $1, $2)
  2. Условие запроса: URI запроса содержит символы, подлежащие экранированию (например, +, &, % и т.д.)

Пояснение:

  • Директива rewrite устанавливает e->is_args = 1 (никогда не сбрасывается)
  • На этапе вычисления длины для директивы set используется поддвижок с нулевыми значениями (le.is_args = 0)
  • NGINX декодирует %25 в %, но ngx_escape_uri перекодирует обратно в %25 (3 байта)
  • Каждый символ %25 расширяется с 1 байта до 3 байт, что приводит к записи за границы буфера

Способ эксплуатации

PoC-тест

root@kitploit:~
# Использование тестового скрипта из проекта
python3 CVE-2026-42945/CVE-2026-42945-test.py --host cve.test.com --port 80

Процесс проверки уязвимости

  1. Отправка обычного запроса для подтверждения работоспособности сервера
  2. Отправка запроса с небольшим количеством символов %25 для маломасштабного тестирования
  3. Отправка запроса с большим количеством символов %25 (например, 2000) для запуска переполнения буфера
  4. Проверка, упал ли сервер или вернул аномальный ответ (ошибка 500/502)
  5. Проверка, восстановился ли сервер автоматически (основной процесс создаёт новый рабочий процесс)

Анализ результатов тестирования

Результаты одноуровневого PoC

В одноуровневой конфигурации NGINX результаты тестирования запускают уязвимость:

Анализ журнала краха:

  • Рабочий процесс завершился из-за SIGSEGV (сигнал)
  • Крах произошёл в функции ngx_http_script_flush_no_cacheable_variables
  • Фаза краха: ngx_http_core_rewrite_phase

Результаты двухуровневого PoC

В двухуровневой конфигурации NGINX (layer1 — пересылка, layer2 — приложение) результаты тестирования следующие:

Сценарий конфигурацииРезультат layer1Результат layer2Анализ причины
rewrite без break + proxy_pass❌ Уязвимость запущена (404)❌ Запрос не достигПосле rewrite продолжается выполнение set, запускается переполнение кучи, worker падает
rewrite с break + proxy_pass✅ Нормально (200)⚠️ Возможно запуск уязвимостиbreak прекращает выполнение set, запрос нормально пересылается на бэкенд

Описание файлов

ФайлОписание
CVE-2026-42945/CVE-2026-42945-test.pyPoC-скрипт для проверки уязвимости, используется для проверки, уязвима ли цель
single_layer_test/single_layer_nginx.confПример уязвимой конфигурации NGINX одноуровневой архитектуры
single_layer_test/image.pngСхема принципа действия уязвимости
single_layer_test/test.logФайл журнала тестирования
double_layer_test/layer1_nginx.confКонфигурация NGINX первого уровня (уровень пересылки) двухуровневой архитектуры
double_layer_test/layer2_nginx.confКонфигурация NGINX второго уровня (прикладной уровень) двухуровневой архитектуры

Ссылки

  • Официальное уведомление безопасности NGINX
  • Информация о CVE-2026-42945 на MITRE
  • NVD — CVE-2026-42945

Отказ от ответственности

Данный проект предназначен исключительно для целей исследования и обучения в области безопасности. Пользователи обязаны соблюдать законы и нормативные акты своей страны и региона. Авторы не несут ответственности за любое несанкционированное использование.

Запрещено использовать для незаконных атак!


Последнее обновление: 2026-05-19

Скачать инструмент