Обновление безопасности: Выпущены RPM- и DEB-пакеты NGINX 1.31.6 Mainline с поддержкой HTTP/3, Brotli, TLS 1.3 и OpenSSL 4.0.2 для EL7/EL8/EL9/EL10, Ubuntu 22.04/24.04

nginx 1.31.6 Mainline с поддержкой HTTP/3 добавлен в репозиторий CodeIT. http2 и ngx_cache_purge встроены, а OpenSSL динамически линкуется с официальным OpenSSL 4.0.2 с поддержкой QUIC. Модуль сжатия Brotli от Google и ngx_http_geoip2 поставляются как динамические модули — в пакетах nginx-module-brotli и nginx-module-geoip2, которые rpm-пакет nginx устанавливает автоматически (зависимость оставлена, чтобы существующие установки обновлялись без потери этих директив; через несколько месяцев мы её уберём, и оба модуля станут полностью необязательными). Пакеты собраны для 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
  • самый свежий образ Mainline: docker pull codeitus/nginx:mainline
  • именно этот выпуск: docker pull codeitus/nginx:1.31.6

Для HTTP/3 нужно опубликовать и UDP-порт, а не только TCP: docker run -d -p 80:80 -p 443:443 -p 443:443/udp codeitus/nginx

Основные изменения:

  • Изменение: параметры расширения transport QUIC, полученные в SSL-соединении, теперь всегда игнорируются.
  • Исправление: двоичное обновление не выполнялось, если был задан сокет control API и новый исполняемый файл nginx был собран с модулем ngx_http_perl_module.
  • Исправление: ошибка при вычислении предиката в location предиката игнорировалась, и предикат трактовался как false.
  • Исправление: ошибка при поиске во вложенном location могла игнорироваться, если locations, заданные регулярными выражениями или предикатами, были настроены на текущем уровне.
  • Исправление: при чтении конфигурации мог возникать сбой сегментации, если использовалась директива «geo» с параметром «ranges», а соответствующий двоичный базовый файл был повреждён.

Исправленные уязвимости:

  • Безопасность: в рабочем процессе при некоторых конфигурациях могла возникать переполненная область памяти heap при использовании HTTP/3 с OpenSSL 3.5.0 и более ранними (CVE-2026-90439).

Обновление безопасности: Выпущены RPM- и DEB-пакеты NGINX 1.30.5 Stable с поддержкой HTTP/3, Brotli, TLS 1.3 и OpenSSL 4.0.2 для EL7/EL8/EL9/EL10, Ubuntu 22.04/24.04

nginx 1.30.5 Stable с поддержкой HTTP/3 добавлен в репозиторий CodeIT. http2 и ngx_cache_purge встроены, а OpenSSL динамически линкуется с официальным OpenSSL 4.0.2 с поддержкой QUIC. Модуль сжатия Brotli от Google и ngx_http_geoip2 поставляются как динамические модули — в пакетах nginx-module-brotli и nginx-module-geoip2, которые rpm-пакет nginx устанавливает автоматически (зависимость оставлена, чтобы существующие установки обновлялись без потери этих директив; через несколько месяцев мы её уберём, и оба модуля станут полностью необязательными). Пакеты собраны для 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.5

Для HTTP/3 нужно опубликовать и UDP-порт, а не только TCP: docker run -d -p 80:80 -p 443:443 -p 443:443/udp codeitus/nginx

Основные изменения:

  • Change: теперь расширение с параметрами транспорта QUIC, полученное в SSL-соединении, всегда игнорируется.

Исправленные уязвимости:

  • Security: в буфере кучи рабочего процесса при некоторых конфигурациях может возникнуть переполнение памяти при использовании HTTP/3 с OpenSSL 3.5.0 и более ранними версиями (CVE-2026-90439).

Обновление безопасности: Выпущены RPM- и DEB-пакеты mod_http3 v0.0.71

mod_http3 v0.0.71 добавлен в репозиторий CodeIT. Пакеты собраны для RHEL, CentOS, AlmaLinux, Rocky Linux и Oracle Linux 7, 8, 9 и 10, а также для Ubuntu 22.04 и 24.04.

Это обновление устраняет уязвимости. Рекомендуется обновиться.

Основные изменения:

  • Хост с «h3» в Protocols теперь обслуживает HTTP/3, используя сертификат mod_ssl, разрешённый для него (SSLCertificateFile и mod_md также), как это делает mod_http2, опираясь на mod_ssl. Удаляются H3CertificatePath и H3CertificateKeyPath; уберите их из существующих конфигураций.
  • Выбор HTTP/3-сертификата выполняется по SNI, так что каждый виртуальный хост на общем порту обслуживает свой собственный сертификат вместо сертификата первого хоста.
  • Для каждого виртуального хоста теперь используется отдельная конфигурация mod_http3 (AP_MODULE_FLAG_ALWAYS_MERGE). Хост без директив H3 раньше разделял конфигурацию главного сервера, поэтому параметры для конкретного хоста, такие как H3AltSvc и H3AltSvcMaxAge, незаметно игнорировались, и хосты не могли использовать собственный сертификат.
  • Набор тестов: stop.conf теперь указывает тот же файл pid, что и httpd.conf, поэтому «apachectl -k stop» действительно останавливает сервер в сборках httpd, где файл pid по умолчанию находится в run/; ранее при каждом перезапуске в рамках набора тестов поддерживалась связь со старым сервером.

