Nginx 发布了 1.27.4 版本,该版本包含了重要的安全修复、功能增强以及几个修复程序。以下是此次版本的关键更新内容:
- 安全性修复:
TLSv1.3 中的虚拟服务器处理不充分检查 (CVE-2025-23419)
漏洞描述:在 Nginx 的 TLSv1.3 实现中,存在一个安全漏洞,允许 SNI (Server Name Indication) 在不同的虚拟服务器之间重用 SSL 会话,从而绕过客户端 SSL 证书验证。
影响:攻击者可能通过此漏洞,在不同虚拟服务器之间重用 SSL 会话,进而绕过 SSL 客户端证书验证,造成安全隐患。
修复:Nginx 在此版本中加强了 SNI 的会话管理,防止了会话被错误地重用。
- 新增功能:
新增缓存 SSL 证书和密钥的配置项
配置项:ssl_object_cache_inheritable、ssl_certificate_cache、proxy_ssl_certificate_cache、grpc_ssl_certificate_cache、uwsgi_ssl_certificate_cache。
作用:这些指令用于配置缓存 SSL 证书和密钥,减少每次请求时重新加载证书的开销,提升性能。
适用场景:
ssl_certificate_cache:用于缓存本地 SSL 证书。
proxy_ssl_certificate_cache:用于代理请求时缓存 SSL 证书。
grpc_ssl_certificate_cache 和 uwsgi_ssl_certificate_cache:分别适用于 gRPC 和 uWSGI 的代理场景。
keepalive_min_timeout 指令
功能:新的 keepalive_min_timeout 指令可以设置最小的 HTTP keep-alive 超时时间。
作用:可以防止客户端和服务器之间的长时间连接超时,提升连接保持的灵活性。
- 其他修复与改进:
Zlib-ng 的 gzip 过滤器问题
问题:当使用 zlib-ng 时,日志中会显示“gzip filter failed to use preallocated memory”警告信息。
修复:Nginx 对此问题进行了修复,避免了这种警告。
构建 libatomic 库时的问题
问题:Nginx 在使用 --with-libatomic=DIR 选项时,无法正确构建 libatomic 库。
修复:此问题已被修复,确保在编译时不会出现构建错误。
QUIC 连接问题修复
问题:在使用 0-RTT 时,QUIC 连接可能无法建立。
修复:Nginx 修复了该问题,使 QUIC 连接可以正确建立。
QUIC 版本协商问题
修复:Nginx 现在会忽略来自客户端的 QUIC 版本协商数据包,确保 QUIC 的连接协商不受影响。
- 对 Solaris 10 及更早版本的修复:
问题:Nginx 无法在 Solaris 10 及更早版本中构建并启用 ngx_http_v3_module。
修复:此问题已得到修复,确保在这些操作系统版本上可以正常构建和使用 HTTP/3。
- HTTP/3 相关修复:
修复:针对 HTTP/3 协议的一些已知问题进行了修复,提升了协议的稳定性和性能。
总结:
Nginx 1.27.4 版本不仅修复了严重的安全漏洞(CVE-2025-23419),还引入了 SSL 证书缓存、keepalive_min_timeout 等新功能,可以帮助用户优化性能并增加灵活性。此外,多个 BUG 修复和对 QUIC、HTTP/3 的改进,使得本版本在性能和兼容性上有所提升。
对于网站管理员来说,升级到 1.27.4 版本 不仅可以提高安全性和性能,同时还带来了一些实用的新功能,特别是涉及 SSL 证书缓存和长连接超时的配置。
相关更新地址:
https://nginx.org/en/CHANGES