F5 выпустила внеплановые патчи для критических уязвимостей NGINX

Коротко о главном

14 октября 2026 года F5 выпустила внеплановое обновление безопасности для NGINX. Оно закрывает пять уязвимостей, из которых три критические с оценкой CVSS v4.0 9.2: CVE-2026-15176, CVE-2026-93479 и CVE-2026-97205.

Уязвимости затрагивают NGINX Open Source и NGINX Plus, а также связанные продукты: NGINX Ingress Controller, NGINX Gateway Fabric, NGINX Instance Manager, F5 WAF for NGINX и другие. Эксплуатация возможна удалённо без аутентификации, но требует конкретных конфигураций не все установки NGINX уязвимы.

Исправленные версии: NGINX Open Source 1.30.6 (stable) и 1.31.7 (mainline). Для NGINX Plus — 37.0.5.1 и 37.1.0.1. Для Kubernetes-продуктов NGINX Ingress Controller 5.7.0, NGINX Gateway Fabric 2.8.0.

Публичного подтверждения эксплуатации в реальных атаках на момент публикации не было. Однако F5 традиционно привлекательна для хакеров и государственных групп, а CISA уже включала восемь уязвимостей F5 в каталог известных эксплуатируемых уязвимостей с 2021 года. Поэтому обновление стоит установить в приоритетном порядке.

Какие уязвимости закрыты

Всего F5 исправила пять уязвимостей. Три из них критические, связанные с повреждением памяти. Ещё две высокого и среднего уровня, связанные с HTTP/3 и TLS.

Три критические уязвимости с CVSS 9.2

CVEТипУязвимая конфигурация
CVE-2026-15176Heap-based buffer overflow в ngx_http_core_modulelocation с директивой alias, rewrite, изменяющим URI, и чтением $request_filename (в return, set, if, add_header или log_format)
CVE-2026-93479Heap-based buffer overflow при вычислении строковых выраженийmap с regex-совпадениями, чьи capture-переменные используются в root или log_format до вывода результата map; либо non-cacheable переменная в строковом выражении
CVE-2026-97205Use-after-free в ngx_http_core_moduleАсинхронный файловый ввод-вывод (aio) вместе с SSI-страницами, содержащими include virtual

Что может атакующий: удалённо и без аутентификации вызвать перезапуск worker-процесса (DoS). Если ASLR отключён или атакующий может его обойти, возможен удалённый код. F5 описывает это как условное выполнение кода, а не безусловное для эксплуатации нужны дополнительные условия, которые не всегда подконтрольны атакующему.

Важно: CVE-2026-15176 присутствует в NGINX с 2005 года то есть в каждом релизе почти два десятилетия. CVE-2026-97205 затрагивает версии с 0.8.11.

Две дополнительные уязвимости

CVE-2026-95101 — HTTP/3 request-body injection с CVSS 6.9. Позволяет HTTP/3-клиенту добавить лишние байты в запрос, которые NGINX передаёт бэкенду. Затрагивает конфигурации с HTTP/3 и буферизацией прокси-запросов.

CVE-2026-97629 — TLS session forgery с CVSS 8.3. При использовании shared TLS session cache с автоматической ротацией ticket-ключей атакующий может подделать TLS-сессию и обойти проверку клиентских сертификатов. F5 называет подделку недетерминированной и вне контроля атакующего. Затронуты версии начиная с 1.23.2.

Какие версии затронуты и что установить

NGINX Open Source

CVEУязвимые версииИсправлено в
CVE-2026-151760.1.29 – 1.31.61.30.6, 1.31.7
CVE-2026-934791.30.0 – 1.30.5; 1.31.2 – 1.31.61.30.6, 1.31.7
CVE-2026-972051.30.0 – 1.30.5; 1.31.0 – 1.31.61.30.6, 1.31.7

NGINX Plus

