14 октября NGINX выпустил исправления для пяти уязвимостей. Они вошли в версии 1.30.6 стабильной ветки и 1.31.7 основной. Все пять проблем требуют определённой конфигурации сервера. Три связаны с ошибками памяти: они могут привести к аварийному завершению рабочего процесса, а при некоторых условиях — к выполнению кода. Ещё одна касается поддельных TLS-сессий, последняя — HTTP/3-запросов, передаваемых бэкенду.

NGINX оценил все уязвимости как средние. F5 присвоил трём ошибкам памяти оценку 9,2 по CVSS v4.0 и критический уровень, TLS-уязвимости — 8,3, а ошибке HTTP/3 — 6,9. По состоянию на 15 октября ни одна из пяти проблем не значилась в каталоге известных эксплуатируемых уязвимостей CISA; NGINX и F5 не сообщали об атаках. Одна из ошибок присутствовала во всех версиях NGINX начиная с мая 2005 года.
Ошибки памяти и конфигурационные ловушки
CVE-2026-15176 вызывает переполнение кучи в рабочем процессе: сервер может упасть, а в некоторых случаях возможен запуск кода. Уязвимость возникает в location с директивой alias, если rewrite меняет URI, а затем конфигурация обращается к переменной $request_filename. Это может происходить, например, в директивах return, set, if, add_header или в формате журнала доступа. Затронуты версии от 0.1.29 до 1.31.6. До обновления F5 советует убрать alias из такого location и не использовать там $request_filename.
При CVE-2026-93479 переполнение кучи также способно остановить worker или привести к выполнению кода. Уязвимая конфигурация содержит регулярное выражение в map, а захваченные значения используются директивами root или log_format раньше, чем выходная переменная самой карты. Затронуты версии 1.30.0–1.30.5 и 1.31.2–1.31.6. Временный обходной путь — именованные захваты, используемые только внутри блока с совпадением регулярного выражения.
Эта ошибка связана с обработкой строк, которую NGINX исправлял 15 июля из-за CVE-2026-42533 — переполнения кучи с оценкой F5 9,2. Июльский патч остановил выход за границу буфера, но данные могли попасть в зарезервированную область. Следующая правка учитывала получившуюся длину и позволяла строке перерасти буфер. По коммиту с исправлением, переполнение ограничивалось размером зарезервированной области при работе с путём document root и одним нулевым байтом при обработке журнала доступа. В июльском совете использовать именованные захваты исследователь Стэн Шоу усомнился: в июле он сказал The Hacker News, что такой приём оставляет более узкий путь к атаке, а «единственное полное исправление — обновление».
CVE-2026-97205 — ошибка use-after-free в сочетании AIO и SSI. Каждая незавершённая асинхронная операция увеличивает 8-битный счётчик без проверки переполнения. После 256 операций он обнуляется, и запрос может быть освобождён, хотя операции всё ещё обращаются к его памяти. Триггером служат SSI-страницы с командами include virtual, которые могут запускать включённые запросы параллельно. Уязвимы версии 0.8.11–1.31.6. F5 рекомендует отключить AIO либо не обслуживать SSI-страницы.
HTTP/3 и TLS-сессии
CVE-2026-95101 позволяет добавить лишние байты в проксируемый запрос или передать тело, превышающее client_max_body_size. Проблема возникает при HTTP/3 и включённой директиве proxy_request_buffering; по умолчанию она включена. Одно поле парсера использовалось для двух задач: учёта остатка неизвестного фрейма и подсчёта DATA-байтов тела запроса. Если неизвестный фрейм разбивался между двумя чтениями, остаток мог быть принят за данные тела и отправлен бэкенду, минуя проверку размера. Затронуты версии 1.25.0–1.31.6. Временная мера F5 — установить proxy_request_buffering off, хотя документация NGINX рекомендует буферизацию запросов, а при HTTP/3 она включена по умолчанию.
CVE-2026-97629 связана с билетами TLS, которые позволяют возобновить сессию без полного рукопожатия. Начиная с NGINX 1.23.2, выпущенной в октябре 2022 года, общий кэш сессий заставляет сервер самостоятельно генерировать и менять ключи билетов, если ключи не загружены из файла. У каждого worker было три копии слотов ключей, но при ротации обновлялись только два; третий сохранял прежнее содержимое памяти. Билет, указывающий на этот слот, мог проверяться и расшифровываться с неинициализированными данными ключа, «что позволяло подделать сессию», говорится в коммите с исправлением.
По оценке F5, подделка срабатывает «недетерминированным образом, неподконтрольным атакующему», но может позволить обойти проверку клиентского сертификата. Уязвимая настройка — ssl_session_cache shared:SSL:10m, приведённая в документации NGINX. Затронуты версии 1.23.2–1.31.6. F5 советует удалить директиву общего кэша либо загрузить ключи из файла с помощью ssl_session_ticket_key. Серверы с ssl_session_tickets off не подвержены этой проблеме. В феврале 2025 года NGINX уже исправлял похожую по последствиям ошибку повторного использования сессии — CVE-2025-23419.
Обновление и проверка сервера
Оптимальный вариант — перейти на NGINX 1.30.6 или 1.31.7. Стабильный релиз содержит только исправления. NGINX выпускает патчи лишь для этих двух веток, поэтому более старые версии, включая 1.28, остаются в диапазонах затронутых выпусков. Пакет Linux-дистрибутива считается исправленным только в том случае, если сопровождающие перенесли в него нужные патчи.
Пользователям NGINX Plus, F5 Ingress Controller, Gateway Fabric, Instance Manager и WAF следует свериться с рекомендациями F5 по конкретным сборкам. На 15 октября для нескольких продуктов в этих рекомендациях ещё не было указано исправленной сборки. Если обновление пока невозможно, применяют временные меры F5 для соответствующей конфигурации.
Текущую конфигурацию можно вывести командой nginx -T. В результате стоит проверить, соседствуют ли alias и rewrite; используется ли регулярный map в root или log_format; встречаются ли вместе aio и ssi; есть ли в строках listen параметр quic; настроен ли ssl_session_cache shared без ssl_session_ticket_key.
Это восьмой выпуск NGINX с исправлениями безопасности в 2026 году. В мае NGINX закрыл переполнение в rewrite-модуле, CVE-2026-42945; по данным VulnCheck, его начали эксплуатировать в течение нескольких дней после раскрытия. Уязвимости текущего выпуска обнаружили Мэтт Суич из Tolmo и Матеуш Гирблински — CVE-2026-93479; Хансол Ли из GOTROOT — CVE-2026-95101; PhiNode Labs — CVE-2026-97629; Cyberlanc3r — CVE-2026-97205. Ошибку CVE-2026-15176 самостоятельно нашла F5.
В тот же день вышел njs 1.0.2. В модуле JavaScript исправлены две уязвимости средней степени серьёзности, связанные с обработкой XML: CVE-2026-101025 и CVE-2026-101019.

