Разработчики nginx закрыли сразу пять уязвимостей в свежих сборках — основная ветка получила версию 1.31.7, а стабильная 1.30.6 пополнилась только критичными исправлениями безопасности и серьёзных багов.
Среди устранённых проблем — CVE-2026-15176: переполнение буфера возникает, когда директива alias работает в конфигурациях, где URI переписывается через rewrite с последующим переходом на файл. Ещё одна переполненность буфера (CVE-2026-93479) проявляется при вычислении пути к корневому каталогу и в процессе логирования запросов в модулях http и stream, если выполняются строковые выражения с переменными.
Отдельного внимания заслуживает CVE-2026-95101 — обход лимита client_max_body_size и подмешивание посторонних данных в проксируемый запрос. Лазейка открывается через некорректные фреймы HTTP/3, часть содержимого которых сервер может принять за тело запроса. Уязвимость CVE-2026-97629 позволяет подделывать TLS-сеансы: при ротации один из сессионных ключей остаётся неинициализированным. Наконец, CVE-2026-97205 — обращение к освобождённой памяти (use-after-free) на SSI-страницах при сочетании команд include virtual с асинхронным вводом/выводом.
Помимо правок безопасности, в nginx 1.31.7 появился ряд новых возможностей. Модули ngx_http_geoip_module и ngx_stream_geoip_module научились работать с базами MaxMind в формате MMDB. Добавлена проверка по IP-адресу SSL-сертификатов, задействованных на бэкенде. Появилась возможность переконфигурации и обновления исполняемого файла при использовании директивы quic_bpf. А в ngx_http_v2_module реализована расстановка приоритетов по RFC 9218.
Параллельно вышел njs 1.0.2 — модуль, встраивающий интерпретатор JavaScript в nginx. С его помощью скрипты на JS применяются прямо в конфигурационных файлах: для сложной логики обработки запросов, генерации конфигурации, динамических ответов, правки запроса или ответа, а также быстрого создания заглушек. Проект написан на Си и распространяется под лицензией BSD. В версии 1.0.2 закрыты две уязвимости: исчерпание памяти при разборе некорректных XML-данных (CVE-2026-101025) и обход проверки подписи XML-документа через манипуляции с атрибутами (CVE-2026-101019). Кроме того, добавлены методы XMLNode.getAttributeNS() и XMLNode.getChildNS(), а компиляция в движке njs стала потреблять меньше памяти.
