
Защитный аудит рисков map regex в NGINX для CVE-2026-42533 со сканером конфигурации, заметками по Splunk/Defender и лабораторными доказательствами.
Защитная исследовательская заметка о CVE-2026-42533 — переполнении буфера в куче при обработке запросов NGINX, связанном с директивами map с regex-захватами и определёнными шаблонами вычисления переменных.
Простыми словами: NGINX — это программное обеспечение веб-сервера и обратного прокси. Оно часто располагается перед веб-сайтами и API, принимает веб-запросы и решает, куда их направить. Правило map — это функция конфигурации NGINX, которая означает: «если значение запроса похоже на X, установи эту переменную в Y». Regex-захваты — это фрагменты текста, извлекаемые из совпадения с шаблоном.
Этот CVE важен, потому что некоторые старые версии NGINX могут некорректно обрабатывать определённый тип комбинации map и переменных. Это не означает, что каждый сервер NGINX уязвим. Имеет значение версия, но и активная конфигурация тоже важна.
Этот проект намеренно безопасен: он не содержит эксплойт-трафика, краш-пейлоадов или зондирования продакшн-систем. Цель — показать, как я бы проводил триаж подверженности, объяснить риск и дать защитникам воспроизводимый путь валидации.

NGINX относит эту проблему к крупным бюллетеням безопасности: уязвимые версии — 0.9.6-1.31.2, исправленные версии — 1.30.4+ и 1.31.3+. В журнале изменений NGINX описывается переполнение буфера в куче в воркер-процессе, когда директива map использует regex-сопоставление и переменная map включается в строковое выражение после захвата, затрагиваемого этой map.
NVD содержит описание F5: неаутентифицированный злоумышленник может вызвать проблему с помощью специально сформированных HTTP-запросов, но только при совпадении условий конфигурации и среды выполнения. Ожидаемое прямое воздействие — перезапуск воркера NGINX и отказ в обслуживании, с возможным выполнением кода, если ASLR отключён или обойдён.
Защитникам следует ответить на четыре вопроса, прежде чем считать развёртывание NGINX подверженным уязвимости. Проще говоря: сначала подтвердите версию, затем подтвердите, действительно ли присутствует рискованный шаблон конфигурации.
map с regex-записями?no buffer space in script copy?Если эти слова незнакомы: воркер — это процесс NGINX, обрабатывающий запросы. Цикл падений или сигнал перезапуска означает, что процесс, возможно, завершается с ошибкой и запускается снова. Бэкпорт дистрибутива означает, что вендоры Linux иногда патчат версию, которая выглядит старой, не меняя номер версии на новейший апстрим-релиз.
flowchart LR
advisory["Read advisory and changelog"] --> version["Check NGINX version"]
version --> config["Review active config"]
config --> scanner["Run safe map-pattern scanner"]
scanner --> validate["Validate fixed build or vendor patch"]
validate --> hunt["Hunt restart and diagnostic signals"]
hunt --> remediate["Patch, reload, and document"]
scripts/audit_nginx_map_risk.py
Защитный эвристический сканер конфигурационных файлов NGINX. Он ищет regex-блоки map, захваты и последующие строковые выражения, ссылающиеся на захваты и результаты map. Он не доказывает, что сервер эксплуатируем. Он находит конфигурации, заслуживающие проверки человеком.
scripts/render_demo_gif.py
Пересобирает небольшой демонстрационный GIF из README на основе реального вывода сканера.
detections/splunk_nginx_cve_2026_42533.spl
Поисковые запросы Splunk для инвентаризации версий, симптомов сбоев/перезапусков и диагностических строк после установки патча.
detections/defender_hunting_notes.kql
Заметки по охоте Microsoft Defender для Linux-хостов, где собираются журналы NGINX и активность процессов.
detections/sigma_nginx_worker_restart_symptoms.yml
Правило охоты Sigma для симптомов перезапуска или падения воркеров NGINX. Это зацепка для проверки, а не доказательство эксплуатации.
samples/nginx_map_patterns.conf
Безопасные схематичные примеры конфигурации для объяснения шаблона риска. Это не эксплойт-пейлоады.
SECURITY.md
Заметка о границах репозитория. Это сохраняет проект явно защитным и безопасным для проверки.
Текущая локальная валидация хранится в evidence/. Быстрый запуск для Windows выполняет сканер на приложенном примере конфигурации и сохраняет протокол. Валидация NGINX в Windows загружает официальную исправленную сборку NGINX, проверяет лабораторную конфигурацию с помощью nginx -t и запускает сканер. Валидация на Kali VM запускает тот же сканер внутри одноразовой гостевой VMware-машины Kali. Это подтверждает, что репозиторий исполняем и проверяем как в Windows, так и в Linux, оставаясь в защитных рамках.
powershell -ExecutionPolicy Bypass -File .\lab\windows-quickstart.ps1
powershell -ExecutionPolicy Bypass -File .\lab\windows-nginx-validation.ps1
python .\scripts\self_check.py
map.1.30.4+ или 1.31.3+ либо до соответствующего исправленного релиза NGINX Plus.no buffer space in script copy.lab/windows-quickstart.ps1
Удобный для Windows инструмент сбора доказательств, который выполняет сканер и сохраняет вывод в evidence/.
lab/windows-nginx-validation.ps1
Загружает официальную исправленную сборку NGINX для Windows, проверяет локальную лабораторную конфигурацию с помощью nginx -t, запускает сканер и сохраняет доказательства.
lab/vmware-lab-notes.md
Необязательный более полный лабораторный сценарий для одноразовой Linux-виртуальной машины, если позже потребуется прохождение на основе скриншотов.