До основного вмісту

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

Час запуску всіх процесів має бути свіжим.

Чи була стаття корисною?
← Назад до бази знань Поставити питання підтримці