К основному содержимому

NGINX Rift (CVE-2026-42945): проверка и обновление

Nginx · 27.10.2026 · 2 мин чтения

Что это

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

Время запуска всех процессов должно быть свежим.

Статья помогла?
← Назад в базу знаний Задать вопрос поддержке