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

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

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

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

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

Категории

Все категории
Loading categories
nginx-cve-2026-42945-check — Локальный сканер только для чтения для CVE-2026-42945 (NGINX Rift), который проверяет экземпляры NGINX, OpenResty и Tengine на наличие уязвимых конфигураций перезаписи без выполнения эксплойтов или изменения сервисов. | Kitploit
Инструменты/GitHubGitHub/byezero/nginx-cve-2026-42945-check
Статический анализСканеры уязвимостейАнализ уязвимостейСкриптинг и автоматизацияАудит конфигурацииВеб-безопасность
GitHubbyezero/nginx-cve-2026-42945-check

nginx-cve-2026-42945-check

Локальный сканер только для чтения для CVE-2026-42945 (NGINX Rift), который проверяет экземпляры NGINX, OpenResty и Tengine на наличие уязвимых конфигураций перезаписи без выполнения эксплойтов или изменения сервисов.

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

Популярное

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

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

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

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

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

Скрипт локальной проверки NGINX CVE-2026-42945

Язык: 中文 | English

Этот репозиторий содержит два скрипта локальной проверки для Linux/Windows, предназначенных для выявления потенциальных рисков, связанных с CVE-2026-42945, в Nginx, OpenResty и Tengine на самом сервере.

Скрипты выполняют только чтение и локальную оценку: не запускают PoC уязвимости, не отправляют атакующие запросы, не изменяют конфигурацию, не перезапускают службы и не обновляют программное обеспечение.

Описание уязвимости

CVE-2026-42945 также известна как NGINX Rift. В открытых источниках она описывается как переполнение кучи (heap buffer overflow) в модуле ngx_http_rewrite_module. Согласно описанию NVD, при определённом сочетании директивы rewrite с последующими директивами rewrite/if/set, использующими безымянные захваченные переменные PCRE (например, $1, ) и строку замены, содержащую вопросительный знак , злоумышленник может вызвать переполнение буфера в куче рабочего процесса NGINX путём отправки специально сконструированного HTTP-запроса. Эта проблема может привести к перезапуску рабочего процесса; при определённых условиях, таких как отключённый ASLR, существует риск выполнения произвольного кода.

$2
?

Официальное уведомление NGINX о безопасности помечает CVE-2026-42945 как переполнение буфера в ngx_http_rewrite_module и указывает границы исправления для NGINX Open Source:

СтатусВерсия NGINX Open Source
Исправлено1.31.0+ / 1.30.1+
Предположительно уязвимы0.6.27-1.30.0

Дистрибутивы, коммерческие продукты, OpenResty, Tengine или пользовательские сборки могут иметь обратное портирование исправлений или различия в соответствии версий. Скрипт постарается собрать как можно больше доказательств, но в конечном итоге рекомендуется сверяться с уведомлениями вендора.

Цель проверки

Этот инструмент не является средством проверки эксплуатации уязвимости; это инструмент локального сбора и статической проверки конфигурации. Он в первую очередь выявляет следующие комбинации:

  1. Использование неэкранированных безымянных захваченных переменных, таких как $1, $2, в строке замены директивы rewrite.
  2. Наличие неэкранированного вопросительного знака ? в той же строке замены rewrite (литеральный \? не считается рискованным).
  3. Наличие последующих директив rewrite, if или set в той же области конфигурации.

Пример рискованного шаблона:

root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?endpoint=$1 last;
    set $flag 1;
}

Риск возникает не от отдельной директивы rewrite или set, а от комбинации версии, контекста конфигурации и порядка выполнения. Если уязвимость подтверждена, всё равно рекомендуется вручную проверить, является ли эта конфигурация активной, доступна ли она для внешних запросов, и не было ли исправления, портированного обратно дистрибутивом.

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

ФайлОписание
check_nginx_linux.shСкрипт локальной проверки для Linux
check_nginx_windows.ps1Скрипт локальной проверки для Windows
README.mdОписание на китайском
README.en.mdОписание на английском

Возможности

Первая версия поддерживает:

  • Проверку локально установленных Nginx / OpenResty / Tengine.
  • Сбор информации о хосте, процессах, службах, версиях, параметрах сборки и активной конфигурации.
  • Поочерёдную проверку нескольких экземпляров Nginx / OpenResty / Tengine на одном сервере.
  • Выявление опасных конфигураций rewrite, связанных с CVE-2026-42945.
  • Вывод результатов на консоль (на китайском), а также создание summary.txt, summary.json и каталога с сырыми доказательствами.

Первая версия НЕ включает:

  • Проверку Docker / Kubernetes.
  • Удалённое сканирование через SSH / WinRM.
  • Автоматическое исправление, обновление или изменение конфигурации.
  • PoC уязвимости или атакующий запрос.

Предварительные требования

Рекомендуется запускать с правами администратора:

  • Linux: от имени root или пользователя с правами sudo.
  • Windows: PowerShell, запущенный от имени администратора.

Без прав администратора скрипт постарается собрать максимум информации; если не удастся экспортировать полную активную конфигурацию (nginx -T), результат будет помечен как требует ручной проверки.

Использование в Linux

Загрузите check_nginx_linux.sh на сервер и выполните:

root@kitploit:~
chmod +x check_nginx_linux.sh
sudo ./check_nginx_linux.sh

Если sudo недоступен, можно выполнить напрямую:

root@kitploit:~
./check_nginx_linux.sh

Использование в Windows

