


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
- 推荐操作:立即升级所有生产环境。
网硕互联帮助中心




评论前必须登录!
注册