Исправленные уязвимости:

  • SECURITY: Загрузка сертификата и ключа HTTP/3 выполняется в post_config при сохранении привилегированного запуска httpd, поэтому ключ, доступный только root, больше не приводит к ошибке в непривилегированном дочернем процессе, и как mod_ssl, так и mod_http3 читают одни и те же файлы.

Обновление безопасности: Выпущены RPM- и DEB-пакеты mod_http3 v0.0.70

mod_http3 v0.0.70 добавлен в репозиторий CodeIT. Пакеты собраны для RHEL, CentOS, AlmaLinux, Rocky Linux и Oracle Linux 7, 8, 9 и 10, а также для Ubuntu 22.04 и 24.04.

Это обновление устраняет уязвимости. Рекомендуется обновиться.

Основные изменения:

  • Объявлена динамическая QPACK-таблица, размер которой задаётся H3QpackTableCapacity и H3QpackBlockedStreams, чтобы заголовки запросов сжимались так же, как и по HTTP/2.
  • Пул рабочих для обработки запросов стал настраиваемым с H3MinWorkers, H3MaxWorkers и H3MaxWorkerIdleSeconds вместо фиксированных 16–64 потоков.
  • Добавлен H3StreamTimeout: клиент, который перестаёт читать, больше не может удерживать рабочий поток запроса, пока запрос не будет завершён.
  • Добавлен H3MaxStreamErrors: соединение закрывается, если клиент продолжает отправлять некорректные запросы, вместо того чтобы обслуживать их бесконечно.
  • Опубликована среда TLS для mod_ssl (SSL_PROTOCOL, SSL_CIPHER и другие) для запросов HTTP/3, которую mod_ssl не контролирует.
  • Добавлены H3SessionTickets, чтобы администратор мог управлять возобновлением сеансов для возвращающихся клиентов вместо выполнения полного рукопожатия.
  • Добавлен H3SocketBufferSize, поэтому QUIC-сокет больше не отбрасывает дейтаграммы из-за слишком малого буфера приёма в ОС, когда соединение начинает работать на полной скорости.
  • В модульном event loop принудительно используется H3IdleTimeout: соединение без запросов закрывается вместо того, чтобы удерживаться открытым пингами keepalive от QUIC.
  • Некорректный запрос HTTP/3 отклоняется с ошибкой уровня потока вместо закрытия соединения, поэтому запросы, выполняющиеся параллельно, продолжают обрабатываться.
  • Сборка выполняется с httpd 2.4.x, а также из trunk; теперь сегменты ответа и хук child_stopped выбираются на этапе компиляции.
  • Определяется стабильная или devel версия httpd во время configure, и функция graceful drain возвращается в ветку 2.4.x.

Исправленные уязвимости:

  • SECURITY: Обновлён submodule httpd, чтобы mpm_event допускал соединение, которое никогда не принимал, устраняя падение дочернего процесса при ErrorDocument по HTTP/3.
  • SECURITY: Применены LimitRequestFields и LimitRequestFieldSize для HTTP/3, так что клиент больше не может раздувать память потока неограниченными заголовками.

Выпущены RPM- и DEB-пакеты NGINX 1.31.5 Mainline с поддержкой HTTP/3, Brotli, TLS 1.3 и OpenSSL 4.0.2 для EL7/EL8/EL9/EL10, Ubuntu 22.04/24.04

nginx 1.31.5 Mainline с поддержкой HTTP/3 добавлен в репозиторий CodeIT. http2 и ngx_cache_purge встроены, а OpenSSL динамически линкуется с официальным OpenSSL 4.0.2 с поддержкой QUIC. Модуль сжатия Brotli от Google и ngx_http_geoip2 поставляются как динамические модули — в пакетах nginx-module-brotli и nginx-module-geoip2, которые rpm-пакет nginx устанавливает автоматически (зависимость оставлена, чтобы существующие установки обновлялись без потери этих директив; через несколько месяцев мы её уберём, и оба модуля станут полностью необязательными). Пакеты собраны для 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
  • самый свежий образ Mainline: docker pull codeitus/nginx:mainline
  • именно этот выпуск: docker pull codeitus/nginx:1.31.5

Для HTTP/3 нужно опубликовать и UDP-порт, а не только TCP: docker run -d -p 80:80 -p 443:443 -p 443:443/udp codeitus/nginx

Основные изменения:

  • Функция: управление API.
  • Функция: условия по расположениям.
  • Функция: модуль ngx_http_json_module.
  • Функция: директива «client_body_early_read».
  • Исправлена ошибка: use-after-free мог возникать в рабочем процессе, если выполнялось проксирование с использованием буферизации и ошибка возникала при отправке ответа HTTP/2-клиенту.
  • Исправлена ошибка: рабочий процесс больше не мог не завершаться или в журналах больше не появлялись оповещения «accept4() failed (9: Bad file descriptor)» при исчерпании файловых дескрипторов до начала планового завершения.
  • Исправлена ошибка: запросы к бэкендам FastCGI и uwsgi формировались некорректно, если имя параметра было слишком длинным.
  • Исправлены ошибки в HTTP/3, ngx_http_slice_module и ngx_http_memcached_module.