Що це
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Час запуску всіх процесів має бути свіжим.