
14 октября 2026 года вышли nginx 1.30.6 и 1.31.7. Они закрывают пять уязвимостей. Три из них могут привести к запуску чужого кода на сервере. Одна ошибка жила в nginx с 2005 года.
Уязвимости срабатывают не на всех серверах, а только при определённых настройках. Разбираться в настройках долго, а обновиться можно за 5 минут. Поэтому наш совет простой: обновите nginx. Ниже инструкция.
Что такое nginx
nginx это администратор на ресепшене гостиницы. Каждый посетитель сайта сначала попадает к нему. Администратор решает, куда его отправить: выдать готовую страницу, передать запрос PHP или Node.js, отдать картинку.
nginx стоит на огромном числе серверов в мире. Часто его ставят, даже не зная об этом: он идёт в комплекте с панелями управления вроде ISPmanager, FastPanel, HestiaCP, aaPanel. Если у вас есть сайт на VPS, очень вероятно, что перед ним стоит nginx.
Если с администратором что-то не так, страдает вся гостиница.
Что случилось
В nginx нашли пять ошибок. Каждая срабатывает только при определённой настройке. Это как замок, который ломается, только если дверь открывают определённым ключом и при этом держат ручку нажатой.
Уязвимость | Что может случиться | Когда опасно | Оценка |
|---|---|---|---|
CVE-2026-15176 | Сбой, возможен запуск чужого кода | При определённом сочетании директив. Ошибка есть во всех версиях с 2005 года | 9.2 |
CVE-2026-97205 | Сбой, возможен запуск чужого кода | Включено | 9.2 |
CVE-2026-93479 | Сбой, возможен запуск чужого кода | В | 9.2 |
CVE-2026-97629 | Может пропустить проверку клиентского сертификата | Общий кэш TLS-сессий без явно заданного ключа | 8.3 |
CVE-2026-95101 | В запрос к сайту могут попасть лишние данные | Включён HTTP/3 | 6.9 |
Три первые ошибки работают с памятью. Представьте склад, где кладовщик путает полки и кладёт коробку туда, где уже лежит другая. Иногда он просто роняет всё на пол, и nginx падает. А иногда злоумышленник может подсунуть свою «коробку» с кодом.
Ошибка с сертификатами опасна для тех, кто пускает пользователей по специальному сертификату вместо пароля. В некоторых случаях nginx мог пропустить человека без проверки.
Кого это касается
Почти всех, у кого стоит nginx версии ниже 1.30.6 или 1.31.7. Одна из ошибок есть во всех версиях начиная с 0.1.29. Это 2005 год.
Что важно знать:
- Панели управления. ISPmanager, FastPanel, HestiaCP, aaPanel и другие ставят nginx сами. Его тоже нужно обновить, даже если вы его не настраивали.
- Docker. Если сайт работает в контейнере на образе
nginx, обновление сервера контейнер не затронет. Образ нужно пересобрать. - Ingress в Kubernetes. Если вы используете ingress-nginx, проверьте, что его версия собрана на исправленном nginx.
Атак через эти уязвимости пока не зафиксировано. Но исправления вышли две недели назад, и подробности уже опубликованы. Обычно после этого атаки не заставляют себя ждать.
Узнайте версию
nginx -v
Ответ будет вида nginx version: nginx/1.30.4. Безопасные версии: 1.30.6 и выше на стабильной ветке или 1.31.7 и выше на основной.
Если nginx установлен из пакетов Ubuntu, Debian, AlmaLinux. Системы часто встраивают исправление в старую версию. Номер не меняется, а дыра закрыта. Проверить можно по журналу изменений пакета.
Для Ubuntu и Debian:
apt changelog nginx 2>/dev/null | grep -E 'CVE-2026-(15176|97205|93479)'
Для AlmaLinux и Rocky Linux:
rpm -q --changelog nginx | grep -E 'CVE-2026-(15176|97205|93479)'
Если команда вывела строки с номерами CVE, исправление установлено. Если ответ пустой, переходите к шагу 2.
Обновите nginx
Ubuntu и Debian:
sudo apt update
sudo apt install --only-upgrade nginx
AlmaLinux и Rocky Linux:
sudo dnf upgrade nginx
Панели управления. Обновите систему или nginx через раздел обновлений в панели. Панель может держать свою сборку nginx, поэтому после обновления проверьте версию ещё раз.
Docker. Поменяйте версию в Dockerfile или docker-compose.yml, например на nginx:1.30.6, и пересоберите:
docker compose build --pull
docker compose up -dПроверьте и перезапустите
Сначала убедитесь, что в настройках нет ошибок:
sudo nginx -t
Если увидели syntax is ok и test is successful, перезапустите nginx:
sudo systemctl restart nginx
Именно restart, а не reload. Команда reload перечитывает только настройки, а старая программа продолжает работать. Это как выдать администратору новую инструкцию, но оставить за стойкой того же человека. Сайты будут недоступны около секунды.
После перезапуска снова выполните nginx -v и откройте сайты в браузере.
Если обновиться прямо сейчас нельзя
Бывает, что nginx нельзя трогать до выходных. Тогда можно временно убрать настройки, при которых срабатывают уязвимости. Это не замена обновлению, а пластырь до визита к врачу.
Сначала посмотрите, какие настройки у вас есть:
sudo nginx -T 2>/dev/null | grep -nE '^\s*(aio|ssi|ssl_session_cache|ssl_session_ticket_key|http3|map)\b'
Дальше по найденному:
Нашли | Что сделать временно |
|---|---|
| Выключите |
| Используйте именованные группы и только внутри блока с совпадением |
| Уберите общий кэш или задайте ключ из файла через |
| Добавьте |
После изменений снова выполните sudo nginx -t и sudo systemctl reload nginx. Здесь reload подходит, потому что меняются только настройки.
Если не уверены, что делаете, лучше не трогайте настройки и обновите nginx при первой возможности. Неправильная правка может уронить все сайты на сервере.
Чек-лист
- Узнал версию nginx командой
nginx -v - Проверил журнал изменений пакета, если версия старая
- Обновил nginx через пакеты, панель или Docker
- Проверил настройки командой
nginx -t - Перезапустил nginx через
restart, а неreload - Убедился, что версия 1.30.6 или 1.31.7 и выше
- Проверил, что все сайты открываются
Не хотите разбираться сами?
nginx держит на себе все сайты сервера. Одна опечатка в настройках, и не открывается ни один. А если nginx стоит внутри панели или в Docker, непонятно, где именно его обновлять.
Для таких случаев у Zomro есть два варианта.
SOD: обновим nginx за вас
Наш системный администратор:
- найдёт, откуда установлен nginx: из пакетов, панели или Docker;
- обновит его до безопасной версии;
- проверит настройки на опасные сочетания директив;
- убедится, что все сайты работают после перезапуска.
Стоимость: €12.50 за каждые 15 минут работы.
Premium: быстрая помощь, когда она нужна
Если после обновления сайты не открываются, каждая минута стоит денег. По обычному техническому запросу ответ может занять до 10 часов. С Premium мы отвечаем за время от 5 до 30 минут.
Новые уязвимости появляются каждую неделю. С Premium вам не придётся разбираться с ними в одиночку.

