Уязвимость NGINX Rift (CVE-2026-42945)
Введение
В веб-сервере NGINX обнаружена критическая уязвимость CVE-2026-42945, получившая название NGINX Rift. Проблема существует в кодовой базе проекта с 2008 года и затрагивает rewrite-модуль ngx_http_rewrite_module.
Уязвимость позволяет удалённому неаутентифицированному злоумышленнику вызвать переполнение heap-буфера, что может привести к аварийному завершению worker-процессов или выполнению произвольного кода на сервере.
Что произошло
Проблема связана с обработкой rewrite-правил, использующих PCRE regex capture-группы ($1, $2 и т.д.) совместно с replacement-строками, содержащими символ ?.
При определённой комбинации rewrite-конфигурации и специально сформированного HTTP-запроса возникает ошибка вычисления размера памяти во внутреннем script engine NGINX, что приводит к heap buffer overflow в worker-процессе.
Исследователи отмечают, что уязвимость находилась в проекте около 18 лет и затрагивает практически все современные версии NGINX Open Source и NGINX Plus.
Особенности эксплуатации
Для эксплуатации злоумышленнику достаточно отправить специально сформированный HTTP-запрос к серверу с уязвимой rewrite-конфигурацией.
Уязвимыми считаются конфигурации вида:
rewrite ^/user/(.*)$ /profile.php?id=$1? last;
Особенно опасны rewrite-правила, использующие:
$1
$2
совместно с символом:
?
в replacement-строке.
При успешной эксплуатации возможно:
- аварийное завершение worker-процессов;
- циклический restart workers (DoS);
- повреждение heap-памяти;
- удалённое выполнение кода (RCE) при отключённом ASLR.
Также в сети уже появились публичные PoC-эксплойты и технические writeup-материалы по эксплуатации уязвимости.
Уязвимость исправлена в версиях NGINX 1.30.1 и 1.31.0.
Рекомендуемые действия:
- немедленно обновить NGINX до исправленной версии;
- проверить rewrite-правила на использование unnamed PCRE captures;
- заменить
$1,$2и аналогичные конструкции на named captures; - убедиться, что на сервере включён ASLR;
- мониторить crash/restart worker-процессов;
- ограничить публичный доступ к административным endpoint.
Дополнительно
По информации исследователей, проблема была обнаружена системой автоматизированного анализа безопасности компании depthfirst и раскрыта совместно с F5 в рамках coordinated disclosure.
В сообществе администраторов и security-специалистов уязвимость уже получила широкий резонанс из-за огромного количества интернет-сервисов, использующих NGINX в качестве reverse proxy, ingress controller или frontend-сервера.
