NGINX закрыл уязвимости, через которые можно выполнить код на сервере без пароля

17.10.2026 4 мин 11

14 октября вышли NGINX 1.30.6 (стабильная ветка) и 1.31.7 (основная) с исправлениями пяти уязвимостей. Три из них связаны с ошибками работы с памятью, и запустить их можно подготовленными HTTP-запросами без логина. В худшем случае это означает выполнение кода на сервере. F5, которая разрабатывает NGINX, оценила эти три на 9.2 из 10 (критично) по CVSS 4.0. Каждая срабатывает только при определённых настройках, так что сервер с NGINX не уязвим автоматически. По данным F5, публичных эксплойтов и атак пока нет.

Что исправили

Три серьёзные ошибки завязаны на директивы, которые часто встречаются в живых конфигах:

CVEКогда сервер уязвимОценка F5 (CVSS 4.0)
CVE-2026-15176В location есть alias вместе с rewrite, а $request_filename используется в set, return или формате лога9.2
CVE-2026-93479map сравнивает по регулярному выражению, а root или формат access-лога читает его безымянные группы ($1, $2) раньше переменной самого map9.2
CVE-2026-97205Включён асинхронный ввод-вывод (aio), и SSI-страницы используют include virtual9.2
CVE-2026-97629Задан ssl_session_cache shared:... без ssl_session_ticket_key, и NGINX сам меняет ключи сессионных билетов8.3
CVE-2026-95101Включён HTTP/3 вместе с proxy_request_buffering on6.9

В первых трёх случаях переполнение роняет рабочий процесс NGINX, и он перезапускается. Если слать такие запросы раз за разом, сервер будет падать снова и снова, так что как минимум это отказ в обслуживании. Выполнить код, по словам F5, можно на системах, где отключена рандомизация адресного пространства (ASLR) или атакующий умеет её обойти. Ошибка с alias сидит в коде с версии 0.1.29, вышедшей в 2005 году.

Ошибка с сессионными билетами другого рода. Один из ключей при ротации оставался неинициализированным, и, по оценке F5, атакующий мог подделать TLS-сессию и с её помощью обойти проверку клиентского сертификата. Это важно для серверов, которые пускают по сертификату: админок и внутренних сервисов.

Критично или средне?

Оценки выглядят противоречиво. На странице уязвимостей nginx.org все пять отмечены как «средние». В записях CVE от F5 три ошибки с памятью получили 9.2 по CVSS 4.0 и 8.1 (высокая) по CVSS 3.1. Разница возникает из-за условий. По вектору CVSS атаке не нужна учётная запись, но сложность у неё высокая, потому что она работает только на подходящем конфиге. Security Affairs 16 октября писал об одиннадцати исправленных проблемах. Это число шире самого NGINX: в тот же день F5 выпустила обновления и для смежных продуктов, в том числе модуля скриптов njs, Ingress Controller и Gateway Fabric.

Как проверить свой сервер

NGINX стоит перед множеством самостоятельно поднятых сервисов на арендованных серверах: панелями VPN и прокси, файлообменниками, небольшими сайтами. Если у вас такой есть, для начала хватит двух команд. nginx -v покажет версию, а nginx -T | grep -nE 'alias|request_filename|aio|ssi |ssl_session_cache|ssl_session_ticket|map ' найдёт директивы из таблицы во всём загруженном конфиге.

Одному номеру версии верить нельзя. Debian и Ubuntu держат старые версии NGINX и добавляют в них патчи безопасности, поэтому «1.22» или «1.26» на сервере ничего не говорит о том, есть ли там октябрьские исправления. На 17 октября трекер безопасности Debian всё ещё отмечал пакеты для bookworm и trixie как уязвимые. Смотрите трекер своего дистрибутива и обновляйтесь через apt update && apt upgrade, как только появится исправленный пакет. Если NGINX стоит из официальных пакетов nginx.org, исправленные версии 1.30.6 и 1.31.7.

Пока исправления нет, F5 советует поменять конфиг: убрать alias и $request_filename из уязвимых location, в map использовать именованные группы вместо $1 и $2, выключить aio или перестать отдавать SSI-страницы, а ключи билетов либо загружать из файла через ssl_session_ticket_key, либо выключить билеты совсем через ssl_session_tickets off. Остальная базовая гигиена сервера есть в нашей инструкции по настройке VPS.

nginxуязвимостькибербезопасностьf5открытый кодбезопасность

Читайте также