nginx 1.30.6 Stable с поддержкой HTTP/3 добавлен в репозиторий CodeIT. http2 и ngx_cache_purge встроены, а OpenSSL динамически линкуется с официальным OpenSSL 4.0.3 с поддержкой QUIC. Модуль сжатия Brotli от Google и ngx_http_geoip2 поставляются как динамические модули — в пакетах nginx-module-brotli и nginx-module-geoip2, оба необязательны, как и остальные модули nginx-module-*. Пакеты собраны для RHEL, CentOS, AlmaLinux, Rocky Linux и Oracle Linux 7, 8, 9 и 10, а также для Ubuntu 22.04 и 24.04.
Это обновление устраняет уязвимости. Рекомендуется обновиться.
Остальные динамические модули собраны отдельно и устанавливаются по желанию: nginx-module-lua вместе с lua-resty-core и lua-resty-lrucache, nginx-module-acme для автоматических сертификатов ACMEv2, nginx-module-njs, nginx-module-perl, nginx-module-xslt и nginx-module-image-filter. Каждый пакет сам добавляет строку load_module в /etc/nginx/modules-enabled, поэтому модуль работает сразу после установки и править nginx.conf вручную не нужно. Lua и ACME собираются для EL9, EL10 и Ubuntu; для EL7 вместо них есть nginx-module-geoip, а njs, Perl, XSLT и image-filter доступны только в rpm.
Тот же выпуск есть на Docker Hub как codeitus/nginx: образ собран на AlmaLinux 9 из этих же пакетов и опубликован для amd64 и arm64:
- самый свежий образ, из того пула, который вышел последним: docker pull codeitus/nginx
- самый свежий образ Stable: docker pull codeitus/nginx:stable
- именно этот выпуск: docker pull codeitus/nginx:1.30.6
Для HTTP/3 нужно опубликовать и UDP-порт, а не только TCP: docker run -d -p 80:80 -p 443:443 -p 443:443/udp codeitus/nginx
Основные изменения:
- Change: уровень логирования ошибок SSL с текстом «invalid alert» и «record layer failure», а также «SSL alert number N» для любых номеров оповещений был понижен с «crit» до «info».
- Bugfix: в рабочем процессе может возникать ошибка сегментации, а в логах могут появляться оповещения «request count is zero», если строка заголовка «X-Accel-Redirect» была закеширована, а затем закешированный ответ был выдан клиенту.
- Bugfix: в рабочем процессе может возникать ошибка сегментации, если для обработки методов COPY и MOVE в локации с директивой «alias» использовался модуль ngx_http_dav_module.
- Bugfix: при чтении конфигурации может возникать ошибка сегментации, если использовалась директива «geo» с параметром «ranges», а соответствующий двоичный файл базовых данных был повреждён.
- Bugfix: ошибка use-after-free может возникать в рабочем процессе, если использовалось проксирование с буферизацией и произошла ошибка при отправке ответа HTTP/2 клиенту.
- Bugfix: рабочий процесс может не завершаться, и в логах могут появляться оповещения «accept4() failed (9: Bad file descriptor)», если рабочий процесс исчерпал количество файловых дескрипторов до завершения по graceful shutdown.
- Bugfix: в рабочем процессе может возникать ошибка сегментации, если использовался метод «select».
- Bugfix: внесены изменения в бинарную совместимость с сторонними модулями, использующими коды сценариев; баг проявлялся в версии 1.30.4.
- Bugfix: в модуле ngx_http_perl_module.
- Bugfix: в механизме управления потоком в модуле ngx_http_v2_module.
- Bugfix: сообщения «[error] upstream sent frame for unknown stream» и «[crit] cache file … contains invalid header» могут появляться в логах при отправке кешированного HTTP/2-ответа в модуле ngx_http_proxy_v2_module, если использовалась директива «proxy_cache_revalidate».
- Bugfix: фрагментация IPv6 может быть не отключена при использовании QUIC в некоторых операционных системах.
- Bugfix: в модуле ngx_http_auth_basic_module на Solaris.
- Bugfixes в HTTP/3, ngx_http_image_filter_module, ngx_http_slice_module и ngx_http_memcached_module.
Исправленные уязвимости:
- Security: переполнение буфера может происходить в рабочем процессе при использовании директивы «alias», если URI запроса был изменён директивой «rewrite», а затем сопоставлен пути к файлу (CVE-2026-15176).
- Security: переполнение буфера может происходить в рабочем процессе при вычислении строковых выражений с переменными, что затрагивало вычисление document root и ведение журнала запросов в модулях http и stream (CVE-2026-93479).
- Security: при использовании HTTP/3 часть неизвестного фрейма может обрабатываться как тело запроса, что может привести к обходу ограничения «client_max_body_size» или внедрению данных в проксируемый запрос (CVE-2026-95101).
- Security: при использовании ротации ключей сеансовых билетов TLS один из ключей оставался неинициализированным, что может позволить подделать сеанс (CVE-2026-97629).
- Security: при использовании асинхронного ввода-вывода файлов (AIO) ошибка use-after-free может возникать в некоторых конфигурациях, если на странице SSI есть команды «include virtual» (CVE-2026-97205).
