Что это
CVE-2026-42945, получившая имя NGINX Rift, — переполнение буфера в модуле ngx_http_rewrite_module. Ошибка пролежала в коде около восемнадцати лет.
Сам разработчик оценивает её как среднюю по опасности, и это важно понимать правильно: оценка отражает сложность использования, а не отсутствие риска. С момента публикации в мае 2026 года уязвимость применяется в реальных атаках, поэтому обновляться стоит независимо от метки серьёзности.
Кого касается
Затронуты сборки, где используется модуль rewrite — то есть практически все: директивы rewrite, return и if входят в стандартную поставку. Отдельно опасны конфигурации, где alias сочетается с rewrite, и где в регулярных выражениях используются безымянные группы захвата.
В каких версиях исправлено
| Ветка | Исправленная версия |
|---|---|
| Стабильная | 1.30.1 и новее |
| Основная | 1.31.0 и новее |
Если вы обновлялись после октября 2026 года, у вас, скорее всего, 1.30.6 или 1.31.7 — они содержат и это исправление, и более поздние.
Как проверить свою версию
nginx -v
nginx -V 2>&1 | tr ' ' '\n' | grep -E 'with-http_(v3|slice)'Вторая команда покажет, собран ли у вас HTTP/3 и модуль slice — они нужны для оценки других уязвимостей того же набора.
Версию можно увидеть и снаружи, если она не скрыта:
curl -sI https://ваш-сайт/ | grep -i '^server'Обновление на Ubuntu и Debian
sudo apt update
sudo apt install --only-upgrade nginx
nginx -t && sudo systemctl reload nginxКоманда nginx -t обязательна: она проверит конфигурацию до перезагрузки. Перезагрузка через reload не разрывает текущие соединения — простоя не будет.
Обновление на AlmaLinux и RHEL
sudo dnf update nginx
nginx -t && sudo systemctl reload nginxЕсли nginx ставился из официального репозитория nginx.org, убедитесь, что он включён — пакеты оттуда обновляются отдельно от системных.
Временные меры, если обновиться нельзя
Вендор советует заменить безымянные группы захвата в регулярных выражениях на именованные и не сочетать alias с rewrite. Пример безопасной записи:
location ~ ^/files/(?<path>.+)$ {
root /var/www/storage;
try_files /$path =404;
}Это сужает поверхность атаки, но не заменяет обновление.
Частые вопросы
Nginx работает как обратный прокси, я тоже уязвим?
Да, если используется модуль rewrite. Роль сервера значения не имеет.
Нужно ли перезапускать, или хватит reload?
reload достаточно: он запускает новые рабочие процессы с новым кодом и мягко завершает старые.
Как убедиться, что старые процессы завершились?
ps -eo lstart,cmd | grep 'nginx: worker' | headВремя запуска всех процессов должно быть свежим.