nginx 1.27.4 的主分支已经发布,其中正在开发新功能,以及 nginx 1.26.3 的并行稳定分支,其中仅包含与消除严重错误和漏洞相关的更改。此更新修复了一个允许绕过客户端 TLS 证书验证的漏洞 (CVE-2025-23419)。
该漏洞源于处理绑定到单个 IP 地址和端口号的虚拟主机时缺乏适当的验证,这些虚拟主机是在 HTTPS 访问期间根据使用 SNI TLS 扩展指定的域名选择的。在这种配置下,攻击者可以在不同的虚拟主机上下文中重用 TLS 会话,从而绕过使用客户端 TLS 证书的身份验证。该问题会在支持使用“TLS 会话票证”恢复 TLS 会话或在设置中使用 TLS 会话缓存的配置中显现出来。 伺服器 默认情况下,nginx 使用客户端 TLS 证书进行身份验证。该漏洞自 nginx 1.11.4 版本发布以来就存在,尤其是在使用 OpenSSL 构建并启用 TLSv1.3 协议时。
与安全无关的变化:
- 增加了在具有大量服务器和位置块的配置中使用 TLS 时减少资源消耗和 CPU 负载的功能。添加的更改允许使用父块中现有的 SSL 上下文,而不是为每个配置块创建单独的 SSL 上下文(OpenSSL 中的 SSL_CTX)。
- 修复了由于重复解析同一组配置文件而导致的配置文件加载时间过长的问题 TLS证书密钥和证书颁发机构列表。通过重用未更改的 TLS 对象(例如证书、密钥和 CRL),配置重新加载速度得到了提升。“ssl_object_cache_inheritable”指令用于在配置更新期间禁用对象继承。
- 增加了使用指令中的变量加载的证书和密钥的缓存(例如“ssl_certificate /etc/ssl/$ssl_server_name.crt”)。已添加指令“ssl_certificate_cache”、“proxy_ssl_certificate_cache”、“grpc_ssl_certificate_cache”和“uwsgi_ssl_certificate_cache”来管理缓存。指定的指令允许您配置最大缓存大小、记录的有效期以及清理未使用的记录的时间。例如:“ssl_certificate_cache max=1000 inactive=20s valid=1m;”。
- 添加了“keepalive_min_timeout”指令,该指令定义了 nginx 不会关闭与客户端的保持连接超时时间。
- 使用 zlib-ng 库构建时出现日志消息“gzip 过滤器无法使用预分配内存”的问题已解决。
- 修复使用“--with-libatomic=DIR”构建选项构建 libatomic 库时出现的问题
- 修复了使用 0-RTT 时无法通过 QUIC 协议建立连接的错误。
- 确保忽略来自客户端的 QUIC 版本协商请求。
- 解决了使用 ngx_http_v10_module 模块在 Solaris 3 上构建的问题。
- HTTP/3 实现中的错误已得到修复。
来源: opennet.ru