ВеткаУязвимые версииИсправлено в
R3737.0.0 – 37.0.437.0.5.1, 37.1.0.1
R33–R36R33 – R36Исправлений для этих ветвей нет — требуется переход на R37

Kubernetes-продукты и связанные компоненты

ПродуктИсправленная версия
NGINX Ingress Controller5.7.0
NGINX Gateway Fabric2.8.0
NGINX Instance Manager2.24.0
F5 WAF for NGINX5.14.2 или 5.16.0
F5 DoS for NGINX4.11.0

Для Kubernetes-продуктов также закрыты отдельные уязвимости: CVE-2026-94197 (Ingress Controller, обход ExternalAuth), CVE-2026-91184 и CVE-2026-96615 (Gateway Fabric, раскрытие информации).

Как проверить, уязвима ли ваша установка

Шаг 1. Проверьте версию NGINX.

Выполните в терминале:

nginx -v

Или, если NGINX запущен как сервис, посмотрите версию через nginx -V — там же будут видны скомпилированные модули.

Шаг 2. Проверьте конфигурацию на уязвимые директивы.

Выполните поиск по конфигам:

grep -R "alias" /etc/nginx/

grep -R "request_filename" /etc/nginx/

grep -R "map" /etc/nginx/

grep -R "aio" /etc/nginx/

grep -R "ssi" /etc/nginx/

grep -R "ssl_session_cache" /etc/nginx/

grep -R "http3" /etc/nginx/

Шаг 3. Оцените, совпадают ли условия. Наличие директивы само по себе не означает уязвимость. Важна конкретная комбинация:

  • alias + rewrite + $request_filename — для CVE-2026-15176.
  • regex map + capture в root/log_format — для CVE-2026-93479.
  • aio on + SSI include virtual — для CVE-2026-97205.
  • shared TLS session cache с автоматической ротацией — для CVE-2026-97629.
  • HTTP/3 + прокси-буферизация — для CVE-2026-95101.

Если хотя бы одно условие выполняется, обновление приоритетно.

Как обновить

NGINX Open Source из репозитория дистрибутива

Для Debian и Ubuntu:

sudo apt update

sudo apt install --only-upgrade nginx

Для RHEL и производных:

sudo dnf update nginx

После обновления проверьте версию: nginx -v. Должна быть 1.30.6 или 1.31.7.

Важно: дистрибутивы не всегда оперативно публикуют новые версии. Debian уже принял nginx 1.30.4-8 с патчами для CVE-2026-15176, CVE-2026-93479, CVE-2026-95101 и CVE-2026-97205. Если в вашем дистрибутиве версия ниже, проверьте наличие патчей безопасности или соберите NGINX из исходников.

NGINX Open Source из исходников

  1. Скачайте архив nginx-1.30.6 или nginx-1.31.7 с nginx.org.
  2. Соберите с теми же параметрами, что использовались ранее (посмотрите nginx -V).
  3. Установите и перезапустите службу.

NGINX Plus

Обновитесь до 37.0.5.1 или 37.1.0.1 согласно инструкции F5 для вашей ветки. Для веток R33–R36 исправлений нет — потребуется переход на R37.

Kubernetes-продукты

  • NGINX Ingress Controller — обновите до 5.7.0.
  • NGINX Gateway Fabric — обновитесь до 2.8.0.

После обновления проверьте, что поды перезапустились и работают с новой версией.

Временные меры, если обновление невозможно

F5 опубликовала обходные пути для каждой критической уязвимости. Они снижают риск, но не устраняют проблему.

CVE-2026-15176: не используйте директиву alias в location вместе с rewrite и $request_filename. Если alias необходим уберите чтение $request_filename из return, set, if, add_header и log_format.

CVE-2026-93479: используйте именованные capture-группы и ограничьте их использование блоком с regex-совпадением. Не ссылайтесь на capture-переменные map в root или log_format до вывода результата map.

CVE-2026-97205: отключите асинхронный файловый ввод-вывод (aio off) или не отдавайте SSI-страницы с include virtual.

