安全更新:Apache httpd 2.4.69 RPM 和 DEB 软件包已发布,支持 HTTP/2、HTTP/3、Brotli、TLS 1.3、OpenSSL 4.0.3 和 ALPN,适用于 EL7/EL8/EL9/EL10, Ubuntu 22.04/24.04

Apache httpd 2.4.69 已新增到 CodeIT 仓库,编译时启用了 HTTP/2(mod_http2)、Brotli、TLS 1.3 和 ALPN,并基于 OpenSSL 4.0.3。这些软件包适用于 RHEL、CentOS、AlmaLinux、Rocky Linux 和 Oracle Linux 7、8、9 和 10,以及 Ubuntu 22.04 和 24.04。

本次更新修复了安全漏洞,建议尽快升级。

从 2.4.69 起,mod_ssl 改为基于 OpenSSL 3.0 API 而非 1.1.1 编译(OPENSSL_API_COMPAT 从 1.1.1 提升到 3.0.0),因为 OpenSSL 4.0 移除了在 3.0 之前已被弃用的功能。SRP(TLS-SRP,RFC 5054)也随之移除:SSLSRPVerifierFile 和 SSLSRPUnknownUserSeed 指令已不存在,请在升级前从配置中删除,否则 httpd 将无法启动;SSL_SRP_USER 和 SSL_SRP_USERINFO 变量也不再设置。这些软件包中的 ENGINE API 此前已被禁用。

RPM 软件包中的 mod_http2 现在直接从 httpd 源码树编译,与 DEB 软件包及 Ubuntu 自带的 apache2 一致,不再来自独立的 mod_h2 项目。软件包名称仍为 mod_http2,版本号改为随 httpd,因此 dnf 或 yum 会自动从 mod_http2 2.0.42 升级到它:无需事先卸载,修改过的 10-h2.conf 也会保留。

此版本 httpd 可通过 mod_http3 使用 HTTP/3,这是一个单独打包的实验性模块:

  • RPM,EL8 及更高版本:dnf install mod_http3
  • RPM,EL7:yum install mod_http3
  • DEB:apt install libapache2-mod-http3

