Три уязвимости закрыты в NGINX 1.31.3 — обновление затрагивает map, slice и SSI

15 июля 2026 года команда NGINX выпустила mainline-версию 1.31.3 с исправлениями трёх уязвимостей в обработке регулярных выражений, фрагментированного кеширования и SSI. Самая серьёзная ошибка затрагивает конфигурации с директивой map и может привести к сбою рабочего процесса или выполнению кода при совпадении нескольких условий. Для стабильной ветки одновременно вышла версия 1.30.4 с теми же исправлениями безопасности.

NGINX 1.31.3
NGINX 1.31.3

NGINX 1.31.3 устраняет три ошибки управления памятью

Релиз появился 15 июля в официальной ленте NGINX. В центре обновления находятся CVE-2026-42533, CVE-2026-60005 и CVE-2026-56434. Все три ошибки возникают внутри рабочих процессов NGINX, которые принимают запросы, обращаются к upstream-серверам и формируют ответы клиентам.

УязвимостьУсловие срабатыванияВозможный результатИсправленная версия
CVE-2026-42533map с регулярным выражением и особая последовательность обращения к переменнымпереполнение буфера, остановка worker-процесса, возможное выполнение кода1.31.3 и 1.30.4
CVE-2026-60005ngx_http_slice_module, безымянные захваты регулярного выражения или фоновое обновление кешараскрытие части памяти или завершение worker-процесса1.31.3 и 1.30.4
CVE-2026-56434SSI-обработка специально подготовленного ответа от проксируемого backend-сервераповреждение памяти или перезапуск worker-процесса1.31.3 и 1.30.4

Страница NGINX Security Advisories присвоила первой уязвимости уровень major, двум остальным — medium. Ветка 1.31 до версии 1.31.2 включительно указана среди уязвимых.

CVE-2026-42533 связана с map и захватами регулярных выражений

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

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

Согласно официальному журналу изменений, такая комбинация могла вызвать переполнение буфера в куче worker-процесса. F5 указывает среди последствий отказ в обслуживании и потенциальное выполнение кода при подходящих условиях. Уязвимы версии NGINX Open Source от 0.9.6 до 1.31.2.

CVE-2026-60005 затрагивает slice и фоновое обновление кеша

Модуль ngx_http_slice_module делит крупный ответ на диапазоны и позволяет кешировать их отдельными частями. Такой режим встречается на серверах с большими файлами, видеоконтентом и тяжёлыми объектами, которые удобнее получать сегментами.

В NGINX до 1.31.3 безымянные захваты регулярного выражения вместе с директивой slice или фоновым обновлением кеша могли привести к чтению неинициализированной памяти. Результатом становилось ограниченное раскрытие содержимого памяти worker-процесса либо его аварийное завершение.

Модуль slice подключается при сборке параметром --with-http_slice_module. Команда nginx -V помогает увидеть параметры сборки установленного бинарного файла.

CVE-2026-56434 проявляется при SSI-обработке ответа от backend-сервера

SSI, или Server Side Includes, позволяет вставлять в HTML фрагменты, которые сервер собирает перед отправкой страницы клиенту. В NGINX за такую обработку отвечает ngx_http_ssi_filter_module.

Специально подготовленный ответ проксируемого backend-сервера мог вызвать use-after-free: worker-процесс обращался к области памяти после её освобождения. По данным F5, при уязвимой конфигурации атакующий мог добиться перезапуска рабочего процесса или ограниченного изменения памяти. Риск выше в схемах, где NGINX обрабатывает SSI внутри проксируемого контента.

HTTP/2 получил дополнительные ограничения и проверки

NGINX 1.31.3 ограничивает размер заголовков и трейлеров в ответах HTTP/2 от backend-серверов. Для ngx_http_proxy_v2_module применяется значение proxy_buffer_size, для gRPC — grpc_buffer_size. Такая граница не даёт upstream-серверу бесконтрольно увеличивать служебную часть ответа.

Парсер HTTP/2 теперь отклоняет запросы, в которых псевдозаголовки расположены после обычных заголовков. Псевдозаголовки вида :method, :path и :authority описывают параметры запроса на уровне протокола и должны идти в установленном порядке.

В релиз вошли исправления управления потоком HTTP/2, кешированных ответов через HTTP/2 upstream и лишнего заголовка Upgrade в ответах HTTP/2 и HTTP/3. Разработчики исправили настройку запрета фрагментации IPv6 при QUIC на части операционных систем.

XSLT больше не загружает внешние сущности по умолчанию

Модуль ngx_http_xslt_filter_module в версии 1.31.3 отключает загрузку внешних XML-сущностей по умолчанию. XSLT-фильтр преобразует XML-ответы перед отправкой клиенту, а внешние сущности могут обращаться к дополнительным ресурсам во время разбора документа.

Для конфигураций, которым такое поведение действительно требуется, появилась директива xml_external_entities. Администратор теперь включает доступ явно и может точнее контролировать обработку XML.

Новые директивы управляют буферами upstream-сокетов

Релиз добавляет пары директив _socket_sndbuf и _socket_rcvbuf для proxy, FastCGI, gRPC, SCGI, uWSGI и tunnel-соединений. Они задают размеры системных буферов отправки и приёма для сокета, через который NGINX общается с backend-сервером.

В CHANGES для NGINX 1.31.3 перечислены следующие группы настроек:

  • proxy_socket_sndbuf и proxy_socket_rcvbuf;
  • fastcgi_socket_sndbuf и fastcgi_socket_rcvbuf;
  • grpc_socket_sndbuf и grpc_socket_rcvbuf;
  • scgi_socket_sndbuf и scgi_socket_rcvbuf;
  • uwsgi_socket_sndbuf и uwsgi_socket_rcvbuf;
  • tunnel_socket_sndbuf и tunnel_socket_rcvbuf.

Настройки пригодятся в инфраструктуре с высокой задержкой, нестандартными сетевыми лимитами или заранее рассчитанными размерами TCP-буферов. Для типовой установки текущие системные значения остаются рабочей отправной точкой.

Стабильная ветка получила NGINX 1.30.4 с теми же исправлениями

На странице загрузки NGINX версия 1.31.3 указана как mainline, а 1.30.4 — как stable. Обе сборки закрывают CVE-2026-42533, CVE-2026-60005 и CVE-2026-56434.

Серверы на стабильной ветке можно обновить до 1.30.4, сохранив текущий цикл сопровождения. Инфраструктура на mainline-ветке получает исправления в 1.31.3 вместе с новыми директивами и изменениями протокольной обработки.

Перед развёртыванием полезно проверить установленную версию, параметры сборки и синтаксис конфигурации:

nginx -v
nginx -V
nginx -t

В контейнерной инфраструктуре обновление требует новой базовой сборки образа и повторного развёртывания. Замена пакета внутри уже работающего контейнера оставляет старый образ в реестре и усложняет воспроизводимость последующих запусков.

NGINX 1.31.3 требует внимания к конфигурациям map, slice и SSI

Релиз 1.31.3 закрывает ошибки, которые проявляются в конкретных конфигурационных сценариях, но затрагивают широкий диапазон старых версий. Наиболее чувствительны серверы с регулярными выражениями в map, сегментированным кешированием через slice и SSI-фильтрацией проксируемых ответов.

Обновление одновременно усиливает разбор HTTP/2, меняет безопасное поведение XSLT и даёт администраторам прямой контроль над буферами upstream-сокетов. Для stable-окружений версия 1.30.4 обеспечивает тот же набор исправлений безопасности без перехода на mainline-ветку.

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

Вам также может понравиться