Изображение носит иллюстративный характер
NGINX оценил все уязвимости как средние. F5 присвоил трём ошибкам памяти оценку 9,2 по CVSS v4.0 и критический уровень, TLS-уязвимости — 8,3, а ошибке HTTP/3 — 6,9. По состоянию на 15 октября ни одна из пяти проблем не значилась в каталоге известных эксплуатируемых уязвимостей CISA; NGINX и F5 не сообщали об атаках. Одна из ошибок присутствовала во всех версиях NGINX начиная с мая 2005 года.
Ошибки памяти и конфигурационные ловушки
CVE-2026-15176 вызывает переполнение кучи в рабочем процессе: сервер может упасть, а в некоторых случаях возможен запуск кода. Уязвимость возникает в location с директивой alias, если rewrite меняет URI, а затем конфигурация обращается к переменной $request_filename. Это может происходить, например, в директивах return, set, if, add_header или в формате журнала доступа. Затронуты версии от 0.1.29 до 1.31.6. До обновления F5 советует убрать alias из такого location и не использовать там $request_filename.
При CVE-2026-93479 переполнение кучи также способно остановить worker или привести к выполнению кода. Уязвимая конфигурация содержит регулярное выражение в map, а захваченные значения используются директивами root или log_format раньше, чем выходная переменная самой карты. Затронуты версии 1.30.0–1.30.5 и 1.31.2–1.31.6. Временный обходной путь — именованные захваты, используемые только внутри блока с совпадением регулярного выражения.
Эта ошибка связана с обработкой строк, которую NGINX исправлял 15 июля из-за CVE-2026-42533 — переполнения кучи с оценкой F5 9,2. Июльский патч остановил выход за границу буфера, но данные могли попасть в зарезервированную область. Следующая правка учитывала получившуюся длину и позволяла строке перерасти буфер. По коммиту с исправлением, переполнение ограничивалось размером зарезервированной области при работе с путём document root и одним нулевым байтом при обработке журнала доступа. В июльском совете использовать именованные захваты исследователь Стэн Шоу усомнился: в июле он сказал The Hacker News, что такой приём оставляет более узкий путь к атаке, а «единственное полное исправление — обновление».
CVE-2026-97205 — ошибка use-after-free в сочетании AIO и SSI. Каждая незавершённая асинхронная операция увеличивает 8-битный счётчик без проверки переполнения. После 256 операций он обнуляется, и запрос может быть освобождён, хотя операции всё ещё обращаются к его памяти. Триггером служат SSI-страницы с командами include virtual, которые могут запускать включённые запросы параллельно. Уязвимы версии 0.8.11–1.31.6. F5 рекомендует отключить AIO либо не обслуживать SSI-страницы.
HTTP/3 и TLS-сессии
CVE-2026-95101 позволяет добавить лишние байты в проксируемый запрос или передать тело, превышающее client_max_body_size. Проблема возникает при HTTP/3 и включённой директиве proxy_request_buffering; по умолчанию она включена. Одно поле парсера использовалось для двух задач: учёта остатка неизвестного фрейма и подсчёта DATA-байтов тела запроса. Если неизвестный фрейм разбивался между двумя чтениями, остаток мог быть принят за данные тела и отправлен бэкенду, минуя проверку размера. Затронуты версии 1.25.0–1.31.6. Временная мера F5 — установить proxy_request_buffering off, хотя документация NGINX рекомендует буферизацию запросов, а при HTTP/3 она включена по умолчанию.
CVE-2026-97629 связана с билетами TLS, которые позволяют возобновить сессию без полного рукопожатия. Начиная с NGINX 1.23.2, выпущенной в октябре 2022 года, общий кэш сессий заставляет сервер самостоятельно генерировать и менять ключи билетов, если ключи не загружены из файла. У каждого worker было три копии слотов ключей, но при ротации обновлялись только два; третий сохранял прежнее содержимое памяти. Билет, указывающий на этот слот, мог проверяться и расшифровываться с неинициализированными данными ключа, «что позволяло подделать сессию», говорится в коммите с исправлением.
По оценке F5, подделка срабатывает «недетерминированным образом, неподконтрольным атакующему», но может позволить обойти проверку клиентского сертификата. Уязвимая настройка — ssl_session_cache shared:SSL:10m, приведённая в документации NGINX. Затронуты версии 1.23.2–1.31.6. F5 советует удалить директиву общего кэша либо загрузить ключи из файла с помощью ssl_session_ticket_key. Серверы с ssl_session_tickets off не подвержены этой проблеме. В феврале 2025 года NGINX уже исправлял похожую по последствиям ошибку повторного использования сессии — CVE-2025-23419.
Обновление и проверка сервера
Оптимальный вариант — перейти на NGINX 1.30.6 или 1.31.7. Стабильный релиз содержит только исправления. NGINX выпускает патчи лишь для этих двух веток, поэтому более старые версии, включая 1.28, остаются в диапазонах затронутых выпусков. Пакет Linux-дистрибутива считается исправленным только в том случае, если сопровождающие перенесли в него нужные патчи.
Пользователям NGINX Plus, F5 Ingress Controller, Gateway Fabric, Instance Manager и WAF следует свериться с рекомендациями F5 по конкретным сборкам. На 15 октября для нескольких продуктов в этих рекомендациях ещё не было указано исправленной сборки. Если обновление пока невозможно, применяют временные меры F5 для соответствующей конфигурации.
Текущую конфигурацию можно вывести командой nginx -T. В результате стоит проверить, соседствуют ли alias и rewrite; используется ли регулярный map в root или log_format; встречаются ли вместе aio и ssi; есть ли в строках listen параметр quic; настроен ли ssl_session_cache shared без ssl_session_ticket_key.
Это восьмой выпуск NGINX с исправлениями безопасности в 2026 году. В мае NGINX закрыл переполнение в rewrite-модуле, CVE-2026-42945; по данным VulnCheck, его начали эксплуатировать в течение нескольких дней после раскрытия. Уязвимости текущего выпуска обнаружили Мэтт Суич из Tolmo и Матеуш Гирблински — CVE-2026-93479; Хансол Ли из GOTROOT — CVE-2026-95101; PhiNode Labs — CVE-2026-97629; Cyberlanc3r — CVE-2026-97205. Ошибку CVE-2026-15176 самостоятельно нашла F5.
В тот же день вышел njs 1.0.2. В модуле JavaScript исправлены две уязвимости средней степени серьёзности, связанные с обработкой XML: CVE-2026-101025 и CVE-2026-101019.