
Это инструмент статического обнаружения CVE-2026-42945, предназначенный для защиты и внутреннего аудита, проверяющий конфигурации NGINX ngx_http_rewrite_module на наличие опасных комбинаций rewrite.
Это статический инструмент проверки CVE-2026-42945, предназначенный для защиты и внутреннего аудита. Он проверяет, есть ли в конфигурациях NGINX, связанных с ngx_http_rewrite_module, высокорисковые комбинации rewrite.
Этот проект не предоставляет эксплойты, не отправляет вредоносные HTTP-запросы и не пытается вызвать сбой или удаленное выполнение кода. Он только читает локальные конфигурационные файлы NGINX и помогает команде безопасности решить, необходимо ли обновление или изменение конфигурации.
CVE-2026-42945 — это уязвимость переполнения кучи в ngx_http_rewrite_module NGINX Open Source и NGINX Plus.
В публичных объявлениях описаны следующие потенциально опасные сценарии:
rewrite;rewrite, if или set;$1$2?.Исправленные версии NGINX Open Source включают 1.30.1, 1.31.0 и более новые. Для NGINX Plus ориентируйтесь на версию исправления из официального уведомления.
Ссылки:
Требуется только Python 3, сторонних зависимостей нет.
python3 --version
Рекомендуется сначала экспортировать полную примененную конфигурацию NGINX:
nginx -T > nginx-rendered.conf
python3 cve_2026_42945_checker.py nginx-rendered.conf
Также можно сканировать каталог конфигурации напрямую:
python3 cve_2026_42945_checker.py /etc/nginx
Вывод в JSON:
python3 cve_2026_42945_checker.py --json nginx-rendered.conf
Если экспорт конфигурации не содержит информацию о версии NGINX, можно вручную указать версию для вспомогательной оценки:
python3 cve_2026_42945_checker.py --json --nginx-version 1.30.0 nginx-rendered.conf
Вывод в SARIF для импорта в GitHub code scanning или внутренние платформы безопасности:
python3 cve_2026_42945_checker.py --sarif nginx-rendered.conf > cve-2026-42945.sarif
0: не обнаружено высокорисковых конфигураций;1: обнаружена как минимум одна высокорисковая конфигурация;2: ошибка чтения входного файла или пути.Ключевые поля результата:
versions: версия NGINX и результат оценки, полученные из конфигурации или параметров;findings: местоположение, причина и доказательства выявленных рискованных конфигураций;summary: количество просканированных файлов, количество находок и максимальный уровень риска.Пример результата указывает на такое доказательство:
rewrite ... ?$1; -> set ... $1;
Это означает, что данная конфигурация соответствует условиям риска, описанным в публичном объявлении, и требует приоритетной проверки.
Сначала обновите NGINX до исправленной версии:
1.30.1, 1.31.0 или новее;Также рекомендуется проверить правила rewrite:
$1, $2;nginx -T.Этот инструмент является статическим анализатором конфигураций, а не полноценным верификатором уязвимостей. Он может не охватывать:
Используйте его как вспомогательное средство для внутреннего аудита и проверки конфигураций, а не как единственный источник оценки уязвимости.
Запуск тестов:
python -m pytest
В репозитории уже есть рабочий процесс GitHub Actions, который автоматически запускает тесты при push и pull request.