模块安装后即被加载,HTTP/3 需按虚拟主机启用。编辑软件包安装的示例 vhost(ServerName 和证书):在 EL 上是 /etc/httpd/vhosts.d/http3-vhost.conf,httpd.conf 默认不包含它,请添加 IncludeOptional vhosts.d/*.conf;在 Ubuntu 上运行 a2ensite http3-vhost。然后重新加载 httpd,并在防火墙中开放 443/udp,因为 QUIC 基于 UDP。

主要变更:

  • 修复了文档中的 tar 图标,使其背景为透明。PR 70238。
  • mod_ssl:修复了 OpenSSL 兼容性宏,用于 X509_get0_notBefore、X509_get0_notAfter 和 X509_get0_serialNumber,并适配 OpenSSL < 1.1。PR 70205。
  • mod_cgid、mod_ssl、mod_md:多项加固修复。
  • mod_md:MDServerStatus 默认处于禁用状态。
  • mod_auth_digest:修复了与基于表达式的 AuthName 的兼容性。PR 59039。
  • mod_auth_digest.c:移除了对 RFC 2069 的支持;重写共享内存处理以及 client nonce 处理;”authdigest-opaque” 互斥锁不再需要。
  • mod_lbmethod_heartbeat:使用带范围校验的安全整数解析,替换 atoi()。
  • core:拒绝中间响应的 reason phrase 中的控制字符。仅接受空格作为状态码分隔符。
  • mod_substitute:修复了 SubstituteMaxLineLength,使其拒绝超过 K/M/G 后缀可表示范围的过大数值。
  • mod_substitute:修复在加载 Substitute 指令时若缺少结束定界符会导致崩溃或异常行为的问题。
  • mod_dir:修复了 fixup_dir 在请求未映射到任何类型时发生的崩溃。PR68527。
  • mod_http2:当客户端在仍在处理其已打开 streams 的情况下发送 graceful GOAWAY(error code 0)时,不会丢弃正在进行中的响应。现在会将打开的 streams 进行排空处理,而不是立刻拆除;这比 event 更常被异步 MPM 触发。此修复解决了静默丢弃的响应问题,并符合 RFC 9113。
  • mod_md:添加对 OpenSSL 4 的兼容性。
  • pytest_suite:将旧的 PERL 测试框架移植到 Python 与 pytest。现在已随源代码一起提供,并位于 ./test 下。

修复的漏洞:

  • SECURITY: CVE-2026-93546: mod_dav_fs namespace overflow Integer overflow in mod_dav_fs in Apache HTTP Server through 2.4.68 allows an authenticated WebDAV client with write access to crash worker processes and persistently corrupt a directory’s property database via PROPPATCH requests declaring many XML namespaces.
  • SECURITY:CVE-2026-79768:mod_userdir:修复了信息泄露问题。修复了路径等价性漏洞 ‘/./’(单点目录)——当 Apache HTTP Server 的 mod_userdir 模块配置为绝对且不含通配符的 UserDir 指令(第二种形式)时,该问题会产生影响。该问题影响 Apache HTTP Server:从 2.4.0 到 2.4.68。
  • SECURITY:CVE-2026-73637:mod_auth_digest:修复了 DoS 攻击——修复了 mod_auth_digest 中的 use after free(Apache Software Foundation Apache HTTP Server 2.4.69 之前的所有平台)。该问题原本允许未认证的远程客户端在启用 AuthDigestNcCheck 或将 AuthDigestNonceLifetime 设置为 0 时,通过并发的 Digest 认证请求破坏认证状态。
  • SECURITY: CVE-2026-73636: mod_auth_digest one-time-nonce replay attack Authentication bypass by capture-replay in mod_auth_digest in Apache Software Foundation Apache HTTP Server 2.4.x on all platforms allows a man-in-the-middle (MITM) attacker to replay captured digest authentication credentials via crafted requests that trigger garbage collection of the client’s shared memory entry when AuthDigestNonceLifetime is set to 0. Users are recommended to upgrade to version 2.4.69, which fixes this issue.
  • SECURITY:CVE-2026-63718:mod_proxy_uwsgi:修复了 Transfer-Encoding 响应走私问题。修复了通过 mod_proxy_uwsgi 以及带 Transfer-Encoding 的构造 uwsgi 响应所导致的响应走私漏洞,该漏洞源于对 HTTP 请求的解释不一致(”HTTP Request/Response Smuggling”)。该问题影响 Apache HTTP Server:从 2.4.30 到 2.4.68。
  • SECURITY: CVE-2026-63686: mod_xml2enc crash on charset conversion failure A NULL pointer dereference in mod_xml2enc in Apache Software Foundation Apache HTTP Server before 2.4.69 on all platforms allows an untrusted backend server to cause a denial of service via a proxied response with a charset whose conversion partially succeeds then fails. Users are recommended to upgrade to version 2.4.69, which fixes this issue.
  • SECURITY: CVE-2026-63292: mod_vhost_alias stack overflow Stack-based buffer overflow in mod_vhost_alias in Apache Software Foundation Apache HTTP Server through 2.4.68 on all platforms allows a remote client to cause a denial of service or potentially execute arbitrary code via an HTTP request with a Host header exceeding 8192 bytes when VirtualDocumentRoot uses a hostname format specifier and LimitRequestFieldSize is raised above the default. Users are recommended to upgrade to version 2.4.69, which fixes this issue.
  • SECURITY: CVE-2026-63045: mod_proxy_ftp PASV address handling Improper validation of FTP PASV reply address in mod_proxy_ftp in Apache Software Foundation Apache HTTP Server through 2.4.68 on all platforms allows, in forward proxy configurations, an untrusted FTP server to cause the proxy to open a data connection to an arbitrary third-party host via a crafted PASV response. Users are recommended to upgrade to version 2.4.69, which fixes this issue.
  • SECURITY:CVE-2026-59797:mod_ssl:SSLRequire 不再允许 .htaccess 的 ap_expr 使用 file-function。修复了 Apache HTTP Server 的 mod_ssl 中通过 SSLRequire 和与文件相关的表达式导致的权限管理不当问题。该问题影响 Apache HTTP Server:从 2.4.0 到 2.4.68。
  • SECURITY:CVE-2026-59685:修复了 ap_directory_walk() 中越界写入;在 CASE_BLIND_FILESYSTEM 下执行 Canonical-Name Rewrite。修复了 Apache HTTP Server(Windows)在处理可能扩展后会增长的 8.3 名称路径时的越界写入漏洞。该问题影响 Apache HTTP Server:从 2.4.0 到 2.4.68。
  • SECURITY:CVE-2026-58415:mod_dav_fs:修复了属性数据库的读取权限问题。修复了 Apache Software Foundation Apache HTTP Server 2.4.69 之前所有平台中 mod_dav_fs 内部状态文件可被外部访问的问题:现在远程客户端无法通过对 .DAV 状态目录发起 GET 请求来读取它无权授权的资源的 WebDAV dead properties。该问题影响 Apache HTTP Server:从 2.4.0 到 2.4.68。
  • SECURITY:CVE-2026-57941:mod_http2:修复了 use-after-free / 通过 shared session->bbtmp re-entrancy 的任意写入。修复了 Apache HTTP Server 的 mod_http2 中通过共享 session->bbtmp re-entrancy 引发的 use-after-free 漏洞。该问题影响 Apache HTTP Server:从 2.4.0 到 2.4.68。
  • SECURITY:CVE-2026-56449:mod_proxy_html:修复了 dump_content 中的崩溃。修复了 Apache HTTP Server 的 mod_proxy_html 在使用构造的 HTTP 响应体时的越界写入漏洞。该问题影响 Apache HTTP Server:从 2.4.0 到 2.4.68。
  • SECURITY:CVE-2026-56154:mod_rewrite:修复了通过 %{LA-U:HTTP…} 导致的 use-after-free。修复了在使用 lookahead(%{LA-U:HTTP…})时 Apache HTTP Server 的 mod_rewrite 中的 use-after-free 漏洞。该问题影响 Apache HTTP Server:从 2.4.0 到 2.4.68。
  • SECURITY:CVE-2026-56153:mod_charset_lite:修复了 finish_partial_char 中的堆溢出。修复了 Apache HTTP Server 的 mod_charset_lite 中的越界写入漏洞。该问题影响 Apache HTTP Server:从 2.4.0 到 2.4.68。
  • SECURITY:CVE-2026-48005:mod_auth_digest:修复了重新认证攻击。修复了 Apache Software Foundation Apache HTTP Server 2.4.69 之前所有平台中 mod_auth_digest 缺失认证检查的问题:当使用 AuthDigestNcCheck 启用 Digest 认证时,未认证的远程客户端不再能够通过伪造的 Authorization 头触发拒绝服务(强制重新认证)。
  • SECURITY:CVE-2026-47360:mod_session:内部重定向期间不会再移除会话 Cookie。修复了 Apache HTTP Server 的 mod_session_cookie 模块中向未授权主体泄露敏感信息的漏洞。
  • SECURITY:CVE-2026-46729:mod_heartmonitor:修复了拒绝服务。修复了 Apache HTTP Server 的 mod_heartmonitor 在通过单播监听器时触发的 NULL 指针解引用漏洞。该问题影响 Apache HTTP Server:从 2.4.0 到 2.4.68。
  • SECURITY:CVE-2026-42528:mod_dav:修复了共享锁溢出。修复了 Apache httpd 2.4.67 及更早版本中的 mod_dav 内存计算错误:攻击者在拥有创建 WebDAV 锁的权限时,不再能够导致服务器子进程崩溃。建议升级到 2.4.69 版本,该版本修复了此问题
  • SECURITY:CVE-2026-42356:修复了针对 CGI 目录中某些非 CGI 文件的内部重定向导致的受限 RCE。修复了 Apache HTTP Server 中“错误处理器”漏洞:它会导致某些来自 CGI 程序的内部重定向目标也被当作 CGI,从而执行。该目标必须已位于启用 CGI 的目录中,并且不能具有 mod_mime 能理解的其他扩展名。该问题影响 Apache HTTP Server:从 2.4.60 到 2.4.68。

安全更新:openssl 4.0.3 RPM 和 DEB 软件包已发布

openssl 4.0.3 已新增到 CodeIT 仓库。这些软件包适用于 RHEL、CentOS、AlmaLinux、Rocky Linux 和 Oracle Linux 7、8、9 和 10,以及 Ubuntu 22.04 和 24.04。

本次更新修复了安全漏洞,建议尽快升级。

主要变更:

  • OpenSSL 4.0.3 是一个安全补丁版本。本次发布中修复的最严重 CVE 等级为 High。
  • 本次发布包含以下错误修复和缓解措施:
  • 修复了在 AES-SIV 认证失败时,`EVP_DecryptFinal()` 会错误地报告过时成功结果的漏洞。
  • 修复了在 OpenSSL 4.0 中引入的 base64 编码 BIO 过滤器的回归问题;当对 BIO 链进行不完整写入时,可能导致丢失已编码的 base64 数据。

修复的漏洞:

  • 修复了来自过时缓冲区偏移量的 DTLS 握手消息重传问题。(CVE-2026-84782)
  • 修复了在并发使用下 X.509 扩展缓存中的 use-after-free 问题。(CVE-2026-84783)
  • 修复了在 relative CRLDP 处理过程中分配过多内存的问题。(CVE-2026-35189)
  • 修复了 QUIC 中未经验证的 amplification credit 可能被重复/过度记账的问题。(CVE-2026-35191)
  • 修复了 QUIC 中通过 O(n^2) 方式进行片段重组而导致的潜在 CPU DoS 风险。(CVE-2026-42772)
  • 修复了针对 mon-NIST EC 曲线的标量乘法中的计时侧信道问题。(CVE-2026-54872)
  • 修复了 QUIC 的 `STREAM` 片段元数据导致的 DoS 问题。(CVE-2026-54873)
  • 修复了在 ARM64 和 RISC-V 上 SM2 标量乘法并非恒定时间执行的问题。(CVE-2026-54875)
  • 修复了在握手过程中调用 `SSL_set_SSL_CTX()` 之后发生越界访问的问题。(CVE-2026-72897)
  • 修复了 QUIC 连接级别的流量控制未对流(streams)实施的问题。(CVE-2026-75804)
  • 修复了在处理 CMP 客户端撤销响应时发生的 NULL 指针解引用问题。(CVE-2026-75805)
  • 修复了未认证且长度过小的 DTLS 1.2 AEAD 记录导致 DoS 的问题。(CVE-2026-75806)
  • 修复了 SM2 签名生成中的计时侧信道问题。(CVE-2026-77696)
  • 修复了 QUIC 协议栈实现中的 `RETIRE_CONNECTION_ID` 未受限制的积压队列问题。(CVE-2026-84784)

带有 QUIC 支持的库仍作为单独的、不会冲突的 openssl-quic-libs 软件包提供,使用独立的 .so.81.4 后缀,以避免与官方 .so.X 冲突。

安全更新:NGINX 1.31.6 Mainline RPM 和 DEB 软件包已发布,支持 HTTP/3、Brotli、TLS 1.3 和 OpenSSL 4.0.2,适用于 EL7/EL8/EL9/EL10, Ubuntu 22.04/24.04

nginx 1.31.6 Mainline 已新增到 CodeIT 仓库,支持 HTTP/3。http2 和 ngx_cache_purge 已内置,并且 OpenSSL 动态链接官方 OpenSSL 4.0.2,支持 QUIC。Google 的 Brotli 压缩模块和 ngx_http_geoip2 以动态模块形式提供,位于 nginx-module-brotli 和 nginx-module-geoip2 软件包中,nginx rpm 会自动安装它们(保留该依赖是为了让现有安装在升级时不丢失相关指令;几个月后我们会移除它,这两个模块将变为完全可选)。这些软件包适用于 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。每个软件包都会在 /etc/nginx/modules-enabled 中写入自己的 load_module 指令,安装后即可生效,无需手动修改 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

主要变更:

  • 变更:在 SSL 连接中接收到的 QUIC 传输参数扩展现在总是会被忽略。
  • 漏洞修复:如果指定了 control API socket,并且新的 nginx 可执行文件在使用 ngx_http_perl_module 模块构建时,二进制升级将无法工作。
  • 漏洞修复:在谓词 location 中评估谓词时发生的错误会被忽略,且该谓词会被当作 false 处理。
  • 漏洞修复:在查找嵌套 location 时发生的错误在配置了当前级别的由正则表达式或谓词给出的 locations 时,可能会被忽略。
  • 漏洞修复:读取配置时可能会发生段错误,如果使用了带有 “ranges” 参数的 “geo” 指令,并且对应的二进制基准文件已损坏。

修复的漏洞:

  • 安全性:在特定配置下,使用 HTTP/3 且 OpenSSL 为 3.5.0 及更早版本时,工作进程中可能会发生堆内存缓冲区溢出(CVE-2026-90439)。

安全更新:NGINX 1.30.5 Stable RPM 和 DEB 软件包已发布,支持 HTTP/3、Brotli、TLS 1.3 和 OpenSSL 4.0.2,适用于 EL7/EL8/EL9/EL10, Ubuntu 22.04/24.04

nginx 1.30.5 Stable 已新增到 CodeIT 仓库,支持 HTTP/3。http2 和 ngx_cache_purge 已内置,并且 OpenSSL 动态链接官方 OpenSSL 4.0.2,支持 QUIC。Google 的 Brotli 压缩模块和 ngx_http_geoip2 以动态模块形式提供,位于 nginx-module-brotli 和 nginx-module-geoip2 软件包中,nginx rpm 会自动安装它们(保留该依赖是为了让现有安装在升级时不丢失相关指令;几个月后我们会移除它,这两个模块将变为完全可选)。这些软件包适用于 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。每个软件包都会在 /etc/nginx/modules-enabled 中写入自己的 load_module 指令,安装后即可生效,无需手动修改 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: 现在在 SSL 连接中收到的 QUIC 传输参数扩展会始终被忽略。

修复的漏洞:

  • Security: 在使用 HTTP/3 且使用 OpenSSL 3.5.0 及更早版本并且特定配置下,工作进程中可能会发生堆内存缓冲区溢出(CVE-2026-90439)。

安全更新:mod_http3 v0.0.71 RPM 和 DEB 软件包已发布

mod_http3 v0.0.71 已新增到 CodeIT 仓库。这些软件包适用于 RHEL、CentOS、AlmaLinux、Rocky Linux 和 Oracle Linux 7、8、9 和 10,以及 Ubuntu 22.04 和 24.04。

本次更新修复了安全漏洞,建议尽快升级。

主要变更:

  • 在 Protocols 中包含 “h3” 的主机现在会用为其解析出来的 mod_ssl 证书提供 HTTP/3 服务(SSLCertificateFile 以及 mod_md 同样适用),方式与 mod_http2 依赖 mod_ssl 的方式一致。移除了 H3CertificatePath 和 H3CertificateKeyPath;从现有配置中删除它们。
  • 通过 SNI 选择 HTTP/3 证书,因此共享端口上的每个虚拟主机都会提供各自的证书,而不是第一个主机的证书。
  • 每个虚拟主机都有独立的 mod_http3 配置(AP_MODULE_FLAG_ALWAYS_MERGE)。不包含 H3 指令的主机过去会与主服务器共享设置,因此像 H3AltSvc 和 H3AltSvcMaxAge 这类按主机的参数会被默默忽略,且主机无法携带自己的证书。
  • 测试套件:stop.conf 现在使用与 httpd.conf 相同的 pid 文件,因此在默认 pid 文件位于 run/ 的 httpd 构建中,”apachectl -k stop” 会真正停止服务器;此前,套件中的每次重启都会继续与上一台服务器通信。

修复的漏洞:

  • SECURITY:HTTP/3 证书和密钥在 post_config 中加载,而 httpd 仍以特权运行,因此仅 root 可访问的密钥不再会导致非特权子进程失败,并且 mod_ssl 和 mod_http3 都读取同一组文件。

安全更新:mod_http3 v0.0.70 RPM 和 DEB 软件包已发布

mod_http3 v0.0.70 已新增到 CodeIT 仓库。这些软件包适用于 RHEL、CentOS、AlmaLinux、Rocky Linux 和 Oracle Linux 7、8、9 和 10,以及 Ubuntu 22.04 和 24.04。

本次更新修复了安全漏洞,建议尽快升级。

主要变更:

  • 发布了按 H3QpackTableCapacity 和 H3QpackBlockedStreams 大小配置的 QPACK 动态表,使请求头在 HTTP/2 上的压缩方式保持一致。
  • 请求工作线程池改为可通过 H3MinWorkers、H3MaxWorkers 和 H3MaxWorkerIdleSeconds 调整,而不是固定的 16 到 64 线程。
  • 新增了 H3StreamTimeout:停止读取的客户端不再能一直占用一个请求工作进程,直到该请求消失为止。
  • 新增了 H3MaxStreamErrors:当客户端持续发送畸形请求而不是停止响应时,连接会被关闭,而不是一直让它持续下去。
  • 发布了用于 HTTP/3 请求的 mod_ssl TLS 环境(SSL_PROTOCOL、SSL_CIPHER 以及相关项),因为这些设置由 mod_ssl 不进行管理。
  • 新增了 H3SessionTickets,使运维人员能够控制回访客户端是否恢复会话,而不是执行完整握手。
  • 新增了 H3SocketBufferSize,因此当连接以满速运行时,QUIC 套接字不再因为操作系统接收缓冲区过小而丢弃数据报。
  • 在模块的事件循环中强制执行 H3IdleTimeout:无请求的连接会被关闭,而不是被 QUIC keepalive ping 保持打开。
  • 拒绝畸形的 HTTP/3 请求并返回 stream error,而不是关闭连接,因此与其并行的请求仍可继续存活并处理。
  • 构建同时支持 httpd 2.4.x 和 trunk;响应 bucket 以及 child_stopped hook 现在在编译时选择。
  • 在 configure 时检测 stable 还是 devel 的 httpd,并将 graceful drain 回迁到 2.4.x 分支。

修复的漏洞:

  • SECURITY: 更新了 httpd 子模块,使 mpm_event 能容忍它从未接收过的连接,从而结束在通过 HTTP/3 处理 ErrorDocument 时导致的子进程崩溃。
  • SECURITY: 将 LimitRequestFields 和 LimitRequestFieldSize 应用于 HTTP/3,因此客户端不再能通过无限制的请求头让某个 stream 的内存持续增长。

NGINX 1.31.5 Mainline RPM 和 DEB 软件包已发布,支持 HTTP/3、Brotli、TLS 1.3 和 OpenSSL 4.0.2,适用于 EL7/EL8/EL9/EL10, Ubuntu 22.04/24.04

nginx 1.31.5 Mainline 已新增到 CodeIT 仓库,支持 HTTP/3。http2 和 ngx_cache_purge 已内置,并且 OpenSSL 动态链接官方 OpenSSL 4.0.2,支持 QUIC。Google 的 Brotli 压缩模块和 ngx_http_geoip2 以动态模块形式提供,位于 nginx-module-brotli 和 nginx-module-geoip2 软件包中,nginx rpm 会自动安装它们(保留该依赖是为了让现有安装在升级时不丢失相关指令;几个月后我们会移除它,这两个模块将变为完全可选)。这些软件包适用于 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。每个软件包都会在 /etc/nginx/modules-enabled 中写入自己的 load_module 指令,安装后即可生效,无需手动修改 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” 指令。
  • Bugfix:如果在对 HTTP/2 客户端发送响应时使用了带缓冲的 proxy 且发生了错误,工作进程中可能会出现 use-after-free。
  • Bugfix:如果工作进程在进行优雅关闭之前先耗尽了文件描述符,那么工作进程可能不会退出,日志中也可能出现 “accept4() failed (9: Bad file descriptor)” 告警。
  • Bugfix:当参数名过长时,向 FastCGI 和 uwsgi 后端发送的请求会被构造为无效格式。
  • 修复了 HTTP/3、ngx_http_slice_module 和 ngx_http_memcached_module 中的问题。

安全更新:openssl 4.0.2 RPM 和 DEB 软件包已发布

openssl 4.0.2 已新增到 CodeIT 仓库。这些软件包适用于 RHEL、CentOS、AlmaLinux、Rocky Linux 和 Oracle Linux 7、8、9 和 10,以及 Ubuntu 22.04 和 24.04。

本次更新修复了安全漏洞,建议尽快升级。

主要变更:

  • OpenSSL 4.0.2 是一个安全修补版本。此版本修复的最严重 CVE 为 Moderate。
  • 此版本包含以下错误修复与缓解措施:
  • 修复了在 CCM 密码套件模式下,对 AEAD 密码的空密文进行认证标记检查。

修复的漏洞:

  • 修复了 QUIC 服务器在处理 `INITIAL` 数据包时可能触发 double free 的问题。(CVE-2026-18798)
  • 修复了 CMS 密钥解包中的堆缓冲区溢出。(CVE-2026-63072)
  • 修复了通过精心构造的 `protectionAlg` 访问 CMP 服务器时出现的无效指针解引用。(CVE-2026-63076)
  • 修复了 QUIC 服务器入站通道队列中的内存无界增长。(CVE-2026-14456)
  • 修复了 RPK 服务器在选择签名算法时可能解引用缺失证书的问题。(CVE-2026-14457)
  • 修复了为未来纪元缓冲 DTLS 记录而导致的过度内存使用。(CVE-2026-54874)
  • 修复了在校验 OCSP 响应时客户端侧的内存泄漏。(CVE-2026-54876)
  • 修复了在校验 CMP 响应时使用不受信任的 Sender DN 作为格式字符串。(CVE-2026-63073)
  • 修复了 CMP 中 `extraCerts` 的缓存无期限增长问题。(CVE-2026-63074)
  • 修复了 QUIC 中仅 ACK 数据包的保留可能导致内存耗尽的问题。(CVE-2026-63075)
  • 修复了在使用 `EVP_Cipher()` 时,空密文下可能发生 AEAD 伪造的情况。(CVE-2026-75803)

带有 QUIC 支持的库仍作为单独的、不会冲突的 openssl-quic-libs 软件包提供,使用独立的 .so.81.4 后缀,以避免与官方 .so.X 冲突。

NGINX 1.31.4 Mainline RPM 和 DEB 软件包已发布,支持 HTTP/3、Brotli、TLS 1.3 和 OpenSSL 4.0.1,适用于 EL7/EL8/EL9/EL10, Ubuntu 22.04/24.04

nginx 1.31.4 Mainline 已新增到 CodeIT 仓库,支持 HTTP/3。http2 和 ngx_cache_purge 已内置,并且 OpenSSL 动态链接官方 OpenSSL 4.0.1,支持 QUIC。Google 的 Brotli 压缩模块和 ngx_http_geoip2 以动态模块形式提供,位于 nginx-module-brotli 和 nginx-module-geoip2 软件包中,nginx rpm 会自动安装它们(保留该依赖是为了让现有安装在升级时不丢失相关指令;几个月后我们会移除它,这两个模块将变为完全可选)。这些软件包适用于 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。每个软件包都会在 /etc/nginx/modules-enabled 中写入自己的 load_module 指令,安装后即可生效,无需手动修改 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.4

HTTP/3 还需要发布 UDP 端口,而不只是 TCP 端口:docker run -d -p 80:80 -p 443:443 -p 443:443/udp codeitus/nginx

主要变更:

  • Feature: stream 和 mail 模块中的 “proxy_protocol” 指令现在支持 PROXY 协议版本 2。
  • Change: 现在对后端的 HTTP/2 和 gRPC 请求总是使用伪首部 “:authority” 发送,而对后端的 HTTP/1.1 请求则使用 “Host” 首部发送。
  • Bugfix: 如果使用了 “select” 方法,工作进程中可能会发生段错误。
  • Bugfix: 具有非零 “Content-Length” 首部行的、不完整的 gRPC 响应现在会被视为格式错误。
  • Bugfix: 修复了与使用脚本代码的第三方模块的二进制兼容性问题;该问题出现在 1.31.3 中。
  • Bugfix: 在 ngx_http_perl_module 中。
  • Bugfixes 于 HTTP/2、HTTP/3、ngx_http_image_filter_module 和 ngx_http_grpc_module。

安全更新:apr-util 1.6.5 RPM 和 DEB 软件包已发布

apr-util 1.6.5 已新增到 CodeIT 仓库。这些软件包适用于 RHEL、CentOS、AlmaLinux、Rocky Linux 和 Oracle Linux 7、8、9 和 10,以及 Ubuntu 22.04 和 24.04。

本次更新修复了安全漏洞,建议尽快升级。

主要变更:

  • 修复了在 1.6.4 中引入的 oracle DBD 编译错误。PR 70170。
  • apr_brigade: apr_brigade_split_line 不再分割最后的 LF,以避免生成空的 bucket。PR 64273
  • apr_brigade: apr_brigade_split_line、apr_brigade_flatten 和 apr_brigade_to_iovec 现在会忽略元数据 bucket,从而修复可能的未定义行为。PR 68278
  • apr_crypto_openssl: 与 OpenSSL 3 的兼容性。
  • apr_crypto_openssl: 使用 OPENSSL_init_crypto() 来在 1.1+ 版本上初始化 OpenSSL。
  • apr_memcache: 修复名称查找,使其同时支持 IPv6 和 IPv4。
  • configure: 使用强制严格 C99 兼容性的编译器修复了 Berkeley DB 的检测。PR 66396。

修复的漏洞:

  • SECURITY: CVE-2026-34502: APR memcached 客户端中的堆缓冲区溢出:Apache Portable Runtime Utility memcached 客户端中的基于堆的缓冲区溢出漏洞。该问题影响 Apache Portable Runtime Utility:从 1.3.0 到 1.6.3。
  • SECURITY: CVE-2026-34501: Apache Portable Runtime Utility:APR redis 客户端中的堆缓冲区溢出:Apache Portable Runtime Utility redis 客户端中的基于堆的缓冲区溢出漏洞。该问题影响 Apache Portable Runtime Utility:从 1.6.0 到 1.6.3。建议用户升级到 1.6.4 版本,该版本修复了该问题。
  • SECURITY: CVE-2026-34191: Apache Portable Runtime Utility:apr_dbd_oracle 中的 SQL 注入:通过 apr_dbd_oracle 提供程序的 Apache Portable Runtime Utility 漏洞中,使用于 SQL 命令(”SQL Injection”)的特殊元素的中和不当。该问题影响 Apache Portable Runtime Utility:从 1.6.0 到 1.6.3。建议用户升级到 1.6.4 版本,该版本修复了该问题。
  • SECURITY: CVE-2026-32327: Apache Portable Runtime Utility:apr-util XML 栈递归崩溃:APR-util 1.6.3 版本(以及更早版本)中的一个缺陷允许对任何解析来自不可信来源的 XML 且使用 apr_xml_quote_elem() 函数的库消费者发起栈递归攻击。建议用户升级到 1.6.4 版本,该版本修复了该问题。
  • SECURITY: CVE-2025-49506: apr_password_validate() 易受时序攻击影响:APR-util 1.6.3 版本(以及更早版本)中的 apr_password_validate() 函数在比较 hashes 或 passwords 时并非恒定时间,可能会通过时序攻击的侧信道泄露其内容,尤其是在没有 crypt() 的平台上,如 Windows、BeOS、NetWare 或 Android。建议用户升级到 1.6.4 版本,该版本修复了该问题。