Уязвимость в NGINX позволяет вызвать сбой worker‑процесса и потенциально выполнить код
В NGINX Open Source и NGINX Plus обнаружена уязвимость CVE‑2026‑42945, также известная как NGINX Rift. Она затрагивает модуль ngx_http_rewrite_module и связана с переполнением буфера в куче при обработке определенных правил rewrite.
Уязвимость может быть использована удаленным неаутентифицированным злоумышленником с помощью специально сформированного HTTP‑запроса. В результате возможен сбой worker‑процесса NGINX и его перезапуск. В системах с отключенной ASLR также возможно выполнение кода.
- Уязвимость удаленная и не требует аутентификации.
- Для эксплуатации злоумышленнику нужен сетевой доступ к HTTP‑сервису на базе NGINX и наличие уязвимой конфигурации rewrite.
- Проблема возникает, когда директива rewrite использует безымянные PCRE‑группы, например $1 или $2, содержит знак вопроса (?) в строке замены и после нее в той же области конфигурации следует еще одна директива rewrite, if или set.
- В таком сценарии NGINX некорректно рассчитывает размер буфера при обработке URI, а затем записывает в него больше данных, чем было выделено. Это приводит к переполнению буфера в куче worker‑процесса.
Затронуты:
- NGINX Open Source 0.6.27–1.30.0;
- NGINX Plus R32—R36;
- продукты и компоненты, использующие уязвимую версию NGINX в составе решения, включая отдельные версии NGINX Ingress Controller, NGINX Gateway Fabric, NGINX App Protect WAF/DoS и F5 WAF for NGINX.
Уязвимость проявляется не на каждой установке NGINX, а только при наличии уязвимого шаблона в конфигурации rewrite.
Как можно скорее обновите NGINX до исправленной версии:
- NGINX Open Source 1.30.1 или 1.31.0.
- Для NGINX Plus — до исправленного релиза своей ветки.
Важно: в Linux‑дистрибутивах исправление может быть перенесено в старую версию пакета, поэтому номер установленного пакета NGINX может отличаться от номера версии в основной ветке проекта. Проверяйте статус по бюллетеню вашего дистрибутива.
Если обновить NGINX немедленно нельзя, проверьте конфигурацию на уязвимый шаблон rewrite: безымянные группы $1, $2 в сочетании со строкой замены, содержащей ?, после которой следует rewrite, if или set. Временная мера — заменить безымянные группы на именованные и перепроверить конфигурацию перед перезагрузкой NGINX.
BI.ZONE EASM может выявить NGINX на внешнем периметре IT‑инфраструктуры и определить, какие из установок могут быть уязвимы.
Платформа помогает:
- найти внешне доступные HTTP‑ и HTTPS‑сервисы на базе NGINX;
- определить версии NGINX на периметре.
Это позволяет быстро оценить, какие доступные через интернет сервисы могут попасть в зону риска, и сфокусировать исправление на наиболее критичных участках периметра.