Загрузите check_nginx_windows.ps1 на сервер, запустите PowerShell от имени администратора и выполните:

root@kitploit:~
powershell -ExecutionPolicy Bypass -File .\check_nginx_windows.ps1

Результаты

Скрипт создаёт каталог результатов в той же директории, где он находится. Имя каталога содержит имя хоста, время и PID скрипта, чтобы избежать смешивания доказательств при повторных запусках в одну секунду.

root@kitploit:~
nginx_check_<имя_хоста>_<время>_<PID>/
  summary.txt
  summary.json
  raw/
    host_info.txt
    process_info.txt
    service_info.txt
    package_info.txt
    nginx_paths.txt
    instances/
      instance_01/
        nginx_invocation.txt
        nginx_version.txt
        nginx_build.txt
        nginx_config_dump.txt
        risky_config_matches.txt
      instance_02/
        ...
Файл или каталогОписание
summary.txtСводка на китайском, удобная для просмотра и передачи
summary.jsonСтруктурированный результат для последующей пакетной обработки
raw/Вывод сырых команд и файлы доказательств
raw/instances/instance_XX/Отдельные версии, конфигурации и доказательства рисков для каждого экземпляра

Сводка содержит следующие поля:

ПолеОписание
Количество экземпляровКоличество найденных и проверенных экземпляров Nginx / OpenResty / Tengine на хосте
Размер конфигурацииРазмер файла с экспортированной конфигурацией (nginx -T)
Количество просканированных строкЧисло строк вывода конфигурации, обработанных скриптом
Количество найденных опасных конфигурацийЧисло срабатываний по опасным правилам rewrite
Сводка доказательствПредварительный просмотр доказательств для наиболее рискованного экземпляра; полные доказательства — в соответствующем каталоге экземпляра

Если конфигурация Nginx велика, скрипт не выводит её полностью на консоль; полная активная конфигурация сохраняется в файл nginx_config_dump.txt в каталоге соответствующего экземпляра. Если размер экспортированного файла превышает 10 МБ, скрипт продолжит автоматическое сканирование и предложит провести выборочную ручную проверку на основе raw/.

Обработка нескольких экземпляров

Если на сервере обнаружено несколько исполняемых файлов-кандидатов (nginx, openresty, tengine), скрипт проверяет каждый по отдельности и формирует подробную информацию по экземплярам.

Заключение в общей сводке берётся по самому рискованному экземпляру. Общий приоритет консервативен:

  1. Уязвим с опасной конфигурацией
  2. Требует ручной проверки
  3. Уязвим без опасной конфигурации
  4. Не уязвим
  5. Nginx не установлен

При этом Требует ручной проверки стоит выше Уязвим без опасной конфигурации, что означает наличие неподтверждённого экземпляра, требующего дальнейшей проверки, а не подтверждение наличия опасной конфигурации.

Результаты проверки

ЗаключениеЗначение
Nginx не установленНе найдена команда, процесс или служба Nginx / OpenResty / Tengine
Не уязвимЧётко указана исправленная версия, опасные конфигурации не обнаружены
Уязвим без опасной конфигурацииВерсия предположительно уязвима, но опасных конфигураций rewrite не найдено
Уязвим с опасной конфигурациейВерсия предположительно уязвима или требует проверки для производных, и найдена опасная конфигурация rewrite
Требует ручной проверкиВерсия неизвестна, производная сборка, не удалось собрать конфигурацию, недостаточно прав или доказательств

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

ПродуктОпределение версии
NGINX 1.31.0+Исправлено, скрипт показывает Исправлено (mainline)
NGINX 1.30.1+Исправлено, скрипт показывает Исправлено (stable)
NGINX 0.6.27-1.30.0Предположительно уязвима
OpenResty / TengineМожно собрать версию и конфигурацию, но влияние версии по умолчанию требует ручной проверки

Дистрибутивы могут иметь старую версию, в которую уже портировано исправление. При наличии подтверждения от вендора можно провести ручную проверку с помощью summary.txt и информации о пакете.

Рекомендации по устранению

  • Приоритетно обновиться до официальной версии или версии, выпущенной поставщиком дистрибутива.
  • В первую очередь проверять экземпляры на публичных точках входа, обратных прокси и граничных балансировщиках нагрузки.
  • Проверить все контексты location, server, if на комбинации rewrite/if/set.
  • Избегать использования безымянных захваченных переменных ($1, $2) в строках замены rewrite, содержащих ?.
  • Рассмотреть возможность использования именованных захватов, сохранения переменных заранее, разделения логики обработки или удаления ненужного переписывания query string.
  • Не полагаться только на версию; наличие инициирующей последовательности в конфигурации имеет решающее значение.

Ограничения

  • Этот инструмент является локальным скриптом только для чтения и не является средством проверки эксплуатации уязвимости.
  • Статическое сканирование конфигурации может давать ложные срабатывания; требуется ручная проверка с учётом реального контекста NGINX.
  • Если nginx -T не может полностью экспортировать конфигурацию, скрипт не считает систему безопасной.
  • Для OpenResty / Tengine / пользовательских сборок влияние версии по умолчанию требует ручной проверки.
  • Отсутствие обнаружения риска не означает абсолютную безопасность; всё равно рекомендуется обновиться до исправленной версии, подтверждённой официальным дистрибутивом или вендором.

Ссылки

  • NGINX Security Advisories
  • NVD: CVE-2026-42945
  • F5 Advisory K000161019
  • depthfirst: NGINX Rift
Скачать инструмент