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

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

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

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

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

Категории

Все категории
Loading categories
NGINX_RIFT_SCAN_CVE_2026_42945 — Nginx Rewrite CVE Сканирование (CVE-2026-42945 nginx-rift CVE-2026-9256) | Kitploit
Инструменты/GitHubGitHub/friparia/nginx_rift_scan_cve_2026_42945
Статический анализСканеры уязвимостейЭксплуатацияАудит конфигурацииВеб-безопасностьНеправильная Конфигурация
GitHubfriparia/nginx_rift_scan_cve_2026_42945

NGINX_RIFT_SCAN_CVE_2026_42945

Nginx Rewrite CVE Сканирование (CVE-2026-42945 nginx-rift CVE-2026-9256)

Репозиторий
34953 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

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

Сканер конфигурации NGINX Rift

Язык: русский | English

Это легковесный скрипт для проверки конфигураций NGINX на наличие паттернов риска CVE-2026-42945 (NGINX Rift) и CVE-2026-9256.

Уязвимость была раскрыта depthfirst в статье NGINX Rift: Achieving NGINX RCE via an 18-Year-Old Vulnerability. Согласно статье и описаниям F5/NVD, риск связан с определенными комбинациями конфигураций ngx_http_rewrite_module: когда строка замены rewrite содержит ?, а последующие rewrite, if или set ссылаются на безымянные переменные захвата PCRE, например $1, $2.

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

Данный инструмент проверяет конфигурации NGINX на наличие следующих высокорисковых паттернов.

CVE-2026-42945

Высокорисковая последовательность, например:

root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;
    set $original_endpoint $1;
}

Риск представляют не отдельные rewrite или set, а их порядок выполнения в одном контексте:

  1. rewrite использует регулярные захваты, и строка замены содержит ?
  2. Последующие rewrite, if или set используют безымянные переменные захвата, такие как $1, $2

Такая комбинация может привести к несоответствию между вычислением длины и фактическим копированием в скриптовом движке NGINX, вызывая переполнение кучи.

CVE-2026-9256

Высокорисковый rewrite, например:

root@kitploit:~
location / {
    rewrite /wengine-auth-static/((.*)) /?$1$2 break;
}

Условия риска:

  1. Регулярное выражение содержит перекрывающиеся группы захвата, например, в ^/((.*))$ $1 включает $2
  2. Строка замены ссылается на несколько перекрывающихся групп захвата в контексте перенаправления (redirect) или аргументов (arguments), например $1$2

Обратите внимание, что break не исключает риск; если несколько перекрывающихся групп захвата появляются в части аргументов после ?, это всё равно относится к контексту arguments. Обычный URI rewrite, например /$1$2 break, не является условием срабатывания этой CVE.

При обнаружении такого паттерна скрипт явно помечает его как CVE-2026-9256.

Зона поражения

Согласно статье depthfirst, затронутые версии включают:

  • NGINX Open Source 0.6.27 – 1.30.1
  • NGINX Plus R32 – R36
  • Некоторые продукты F5 / NGINX на базе NGINX

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

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

  • Версия в диапазоне 0.6.27 – 1.30.1 и конфигурация содержит рискованную последовательность: необходимо обновить NGINX или изменить конфигурацию.
  • Версия в диапазоне 0.6.27 – 1.30.1, но конфигурация не содержит рискованную последовательность: рекомендуется обновление, но данный инструмент не обнаружил условий срабатывания.
  • Конфигурация содержит рискованную последовательность, но версия не входит в затронутый диапазон: рекомендуется пересмотреть конфигурацию и использовать исправленную версию.

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

Простое сканирование полной конфигурации NGINX на текущей машине:

root@kitploit:~
python3 scan_rift.py

Скрипт выполнит:

root@kitploit:~
nginx -T

Если у текущего пользователя нет прав на чтение полной конфигурации, используйте sudo:

root@kitploit:~
sudo python3 scan_rift.py

Также можно сканировать уже экспортированный файл конфигурации:

root@kitploit:~
python3 scan_rift.py /path/to/nginx-full.conf

