Рекомендуем
VPS на Windows и Linux — от 49 ₽ за 7 дней Быстрый запуск сервера на NVMe для сайтов, ботов и других задач.
Выбрать VPS

nginx 1.31.7 и njs 1.0.2 — семь исправленных уязвимостей в HTTP/3, TLS и XML

14 октября 2026 года разработчики выпустили nginx 1.31.7 для основной ветки, nginx 1.30.6 для стабильной ветки и njs 1.0.2. Обновления закрывают пять уязвимостей веб-сервера и две ошибки JavaScript-движка, связанные с обработкой HTTP/3, TLS-сессий, памятью процессов и XML-документами. Реальный риск зависит от того, какие модули и настройки используются на сервере.

nginx 1.31.7 и njs 1.0.2 — семь исправленных уязвимостей
nginx 1.31.7 и njs 1.0.2 — семь исправленных уязвимостей

Ошибка HTTP/3 позволяла добавлять данные в запрос к приложению

Уязвимость CVE-2026-95101 затрагивала обработку HTTP/3 — протокола, по которому браузер может обмениваться данными с сайтом. При определённом содержимом HTTP/3-фрейма nginx мог принять часть неизвестного фрейма за тело запроса.

Последствия касались двух сценариев. Во-первых, сервер мог некорректно применять ограничение client_max_body_size, которое задаёт максимальный размер тела запроса. Во-вторых, лишние данные могли попадать в запрос, пересылаемый внутреннему приложению через обратный прокси. Для сайта, где nginx стоит перед API или другим веб-сервисом, это меняло содержимое запроса, увиденного приложением.

В версиях 1.31.7 и 1.30.6 такую обработку исправили. Уязвимость относится к конфигурациям, использующим HTTP/3; само наличие nginx на сервере ещё не подтверждает возможность её эксплуатации.

Ошибки памяти и TLS зависели от сочетания директив nginx

Ещё четыре уязвимости проявлялись при определённой конфигурации веб-сервера или способе обработки данных:

  • CVE-2026-15176 — переполнение буфера при сочетании alias и rewrite. Проблема возникала, когда URI запроса изменялся, а затем преобразовывался в путь к файлу. Такая схема встречается при настройке раздачи файлов из отдельных каталогов.
  • CVE-2026-93479 — переполнение буфера при вычислении строковых выражений с переменными. Среди затронутых операций — определение корневого каталога сайта и формирование записей журналов в HTTP- и Stream-модулях.
  • CVE-2026-97629 — ошибка ротации ключей TLS session tickets. Один из ключей оставался неинициализированным, из-за чего при определённых условиях становилась возможной подделка TLS-сессии. Session tickets используются для возобновления защищённых соединений без полного повторения первоначального обмена.
  • CVE-2026-97205 — обращение к уже освобождённой памяти (use-after-free) при асинхронном файловом вводе-выводе (AIO). Уязвимый сценарий включал обработку SSI-страницы с командами include virtual, которые подставляют содержимое в формируемый ответ.

Переполнение буфера и обращение к освобождённой памяти способны нарушить работу рабочего процесса nginx. При этом конкретные условия возникновения ошибок различаются: например, уязвимость SSI связана с AIO, а проблема с путями к файлам — с логикой alias и rewrite.

Согласно официальному списку уязвимостей nginx, все пять новых CVE имеют оценку medium по шкале проекта. Исправления доступны одновременно в основной ветке 1.31.7 и стабильной 1.30.6. Предыдущие выпуски этих веток — 1.31.6 и 1.30.5 — ещё содержали перечисленные проблемы.

В njs 1.0.2 исправили исчерпание памяти и проверку подписанных XML

В тот же день вышел njs 1.0.2 — JavaScript-движок и набор модулей, с помощью которых в nginx реализуют собственную обработку запросов, проверку данных и другие функции. У двух его уязвимостей общий источник — работа с XML, форматом структурированных документов.

CVE-2026-101025 приводила к утечке памяти при разборе некорректного XML встроенным движком njs. Повторная обработка специально сформированных неправильных документов могла постепенно исчерпать память рабочего процесса. Для приложения, принимающего XML от внешних систем, это риск потери доступности сервиса.

CVE-2026-101019 затрагивала XML-атрибуты, содержащие ссылки на сущности. JavaScript-код мог получать значение атрибута, отличающееся от значения, используемого при каноникализации XML — приведении документа к стандартизированному представлению для проверки цифровой подписи. В системах, которые сверяют подпись и затем анализируют атрибуты, такое расхождение могло нарушать проверки подписанных документов.

Обе ошибки присутствовали в версиях njs 0.7.10–1.0.1 и устранены в 1.0.2. Уязвимости XML относятся к приложениям, действительно использующим соответствующие возможности njs; стандартная выдача статических файлов nginx сама по себе этот сценарий не задействует.

Новые версии ужесточили работу с ответами и расширили возможности сервера

В njs разработчики переработали обработку ответов ngx.fetch(), через который JavaScript-код отправляет HTTP-запросы. Теперь отклоняются ответы с противоречащими друг другу заголовками Content-Length, одновременным указанием Transfer-Encoding и Content-Length, а также ответы со статусами класса 1xx в этом контексте. Лимит max_response_body_size теперь корректно применяется и к ответам, которые передаются по частям (chunked).

В nginx 1.31.7 появились изменения, не связанные напрямую с обнаруженными уязвимостями. Модули GeoIP для HTTP и Stream получили поддержку баз MaxMind DB (MMDB). Появилась возможность проверять сертификат TLS-соединения с внутренним сервером по IP-адресу. Для HTTP/2 сервер перешёл на схему приоритизации запросов из RFC 9218 и перестал учитывать старые сигналы приоритета RFC 7540.

Таким образом, релиз основной ветки включает функциональные изменения, тогда как стабильная ветка 1.30.6 предоставляет исправления безопасности без переноса всего набора новых возможностей 1.31.7.

Затронутые сценарии определяют масштаб обновления

Пять исправлений nginx касаются разных участков работы веб-сервера — от обработки HTTP/3 и TLS до вычисления путей и серверных SSI-вставок. Две уязвимости njs затрагивают приложения, которые работают с XML через JavaScript. Поэтому последствия зависят от конкретных директив, используемых модулей и того, какие данные поступают в приложение извне.

Обе поддерживаемые ветки nginx получили исправления 14 октября, а отдельный релиз njs устранил проблемы с XML и изменил поведение HTTP-клиента ngx.fetch(). Эти изменения объединяет более строгая обработка входных данных на границе между клиентом, веб-сервером и внутренним приложением.

Источники

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

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