Исследователи в области кибербезопасности раскрыли несколько уязвимостей в NGINX Plus и NGINX Open Source, включая критическую ошибку, которая оставалась незамеченной почти 18 лет.
Наиболее опасная проблема получила идентификатор CVE-2026-42945 и оценку CVSS 9.2. Уязвимость обнаружили специалисты depthfirst. Ошибка представляет собой heap buffer overflow в модуле ngx_http_rewrite_module и получила название NGINX Rift. Она позволяет удалённому атакующему выполнить код или вызвать отказ в обслуживании при помощи специально сформированных HTTP-запросов.
По данным F5, проблема возникает при использовании директивы rewrite вместе с rewrite, if или set, если применяются безымянные PCRE-захваты вроде $1 или $2, а строка замены содержит символ вопроса ?.
Атаку можно провести без аутентификации. В некоторых случаях уязвимость приводит к перезапуску worker-процесса NGINX. Если на системе отключён ASLR, возможна удалённая эксплуатация с выполнением кода.
Исследователи отметили, что переполнение памяти можно стабильно вызывать через специально подготовленный URI. Записываемые за пределы выделенной области данные контролируются содержимым запроса, что делает повреждение памяти предсказуемым. Повторные запросы также позволяют удерживать worker-процессы в состоянии постоянного падения.
Исправления выпущены для следующих версий:
NGINX Plus R32-R36, патчи доступны в R32 P6 и R36 P4
NGINX Open Source 1.0.0-1.30.0, исправления добавлены в 1.30.1 и 1.31.0
NGINX Instance Manager 2.16.0-2.21.1
F5 WAF for NGINX 5.9.0-5.12.1
NGINX App Protect WAF 4.9.0-4.16.0 и 5.1.0-5.8.0
F5 DoS for NGINX 4.8.0
NGINX App Protect DoS 4.3.0-4.7.0
NGINX Gateway Fabric 1.3.0-1.6.2 и 2.0.0-2.5.1
NGINX Ingress Controller 3.5.0-3.7.2 и 4.0.0-4.0.1, а также 5.0.0-5.4.1
Для ветки NGINX Open Source 0.6.27-0.9.7 исправления выпускать не планируется.
Помимо CVE-2026-42945 разработчики закрыли ещё три уязвимости:
CVE-2026-42946 с оценкой CVSS 8.3 связана с чрезмерным выделением памяти в модулях ngx_http_scgi_module и ngx_http_uwsgi_module. При определённых условиях атакующий может читать память worker-процесса или вызывать его перезапуск.
CVE-2026-40701 с оценкой 6.3 представляет собой use-after-free в ngx_http_ssl_module. Проблема затрагивает конфигурации с включёнными ssl_verify_client и ssl_ocsp.
CVE-2026-42934 с оценкой 6.3 затрагивает ngx_http_charset_module и может привести к утечке содержимого памяти или перезапуску worker-процесса при использовании charset, source_charset, charset_map и proxy_pass с отключённой буферизацией.
Пользователям рекомендуется обновить NGINX до последних версий. Если установка патчей невозможна, для CVE-2026-42945 советуют заменить безымянные захваты в rewrite-директивах на именованные.
Источник: HN