Например, сначала экспортировать конфигурацию, а затем сканировать:

root@kitploit:~
sudo nginx -T > nginx-full.conf
python3 scan_rift.py nginx-full.conf

Описание вывода

При отсутствии рискованных последовательностей:

root@kitploit:~
--- NGINX Rift Config Scanner (CVE-2026-42945 / CVE-2026-9256) ---
Current NGINX Version: nginx version: nginx/1.23.3
Version Status: Affected version range for NGINX Open Source (0.6.27 - 1.30.1)

[+] No vulnerable CVE-2026-42945 sequences or CVE-2026-9256 patterns detected.

[Recommendation]: Current NGINX version is in the affected range, but no vulnerable config pattern was detected. Upgrade is recommended, but config risk was not found by this scanner.

При обнаружении подозрительной последовательности:

root@kitploit:~
--- NGINX Rift Config Scanner (CVE-2026-42945 / CVE-2026-9256) ---
Current NGINX Version: nginx version: nginx/1.23.3
Version Status: Affected version range for NGINX Open Source (0.6.27 - 1.30.1)

[!] VULNERABLE SEQUENCE FOUND (CVE-2026-42945):
    Context: location ~ ^/api/(.*)$ {
    [1. Rewrite With ?] rewrite ^/api/(.*)$ /internal?migrated=true;
    [2. Follow-up $N]   set $original_endpoint $1;

[Action Required]: Current NGINX version is affected and vulnerable config was found. Upgrade NGINX or adjust the reported rewrite pattern.

При обнаружении подозрительного паттерна CVE-2026-9256:

root@kitploit:~
--- NGINX Rift Config Scanner (CVE-2026-42945 / CVE-2026-9256) ---
Current NGINX Version: nginx version: nginx/1.23.3
Version Status: Affected version range for NGINX Open Source (0.6.27 - 1.30.1)

[!] VULNERABLE PATTERN FOUND (CVE-2026-9256):
    Context: location ^~ /wengine-auth-static/ {
    [Rewrite Overlapping Captures] rewrite /wengine-auth-static/((.*)) /?$1$2 break;
    [Context] arguments; overlapping refs: $1/$2

[Action Required]: Current NGINX version is affected and vulnerable config was found. Upgrade NGINX or adjust the reported rewrite pattern.

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

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

  • Обновитесь до исправленной версии, выпущенной поставщиком.
  • Проверьте все комбинации rewrite / set в контекстах location, server, if и т.д.
  • Избегайте использования безымянных переменных захвата, таких как $1, $2, после rewrite с ?.
  • Избегайте объединения нескольких перекрывающихся групп захвата в перенаправлениях или аргументах, например ^/((.*))$ с ?$1$2.
  • Не считайте break способом обхода CVE-2026-9256; /?$1$2 break всё равно сработает.
  • Используйте именованные захваты, сохраняйте переменные заранее, разделяйте логику обработки или удаляйте ненужные rewrite строки запроса.
  • До исправления в первую очередь обрабатывайте NGINX-сервисы и обратные прокси, доступные из публичной сети.
  • Не полагайтесь только на версию: наличие или отсутствие последовательности срабатывания в конфигурации также критично.

Ограничения

Данный скрипт является статическим сканером конфигураций, предназначенным для быстрого обнаружения высокорисковых паттернов, и не является проверкой эксплуатации уязвимости.

  • Возможны ложные срабатывания, требующие ручной проверки с учётом реального контекста NGINX.
  • Многострочные директивы, аномалии при раскрытии include или динамически генерируемые конфигурации могут повлиять на результаты сканирования.
  • Отсутствие обнаружения рисков не означает абсолютной безопасности; всё равно следует обновиться до официальной исправленной версии.

Ссылки

  • depthfirst: https://depthfirst.com/research/nginx-rift-achieving-nginx-rce-via-an-18-year-old-vulnerability
  • NVD CVE-2026-42945: https://nvd.nist.gov/vuln/detail/CVE-2026-42945
  • F5 Advisory K000161019: https://my.f5.com/manage/s/article/K000161019
Скачать инструмент