В nginx 1.31.7 закрыли пять опасных уязвимостей и добавили поддержку MaxMind
Разработчики nginx представили версию 1.31.7, которая продолжает основную ветку, начатую в мае 2026 года. В будущем на её основе сформируют стабильную сборку 1.32. Исходный код проекта, написанный на C, как и прежде, распространяется под лицензией BSD.
Ключевым нововведением стала поддержка баз данных MaxMind в формате MMDB. Её интегрировали в модули ngx_http_geoip_module и ngx_stream_geoip_module, что упрощает геолокацию по IP-адресам без необходимости конвертации старых форматов. Ещё одно заметное изменение касается SSL-сертификатов бэкенда.
Теперь nginx умеет проверять их по IP-адресу, что добавляет гибкости в настройке защищённых соединений с апстримами. В части производительности и управления сервером реализовали возможность переконфигурации и обновления исполняемого файла без разрыва соединений при использовании директивы quic_bpf. Это важно для окружений, где применяется QUIC и нельзя допускать простоя.
Модуль ngx_http_v2_module получил обновлённую схему расстановки приоритетов, соответствующую стандарту RFC 9218. Это должно улучшить распределение ресурсов при multiplexing-потоках в HTTP/2, делая загрузку страниц более плавной. Основной массив изменений, однако, связан с безопасностью.
В nginx 1.31.7 закрыли сразу пять уязвимостей. Первая, CVE-2026-15176, представляет собой переполнение буфера. Она проявляется в конфигурациях, где директива alias используется вместе с rewrite, изменяющим URI, и последующим перенаправлением на файл.
Вторая уязвимость, 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 в сочетании с асинхронным вводом-выводом (AIO), что может привести к обращению к уже освобождённой памяти. Обновление настоятельно рекомендуется всем администраторам, особенно тем, кто использует сложные конфигурации с rewrite и alias, HTTP/3 или SSI с AIO.
Переход на версию 1.31.7 устраняет сразу несколько векторов для потенциальных атак.