nginx 1.30.6 Stable with HTTP/3 support has been added to the CodeIT repository. http2 and ngx_cache_purge are built in, and OpenSSL is linked dynamically against the official OpenSSL 4.0.3 with QUIC support. The Brotli compression module from Google and ngx_http_geoip2 ship as dynamic modules, in nginx-module-brotli and nginx-module-geoip2, both optional like the rest of the nginx-module-* set. The packages are built for RHEL, CentOS, AlmaLinux, Rocky Linux and Oracle Linux 7, 8, 9 and 10, and for Ubuntu 22.04 and 24.04.
This update fixes security vulnerabilities. Upgrading is recommended.
More dynamic modules are packaged alongside and are optional: nginx-module-lua with lua-resty-core and lua-resty-lrucache, nginx-module-acme for automatic ACMEv2 certificates, nginx-module-njs, nginx-module-perl, nginx-module-xslt and nginx-module-image-filter. Each one ships its own load_module line in /etc/nginx/modules-enabled, so it works the moment it is installed and nothing has to be added to nginx.conf by hand. Lua and ACME are built for EL9, EL10 and Ubuntu; EL7 gets nginx-module-geoip instead, and njs, Perl, XSLT and image-filter are RPM only.
The same release is on Docker Hub as codeitus/nginx, built on AlmaLinux 9 from these packages and published for amd64 and arm64:
- the newest image, from whichever pool was released last: docker pull codeitus/nginx
- the newest Stable image: docker pull codeitus/nginx:stable
- this exact release: docker pull codeitus/nginx:1.30.6
HTTP/3 needs the UDP port published as well as the TCP ones: docker run -d -p 80:80 -p 443:443 -p 443:443/udp codeitus/nginx
Major changes:
- Change: the logging level of the “invalid alert” and “record layer failure” SSL errors, and of the “SSL alert number N” for any alert numbers has been lowered from “crit” to “info”.
- Bugfix: a segmentation fault might occur in a worker process or “request count is zero” alerts might appear in logs if the “X-Accel-Redirect” header line was cached and the cached response was then served to a client.
- Bugfix: a segmentation fault might occur in a worker process if the ngx_http_dav_module was used to handle COPY and MOVE methods in a location with the “alias” directive.
- Bugfix: a segmentation fault might occur while reading configuration if the “geo” directive with the “ranges” parameter was used and the corresponding binary base file was corrupted.
- Bugfix: use-after-free might occur in a worker process if proxying with buffering was used and an error occurred while sending the response to an HTTP/2 client.
- Bugfix: a worker process might not exit or “accept4() failed (9: Bad file descriptor)” alerts might appear in logs if the worker process ran out of file descriptors before graceful shutdown.
- Bugfix: a segmentation fault might occur in a worker process if the “select” method was used.
- Bugfix: in binary compatibility with third-party modules using script codes; the bug had appeared in 1.30.4.
- Bugfix: in the ngx_http_perl_module.
- Bugfix: in flow control in the ngx_http_v2_module.
- Bugfix: “[error] upstream sent frame for unknown stream” and “[crit] cache file … contains invalid header” messages might appear in logs when sending a cached HTTP/2 response in the ngx_http_proxy_v2_module if the “proxy_cache_revalidate” directive was used.
- Bugfix: IPv6 fragmentation might not be disabled when using QUIC on some operating systems.
- Bugfix: in the ngx_http_auth_basic_module on Solaris.
- Bugfixes in HTTP/3, ngx_http_image_filter_module, ngx_http_slice_module, and ngx_http_memcached_module.
Fixed vulnerabilities:
- Security: a buffer overflow might occur in a worker process when using the “alias” directive if the request URI was changed by the “rewrite” directive and was then mapped to a file path (CVE-2026-15176).
- Security: a buffer overflow might occur in a worker process while evaluating string expressions with variables, which affected the document root calculation and request logging in the http and stream modules (CVE-2026-93479).
- Security: when using HTTP/3 a part of an unknown frame might be treated as the request body, which might result in bypassing the “client_max_body_size” limit or injecting data in the proxied request (CVE-2026-95101).
- Security: when using TLS session ticket key rotation, one of the keys was left uninitialized, which might allow to forge a session (CVE-2026-97629).
- Security: when using asynchronous file I/O (AIO), use-after-free might occur in certain configurations if the SSI page has “include virtual” commands (CVE-2026-97205).
