云计算百科
云计算领域专业知识百科平台

nginx 1.29.5 发布:修复重大安全漏洞 CVE-2026-1642,全面优化 SSL、FastCGI、SCGI、uwsgi、Range 等模块!

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

nginx 在 2026 年 2 月正式发布了 1.29.5 mainline 版本。这次更新不仅是例行的功能与规范修订,更包含了一项至关重要的 严重安全漏洞修复 —— CVE-2026-1642。该漏洞涉及 SSL 上游注入攻击,攻击者可能通过特定方式在后端 SSL 响应中注入未经加密的明文数据,对用户隐私和传输安全造成威胁。

本次更新是对 1.29.4 版本的延续与强化,从底层 SSL 处理、FastCGI 参数配置到文档与编译优化,nginx 团队进行了全面完善与安全加固。这也是一次贯穿安全性、稳定性与可维护性的版本迭代。


二、核心安全更新:SSL 上游注入漏洞修复(CVE-2026-1642)

在 1.29.5 中,最重要的更新无疑是 SSL 上游注入漏洞(CVE-2026-1642) 的修复。

该漏洞允许攻击者在特定条件下将明文数据插入到来自 SSL 后端的响应中。这意味着,在某些代理或上游 SSL 会话中,如果未正确验证数据完整性,攻击者可能伪造或插入“不受加密保护”的数据。

nginx 在本次版本中加入了检测与拦截机制:

  • 增加了对 “upstream prematurely sent response” 的检测逻辑。
  • 一旦检测到后台 SSL 链路返回明文响应,系统将立即中止请求并标记为上游错误。
  • 相应的日志记录机制也进行了优化,确保管理员能快速定位异常。

这项修复强化了 nginx 在反向代理和安全会话管理中的防御能力,让它在处理 HTTPS 上游时更加稳健。


三、功能与性能优化汇总

nginx 1.29.5 的代码更新涉及 17 个提交、16 个修改文件,总计 167 行新增代码 与 19 行删除。这些改动覆盖多个模块、工具链与文档部分。

以下是主要更新点汇总:

(1)总体版本标识更新
  • src/core/nginx.h 中版本号从 1.29.4 更新为 1.29.5。
  • 同时更新内部常量 nginx_version 1029005。
(2)LICENSE 更新
  • 版权年份更新至 2026,标志着 nginx 核心代码版权继续延伸。
  • 文件中版权声明从 2025 年调整为 2026 年。
(3)SSL 模块改进与日志优化

在 src/event/ngx_event_openssl.c 文件中:

  • 增加对 SSL_R_TLSV1_ALERT_ECH_REQUIRED(1121) 的识别。
  • 调整 “ech_required” TLS 警告的日志等级,从 crit 降为 info,以减少不必要的高强度告警。

这使得管理员在运行时更容易区分真正的严重错误与普通的 TLS 提示。

(4)FastCGI、SCGI、uwsgi 三大后端协议改进

在这三个模块(ngx_http_fastcgi_module.c、ngx_http_scgi_module.c、ngx_http_uwsgi_module.c)中,新增了一个统一的初始化逻辑:

  • 新增 HTTP_HOST 参数传递机制,确保在代理到后端时,HTTP_HOST 能保持与请求目标一致。
  • 该参数组统一定义为:{ ngx_string("HTTP_HOST"), ngx_string("$host$is_request_port$request_port") }
  • 优化了 FastCGI、SCGI、uwsgi 的 init_params 调用,防止出现未设置主机头的情况。

这意味着,当 nginx 作为应用服务器代理时,后端脚本或应用不再因为缺失 HTTP_HOST 而解析异常。

(5)Range 模块的多区间响应修订

在 ngx_http_range_filter_module.c 中改进了多区间请求处理逻辑:

  • 引入变量 max_ranges 控制区间数量;
  • 增加了响应体与原始长度的比对限制;
  • 防止多区间请求生成比原文件更大的响应;
  • 对超大范围的响应增加合理的拒绝判定。

这部分改动实际提升了 nginx 在处理复杂 Range 请求时的性能与稳定性,避免资源浪费和潜在的内存异常。

(6)Proxy v2 修复请求体处理逻辑

文件 ngx_http_proxy_v2_module.c 中:

  • 在请求重建函数中新增 ctx->in 与 ctx->busy 初始化清空,确保跨请求的请求体不残留。

这解决了在代理多阶段通信中,缓冲区未正确释放的问题。

(7)Upstream 模块稳定性提升

在 ngx_http_upstream.c 与 ngx_http_upstream.h 文件中:

  • 增加 response_received 状态标识;
  • 优化 ngx_http_upstream_connect 与 ngx_http_upstream_process_header 两个核心函数。

优化逻辑包括:

  • 当检测到 SSL 后端未建立却已返回响应时,立刻终止处理;
  • 避免重复写请求——即一旦接收到响应就不再尝试重新初始化;
  • 增强重入防护,防止 use-after-free 场景。

这些改动显著提升了上游代理在 gRPC 与 HTTP/2 连接中的安全与稳定性。

(8)Win32 构建环境优化

在代码文件 src/os/win32/ngx_shmem.c 中:

  • 修正了 Windows 平台下共享内存地址计算错误,
    将 base += ngx_align(size, ngx_allocation_granularity); 改为
    base += ngx_align(shm->size, ngx_allocation_granularity);。