CVE-2026-97629: не используйте автоматическую ротацию ticket-ключей в shared session cache загружайте ключи из файла.

CVE-2026-95101: ограничьте или отключите HTTP/3, если он не нужен.

Важно: обходные пути меняют поведение NGINX. Тестируйте их в нерабочей среде перед применением в production.

Насколько это опасно на практике

Плюсы:

  • Публичного подтверждения эксплуатации на момент публикации нет.
  • Все критические уязвимости требуют конкретных конфигураций, а не срабатывают на любой установке NGINX.
  • Для выполнения кода нужен отключённый или обойдённый ASLR.

Минусы:

  • CVE-2026-15176 существует с 2005 года почти два десятилетия.
  • NGINX один из самых распространённых веб-серверов и reverse proxy в интернете.
  • F5 частая цель хакеров и государственных групп. CISA с 2021 года включила восемь уязвимостей F5 в каталог известных эксплуатируемых.
  • Даже без RCE DoS через перезапуск worker-процессов может нарушить доступность сервисов.

Вывод: если NGINX у вас стоит на периметре или обслуживает критичные сервисы, обновление стоит установить в приоритетном порядке. Если NGINX используется во внутренней сети с нестандартной конфигурацией риск ниже, но обновление всё равно рекомендуется.

Часто задаваемые вопросы

Все ли установки NGINX уязвимы?

Нет. Критические уязвимости требуют конкретных конфигураций: alias с rewrite и $request_filename, regex map с capture-переменными, aio с SSI. Если этих директив нет, эксплуатация критических CVE невозможна.

Нужно ли обновляться, если у меня нестандартная конфигурация?

Да, но приоритет ниже. Даже если ваша конфигурация не совпадает с уязвимой, обновление закрывает другие уязвимости и снижает риск будущих проблем.

CVE-2026-15176 действительно существует с 2005 года?

Да. Уязвимость присутствует в NGINX начиная с версии 0.1.29. Это не значит, что её эксплуатировали все эти годы, но код был уязвим.

Можно ли выполнить код без обхода ASLR?

F5 описывает выполнение кода как условное. Для RCE нужен отключённый ASLR или возможность его обойти. Без этого эксплуатация приводит к перезапуску worker-процесса, то есть к DoS.

Что делать, если я на NGINX Plus R33–R36?

Для этих ветвей исправлений нет. F5 рекомендует переход на R37 (37.0.5.1 или 37.1.0.1).

Помогут ли обходные пути полностью?

Нет. Обходные пути снижают риск, но не устраняют уязвимость. Обновление — единственное полное решение.

Затронуты ли облачные версии NGINX?

В advisory F5 перечислены продукты NGINX Plus, Open Source, Ingress Controller, Gateway Fabric, Instance Manager и другие. Если вы используете управляемый сервис на базе NGINX, проверьте, обновил ли провайдер версию.

Где оригинальные advisory F5?

В центре поддержки F5: индексный документ K000163408 (Out-of-band Security Notification, October 14, 2026) и отдельные статьи по каждому CVE: K000162416, K000162607, K000162608, K000162613, K000162606.

Что в итоге

F5 выпустила внеплановые патчи для NGINX, закрывающие пять уязвимостей, включая три критические с CVSS 9.2. Уязвимости требуют конкретных конфигураций, но CVE-2026-15176 существует с 2005 года, а NGINX широко используется на периметре. Исправленные версии: 1.30.6 и 1.31.7 для Open Source, 37.0.5.1 и 37.1.0.1 для Plus, 5.7.0 для Ingress Controller и 2.8.0 для Gateway Fabric.

Если обновиться сразу невозможно, используйте обходные пути F5, но помните: они не заменяют патч. Проверьте версию, проверьте конфигурацию на уязвимые директивы и обновитесь в приоритетном порядке, если NGINX обслуживает критичные сервисы.

Читайте также на блоге andko.ru

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Популярные
Новые Старые

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
Menu