🤖 AI总结
主题
nginx 1.31.7主线版本发布,修复5个安全漏洞并带来多项协议与模块更新。
摘要
nginx 1.31.7发布,修复5个安全漏洞,涉及alias与rewrite缓冲区溢出、变量表达式溢出、HTTP/3请求体注入、TLS会话伪造及SSI与AIO释放后使用,同时升级HTTP/2优先级、QUIC、GeoIP2等能力。
关键信息
- 1 修复alias与rewrite、变量表达式、HTTP/3、TLS会话票据、SSI与AIO等5个安全漏洞
- 2 HTTP/2支持RFC 9218可扩展优先级方案,QUIC新增BPF重载与二进制升级能力
- 3 新增GeoIP2 HTTP与Stream模块支持,Dav模块alias场景下COPY和MOVE目标地址校验
![]()
![]()
![]()
2026年10月15日,nginx 发布 mainline 主线版本 nginx 1.31.7。本次版本不仅带来了 HTTP/2、HTTP/3、QUIC、SSL、GeoIP2、Dav 等多个模块和协议层面的改进,更集中修复了 5 个安全漏洞,涉及 alias 与 rewrite 配置组合、变量字符串表达式、HTTP/3 请求体、TLS 会话票据密钥轮换,以及 SSI 与 AIO 的组合使用场景。
对于使用 nginx 承担 Web 服务、反向代理、静态资源分发、TLS 终止、HTTP/2、HTTP/3 或 QUIC 流量接入的用户来说,nginx 1.31.7 是一次需要重点关注的安全与功能更新。
一、nginx 1.31.7发布信息概览
版本名称:
release-1.31.7
版本类型:
nginx-1.31.7 mainline version
发布日期:
2026年10月15日
本次版本的更新范围覆盖:
• 安全漏洞修复
• Dav 模块 COPY 和 MOVE 请求处理
• SSL 连接错误处理与证书地址匹配
• TLS 会话票据密钥同步
• HTTP/2 RFC 9218 可扩展优先级方案
• HTTP/3 请求体处理
• QUIC BPF 重载和二进制升级
• QUIC 旧版本二进制升级兼容
• GeoIP2 HTTP 与 Stream 模块支持
• Windows 构建所使用的 OpenSSL 和 PCRE 更新
• buffer-size 指令参数校验
• 上游缓存文件中的 X-Accel-Redirect 处理修复
• 每个请求的挂起操作数量限制
• rewrite 与 alias 组合下的 URI 到路径映射处理修复
• ngx_http_script_run() 内存越界保护
本次 GitHub 发布摘要显示,共有 11 位贡献者参与,包含 26 个提交,涉及 57 个文件变更。
二、5个安全漏洞修复:升级 nginx 1.31.7 的核心原因
nginx 1.31.7 修复了 5 个安全漏洞。此次漏洞修复横跨 HTTP 请求路径映射、变量表达式计算、HTTP/3 协议数据处理、TLS 会话票据密钥轮换以及 SSI 异步 I/O 处理。
对于生产环境而言,尤其应结合自身 nginx 配置和已启用模块进行评估。
1. alias 与 rewrite 组合使用时的缓冲区溢出漏洞
漏洞编号:
CVE-2026-15176
漏洞描述:
当使用 alias 与 rewrite 时,可能出现缓冲区溢出漏洞。
本次修复对应的提交内容为:
Avoid post-rewrite URI to path mapping with alias
该问题的核心场景是 rewrite 处理之后的 URI 与 alias 的路径映射关系。当 alias 配置参与 URI 到文件路径的映射,同时请求又经过 rewrite 处理时,nginx 需要正确处理重写后的 URI,避免出现不安全的路径映射和缓冲区操作。
对于配置了静态文件服务、目录映射、文件下载、资源代理,且同时使用 rewrite 与 alias 的环境,此项修复需要重点关注。
相关 Dav 更新也涉及 alias 场景。本次版本增加了 COPY 和 MOVE 请求在使用 alias 时的目标地址校验,进一步加强了与 alias 相关的请求处理安全性。
2. 含变量字符串表达式计算时的缓冲区溢出漏洞
漏洞编号:
CVE-2026-93479
漏洞描述:
在计算包含变量的字符串表达式时,可能存在缓冲区溢出漏洞。
本次修复对应的提交内容为:
Script: reserved memory overrun protection in ngx_http_script_run()
该修复针对 ngx_http_script_run() 中预留内存的越界保护。
nginx 配置中存在大量可使用变量的场景。变量可以参与 URI、请求头、重定向、代理参数、日志字段以及其他字符串表达式的构建。当 nginx 在运行时对包含变量的表达式进行计算时,需要确保预留的内存空间不会发生越界访问。
此次更新为 ngx_http_script_run() 增加了预留内存越界保护,用于修复变量字符串表达式计算可能触发的缓冲区溢出问题。
3. HTTP/3 请求体注入漏洞
漏洞编号:
CVE-2026-95101
漏洞描述:
HTTP/3 中存在请求体注入漏洞。
本次修复对应的提交内容为:
HTTP/3: kept the skipped frame length separate from data length
该项修复涉及 HTTP/3 对帧数据的处理。更新后,被跳过帧的长度与数据长度将被分别保存和处理。
HTTP/3 建立在 QUIC 之上,帧解析和数据长度处理是协议实现中的关键部分。若被跳过帧长度与实际数据长度处理不当,可能影响请求体数据的边界判断,从而带来请求体注入风险。
本次修复通过将 skipped frame length 与 data length 分离,避免二者在处理过程中混淆,修复 HTTP/3 请求体注入问题。
对于已启用 HTTP/3 或 QUIC 的 nginx 部署环境,这一漏洞修复具有直接意义。
4. TLS 会话票据密钥轮换场景下的会话伪造漏洞
漏洞编号:
CVE-2026-97629
漏洞描述:
使用 TLS session ticket key rotation,即 TLS 会话票据密钥轮换时,可能出现会话伪造漏洞。
本次修复对应的提交内容为:
SSL: synced all session ticket keys to the worker process
修复内容是将所有会话票据密钥同步到 worker 进程。
TLS 会话票据用于支持 TLS 会话恢复。会话票据密钥轮换场景下,多个 worker 进程需要正确获取和使用会话票据密钥。若密钥同步机制不完整,可能影响 TLS 会话票据的校验与管理,进而形成会话伪造风险。
nginx 1.31.7 针对这一问题改进了 session ticket key 的同步方式,使全部会话票据密钥能够同步到 worker 进程。
如果 nginx 配置中使用了 TLS 会话票据,并存在会话票据密钥轮换机制,应重点关注该安全修复。
5. ngx_http_ssi_module 与 AIO 组合使用时的释放后使用漏洞
漏洞编号:
CVE-2026-97205
漏洞描述:
使用 ngx_http_ssi_module 与 AIO 时,可能存在 use-after-free,也就是释放后使用漏洞。
该问题涉及 SSI 模块与异步 I/O 的组合场景。
SSI 模块用于服务器端包含处理,AIO 用于异步 I/O 处理。当二者共同使用时,资源生命周期管理需要保证对象在异步操作完成前保持有效。若对象已经释放但后续流程继续使用该对象,就可能形成释放后使用问题。
nginx 1.31.7 修复了 ngx_http_ssi_module 与 AIO 组合使用时的这一风险。
对于启用了 SSI 功能,并同时使用 AIO 的环境,应将此项修复列为重点升级原因之一。
三、Dav模块更新:COPY和MOVE在alias场景下新增目标地址校验
本次版本中,Dav 模块针对 COPY 和 MOVE 请求增加了与 alias 相关的目标地址校验。
对应更新内容:
Dav: destination validation for COPY and MOVE with "alias"
Dav 模块支持 WebDAV 相关方法,COPY 和 MOVE 用于资源复制和移动。
当配置中使用 alias 时,资源 URI 与文件系统路径之间存在映射关系。COPY 与 MOVE 操作不仅涉及源资源,也涉及目标地址。对于目标地址进行校验,可以避免 alias 场景下目标资源处理出现不符合预期的情况。
这一更新与本次 alias 和 rewrite 组合相关的安全修复共同构成了 nginx 1.31.7 对路径映射和资源处理逻辑的加强。
四、SSL更新:连接错误处理、证书IP地址支持与地址匹配优化
nginx 1.31.7 在 SSL 方面包含多项更新,涉及连接读取错误、连接关闭、证书日志、subjectAltName 中的 IP 地址支持,以及 IP 地址匹配规则。
1. 连接重置导致 SSL_read() 出错时设置连接错误状态
对应更新内容:
SSL: set c->error on connection reset SSL_read() error
同时,本次版本还包含以下相关改进:
SSL: avoid writing to a connection with a failed read
SSL: clarified clean shutdown condition
当 SSL_read() 因连接重置而失败时,nginx 将设置连接错误状态。
此外,当连接读取已经失败时,nginx 将避免继续向该连接写入数据。
同时,版本中还对 clean shutdown,也就是正常关闭条件进行了说明和澄清。
这些更新加强了 SSL 连接生命周期中的错误状态处理,特别是读取失败、连接重置和后续写入行为之间的处理关系。
2. 证书支持 iPAddress 类型的 subjectAltName
对应更新内容:
SSL: support for iPAddress subjectAltName in certificates
此次 nginx 1.31.7 增加了对证书中 iPAddress 类型 subjectAltName 的支持。
subjectAltName 是证书中的主题备用名称字段。除域名外,证书还可以包含 IP 地址形式的标识。本次更新使 nginx 能够支持证书中的 iPAddress subjectAltName。
与此相关的其他更新包括:
SSL: fixed subjectAltName and commonName debug logging
SSL: avoid matching IP addresses in dNSName and commonName
其中:
• 修复了 subjectAltName 和 commonName 的调试日志。
• 避免将 IP 地址与 dNSName 和 commonName 进行匹配。
• 对 IP 地址形式的身份标识,使用 iPAddress subjectAltName 支持进行处理。
这一变化使证书中的域名信息与 IP 地址信息在匹配逻辑上得到更明确的区分。
五、HTTP/2支持RFC 9218可扩展优先级方案
nginx 1.31.7 在 HTTP/2 方面实现了 RFC 9218 Extensible Prioritization Scheme for HTTP,即 HTTP 的可扩展优先级方案。
发布摘要中的总体描述为:
HTTP/2: implement RFC 9218 Extensible Prioritization Scheme for HTTP
本次 HTTP/2 优先级相关提交包括:
Add RFC 9218 priority types and parser
HTTP/2: handle PRIORITY_UPDATE frames
HTTP/2: parse Priority request header
HTTP/2: merge upstream Priority header for proxied requests
HTTP/2: switch to RFC 9218 priorities
本次更新包含以下内容:
• 增加 RFC 9218 优先级类型与解析器。
• 支持处理 PRIORITY_UPDATE 帧。
• 支持解析 Priority 请求头。
• 对于代理请求,合并来自上游的 Priority 响应头。
• HTTP/2 优先级机制切换至 RFC 9218 优先级方案。
HTTP/2 的优先级机制用于表达不同请求或资源的处理优先级。此次 nginx 1.31.7 对优先级机制进行更新,完成对 RFC 9218 可扩展优先级方案的实现。
对于使用 HTTP/2 的站点、代理服务和上游服务场景,此项功能更新是本次版本的重要协议层变更之一。
六、QUIC更新:BPF重载、二进制升级和旧版本升级修复
nginx 1.31.7 对 QUIC 提供了多项改进,包括 BPF 数据回退、BPF 重载、二进制升级,以及从旧版本进行二进制升级时的修复。
相关更新包括:
QUIC: added BPF packet data fallback
QUIC: support BPF reload and binary upgrade
QUIC: fixed binary upgrade from older versions
此外,还包括:
QUIC: fixed frame threshold with a small stream buffer size
本次 QUIC 更新可归纳为以下几个方面。
1. 增加BPF数据包数据回退机制
nginx 1.31.7 增加了 BPF packet data fallback。
对应内容:
QUIC: added BPF packet data fallback
该更新属于 QUIC 和 BPF 相关的数据处理改进。
2. 支持BPF重载和二进制升级
对应内容:
QUIC: support BPF reload and binary upgrade
nginx 1.31.7 增加 QUIC 的 BPF reload 和 binary upgrade 支持。
这意味着 QUIC 相关的 BPF 处理能够支持重载和二进制升级流程。
3. 修复从旧版本进行二进制升级的问题
对应内容:
QUIC: fixed binary upgrade from older versions
该项修复针对从较旧版本进行二进制升级的场景。
对于已经部署 QUIC 且计划执行二进制升级的环境,这一修复具有直接关联。
4. 修复较小流缓冲区大小下的帧阈值问题
对应内容:
QUIC: fixed frame threshold with a small stream buffer size
当 stream buffer size 较小时,QUIC 的 frame threshold 处理存在需要修复的问题。
nginx 1.31.7 已修复这一场景下的帧阈值处理。
七、HTTP/3更新:修复跳过帧长度与数据长度处理问题
HTTP/3 方面,本次版本包含一项与请求体注入漏洞直接相关的修复:
HTTP/3: kept the skipped frame length separate from data length
该修复将被跳过帧的长度与数据长度分别保存。
这项改动已经用于修复 CVE-2026-95101,即 HTTP/3 请求体注入漏洞。
对于启用 HTTP/3 的 nginx 服务,应特别关注此次 HTTP/3 帧处理逻辑的变化。
八、GeoIP2支持:新增GeoIP2 HTTP与Stream模块能力
nginx 1.31.7 增加 GeoIP2 支持。
发布摘要中的描述为:
GeoIP2: support for GeoIP2 http & stream modules
相关提交内容为:
GeoIP: support for the MaxMind DB (MMDB) databases
本次更新包含以下方向:
• 支持 GeoIP2 HTTP 模块。
• 支持 GeoIP2 Stream 模块。
• 支持 MaxMind DB,也就是 MMDB 数据库。
这意味着 nginx 1.31.7 在 GeoIP 相关能力上扩展到了 GeoIP2 和 MaxMind DB 数据库支持范围,并覆盖 HTTP 与 Stream 模块场景。
九、配置校验加强:拒绝buffer-size指令设置为零
本次版本加强了 buffer-size 指令的参数校验。
对应内容:
Rejected zero size in buffer-size directives
nginx 1.31.7 将拒绝在 buffer-size 指令中配置零大小。
缓冲区大小相关配置是 nginx 请求处理和数据传输中的基础配置项。此次更新明确拒绝零大小参数,增强了配置处理的约束。
十、上游模块修复:缓存文件中的X-Accel-Redirect处理
本次更新修复了上游模块从缓存文件处理 X-Accel-Redirect 时的问题。
对应内容:
Upstream: fixed X-Accel-Redirect handling from cache files
X-Accel-Redirect 用于内部重定向处理。本次修复聚焦于来自缓存文件的 X-Accel-Redirect 处理流程。
对于使用上游缓存和 X-Accel-Redirect 的环境,应关注这一修复。
十一、请求处理更新:限制每个请求的挂起操作数量
nginx 1.31.7 增加了每个请求的挂起操作数量限制。
对应内容:
Limited the number of pending operations per request
该更新对单个请求中处于 pending 状态的操作数量进行限制。
这一变更涉及请求处理过程中的操作管理。
十二、Windows构建依赖更新:OpenSSL和PCRE同步升级
本次版本更新了 Windows 构建所使用的 OpenSSL 和 PCRE。
对应内容:
Updated OpenSSL and PCRE used for win32 builds
该更新针对 win32 构建环境。
十三、nginx 1.31.7提交时间线梳理
本次版本的相关提交分布在 2026年9月16日 至 2026年10月2日。
2026年9月16日
包含以下更新:
Dav: destination validation for COPY and MOVE with "alias"
Version bump
2026年9月25日
包含 SSL 相关更新:
SSL: clarified clean shutdown condition
SSL: avoid writing to a connection with a failed read
SSL: fixed subjectAltName and commonName debug logging
SSL: support for iPAddress subjectAltName in certificates
SSL: avoid matching IP addresses in dNSName and commonName
2026年9月26日
包含以下更新:
Rejected zero size in buffer-size directives
QUIC: fixed frame threshold with a small stream buffer size
2026年9月29日
包含 HTTP/2 RFC 9218 优先级方案相关更新:
Add RFC 9218 priority types and parser
HTTP/2: handle PRIORITY_UPDATE frames
HTTP/2: parse Priority request header
HTTP/2: merge upstream Priority header for proxied requests
HTTP/2: switch to RFC 9218 priorities
2026年9月30日
包含 QUIC 与 Windows 构建相关更新:
QUIC: added BPF packet data fallback
QUIC: support BPF reload and binary upgrade
QUIC: fixed binary upgrade from older versions
Updated OpenSSL and PCRE used for win32 builds
2026年10月1日
包含 GeoIP 和上游模块相关更新:
GeoIP: support for the MaxMind DB (MMDB) databases
Upstream: fixed X-Accel-Redirect handling from cache files
2026年10月2日
包含多项安全修复和请求处理更新:
Limited the number of pending operations per request
HTTP/3: kept the skipped frame length separate from data length
SSL: synced all session ticket keys to the worker process
Script: reserved memory overrun protection in ngx_http_script_run()
Avoid post-rewrite URI to path mapping with alias
nginx-1.31.7-RELEASE
十四、nginx 1.31.7更新重点汇总
nginx 1.31.7 的更新可以概括为五个重点方向。
第一,安全漏洞修复。
本次共修复 5 个安全漏洞,分别涉及:
• alias 与 rewrite 组合下的缓冲区溢出。
• 变量字符串表达式计算时的缓冲区溢出。
• HTTP/3 请求体注入。
• TLS 会话票据密钥轮换时的会话伪造。
• ngx_http_ssi_module 与 AIO 组合下的释放后使用。
第二,HTTP/2优先级机制升级。
nginx 1.31.7 实现 RFC 9218 可扩展优先级方案,支持优先级类型、解析器、PRIORITY_UPDATE 帧、Priority 请求头以及代理请求中的上游 Priority 响应头合并。
第三,QUIC与HTTP/3能力完善。
QUIC 新增 BPF 数据包数据回退,支持 BPF 重载和二进制升级,修复旧版本二进制升级问题,并修复小流缓冲区下的帧阈值问题。
HTTP/3 则修复了跳过帧长度和数据长度处理问题,对应请求体注入漏洞修复。
第四,SSL与TLS处理增强。
包括连接重置时的 SSL_read() 错误状态处理、读取失败后避免写入、正常关闭条件说明、iPAddress subjectAltName 支持、证书调试日志修复、IP 地址匹配规则优化,以及会话票据密钥同步至 worker 进程。
第五,模块与配置能力扩展。
包括 Dav 模块 alias 场景下 COPY 和 MOVE 的目标地址校验、GeoIP2 HTTP 与 Stream 模块支持、MaxMind DB 支持、buffer-size 零值拒绝、缓存文件中的 X-Accel-Redirect 修复,以及每个请求挂起操作数量限制。
十五、结语
代码地址:github.com/nginx/nginx
nginx 1.31.7 是一次覆盖面较广的主线版本更新。
从安全层面看,alias 与 rewrite、变量表达式、HTTP/3、TLS session ticket key rotation、SSI 与 AIO 等场景均获得修复。
从协议能力看,HTTP/2 迎来 RFC 9218 可扩展优先级方案支持,QUIC 增加 BPF 重载与二进制升级能力,HTTP/3 的帧长度处理逻辑得到修复。
从模块能力看,GeoIP2 HTTP 与 Stream 模块支持、MaxMind DB 支持、Dav 在 alias 场景下的 COPY 和 MOVE 目标校验,也使 nginx 1.31.7 在功能完整性方面进一步增强。
对于使用 mainline 版本、启用 HTTP/2、HTTP/3、QUIC、TLS 会话票据、SSI、AIO、alias、rewrite、Dav、GeoIP 或 Stream 模块的环境,nginx 1.31.7 值得重点评估与关注。
我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。