此举避免了错位内存映射,提升 Windows x86 编译稳定性。

与此同时 misc/GNUmakefile 更新了以下关键构建库:

  • OpenSSL 从 3.5.4 升级到 3.5.5;
  • PCRE2 从 10.46 升级到 10.47;
  • 保持 Zlib 1.3.1 不变。

这些变化确保了 nginx 在 Windows 环境下拥有更高的编译兼容性与安全加密支持。


四、文档与开发者体验更新

(1)bug_report.yml 重复 ID 修复

.github/ISSUE_TEMPLATE/bug_report.yml 修复了两个字段重复定义的错误:

  • id: environment 改为 id: version
  • 以及另一个 id: environment 改为 id: architecture

此修订确保 GitHub 提交问题模板不会出现字段冲突,改善了社区反馈体验。

(2)man 手册优化:测试参数说明更明确

docs/man/nginx.8 文件中彻底更新了文档说明:

  • 文档日期改为 2026 年 1 月 21 日;
  • 增加说明:「-t」选项在测试配置文件时,会尝试打开配置文件中引用的文件,并 绑定到配置的监听地址;

此更新让系统管理员在调试 nginx 配置时,更清楚测试的实际行为,不再误认为「仅语法检查」。

(3)ZIP 打包行为调整

GNUmakefile 中重构了文档移动脚本:

  • 生成 ZIP 包时,原先分散的文档(README、LICENSE、CODE_OF_CONDUCT 等)被统一移动到 docs.new 目录;
  • 保持归档结构更简洁,同时避免文档重复。

该调整优化了 Windows 构建包结构,使得源代码发布更符合标准工程格式。

(4)官方变更记录 xml 更新

docs/xml/nginx/changes.xml 文件新增了 1.29.5 的完整变更描述,包括:

  • 安全更新(CVE-2026-1642)
  • 多项 bugfix:FastCGI/SCGI/uwsgi HTTP_HOST 修复、Range 多区间响应修正、MSVC 2022 x86 编译警告消除
  • 日志等级优化
  • 新增日期 2026-02-04。

从文件结构上看,该 xml 仍保留中英双语说明,为维护者与国际用户同时提供参考。


五、范围性总结与版本意义

本次 nginx 1.29.5 版本在功能层面没有引入新的特性接口,但每一项改动都对应着实际运行稳定性的提升。总结其意义如下:

  • 安全级别提升
    修复 CVE-2026-1642 是核心亮点,防止 SSL 会话明文数据被恶意注入,这直接增强了反向代理的安全防御能力。

  • 构建链升级
    新的 OpenSSL、PCRE2 提供更强的加密与正则性能,同时 MSVC 的警告修正为 Windows 用户提供更佳的开发体验。

  • 模块一致性增强
    FastCGI、SCGI、uwsgi 三者的参数统一,使得多后端协作环境更加一致,减少因头部设置缺失导致的后端错误。

  • 性能与内存管理优化
    Proxy v2、Upstream、Range 模块的改进均聚焦在性能与稳定性上,有效防止潜在的越界与内存释放问题。

  • 文档与开发友好度提升
    Man 页面、Issue Template、ZIP 打包、版权声明的修订保证了更良好的维护体验,为长期生态提供支持。


  • 六、开发者与管理员建议

    针对升级到 nginx 1.29.5 的用户,建议:

    • 立即升级生产环境:CVE-2026-1642 为安全性漏洞,建议尽快替换此前版本。
    • 验证 SSL 上游配置:检查是否有自定义上游 SSL 封装逻辑,确保与新版检测机制兼容。
    • 确认 FastCGI 等代理模块正常传递 HTTP_HOST:如果有依赖该头部的后端应用,升级后无需额外调整。
    • 执行配置文件测试:使用 nginx -t 检查配置,并确认监听端口绑定测试通过。
    • 重新构建 Windows 版本:使用最新的 OpenSSL 与 PCRE2,保证编译结果与官方一致。

    七、结语

    代码地址:github.com/nginx/nginx

    nginx 1.29.5 是一次兼顾安全、稳定与长期维护的重要发布。
    它修复了潜伏多年的 SSL 上游注入安全隐患,优化了多协议代理的兼容性,同时完善了日志与文档体系。

    从源码的几十行变更背后,可以看出 nginx 团队对细节的关注——无论是一个日志等级,还是一个内存偏移,都直接关系到数百万应用的运行稳定性。

    对于使用 nginx 作为反向代理、API 网关、负载均衡或应用服务器的开发者而言,1.29.5 是一个安全和性能的双重里程碑版本。


    总结要点:

    • 版本号更新:1.29.5
    • 发布日期:2026-02-04
    • 核心安全修复:CVE-2026-1642(SSL 上游注入)
    • 模块优化:SSL、FastCGI、SCGI、uwsgi、Range、Proxy v2、Upstream、Win32
    • 构建库升级:OpenSSL 3.5.5、PCRE2 10.47
    • 文档与版权:全面更新至 2026
    • 推荐操作:立即升级所有生产环境。
    赞(0)
    未经允许不得转载:网硕互联帮助中心 » nginx 1.29.5 发布:修复重大安全漏洞 CVE-2026-1642,全面优化 SSL、FastCGI、SCGI、uwsgi、Range 等模块!
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!