首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >nginx 1.28.3 稳定版全解析:6 大 CVE 修复、核心模块优化与代码变更详解

nginx 1.28.3 稳定版全解析:6 大 CVE 修复、核心模块优化与代码变更详解

作者头像
福大大架构师每日一题
发布2026-03-31 21:25:25
发布2026-03-31 21:25:25
2710
举报
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

前言

2026年3月25日,nginx官方正式发布nginx 1.28.3 stable version稳定版本,本次版本为1.28稳定分支的重要安全更新,聚焦于修复多个高危安全漏洞,同时对QUIC、MP4、邮件、Stream等核心模块进行缺陷修复,并同步升级Windows平台编译依赖的OpenSSL、zlib、PCRE2库版本,进一步提升服务安全性与运行稳定性。

本次更新共计19次提交、14个文件变更、4位开发者参与,代码层面新增395行、删除108行,修复了包括缓冲区溢出、整数溢出、段错误、OCSP绕过、DNS注入等在内的多项安全问题,覆盖ngx_http_dav_module、ngx_http_mp4_module、邮件模块、Stream模块等核心组件,所有运行nginx 1.28.x分支的生产环境均建议尽快升级至1.28.3版本,避免漏洞被利用导致服务异常、数据泄露或权限越界等安全风险。

本文将基于官方发布日志、GitHub提交记录与代码变更详情,对nginx 1.28.3版本的更新内容进行全面拆解,涵盖安全漏洞修复明细、核心模块优化细节、依赖库升级内容、代码级改动解析,为运维工程师、后端开发者、架构师提供完整的版本升级参考。

一、nginx 1.28.3版本基础信息

1.1 版本发布信息

  • • 版本号:nginx 1.28.3
  • • 版本类型:Stable stable version(稳定版)
  • • 发布时间:2026年3月25日
  • • 代码提交:19 commits
  • • 变更文件:14 files changed
  • • 贡献者:4 contributors
  • • 代码变动:395 additions、108 deletions

1.2 版本核心定位

nginx 1.28.3属于1.28稳定分支的安全补丁版本,无新增功能特性,全部更新围绕安全漏洞修复、模块缺陷修复、依赖库更新、代码健壮性优化展开,重点解决影响服务安全与稳定运行的高危漏洞,适用于所有生产环境、测试环境的nginx 1.28.x版本升级。

二、6大CVE安全漏洞完整修复明细

本次nginx 1.28.3版本共修复6个CVE编号的安全漏洞,覆盖WebDAV模块、MP4模块、邮件认证模块、Stream SSL模块,漏洞类型包含缓冲区溢出、整数溢出、段错误、认证绕过、DNS注入、OCSP绕过,以下为每个漏洞的详细说明:

2.1 CVE-2026-27654:ngx_http_dav_module缓冲区溢出漏洞

  • • 漏洞模块:ngx_http_dav_module(WebDAV模块)
  • • 漏洞场景:处理COPY/MOVE请求时,在配置alias的location中触发缓冲区溢出
  • • 漏洞危害:攻击者可构造恶意请求,修改源路径或目标路径,越出document root范围,实现目录穿越、文件读写等恶意操作
  • • 修复方式:新增Destination头部长度校验,当配置alias且目标URI长度小于alias长度时,直接返回400 Bad Request,阻断恶意请求
  • • 致谢:Calif.io、Claude、Anthropic Research

2.2 CVE-2026-27784:ngx_http_mp4_module 32位平台缓冲区溢出漏洞

  • • 漏洞模块:ngx_http_mp4_module(MP4文件处理模块)
  • • 漏洞场景:32位操作系统平台下,处理构造恶意MP4文件时触发缓冲区溢出
  • • 漏洞危害:导致worker进程崩溃(拒绝服务),存在远程代码执行潜在风险
  • • 修复方式:校验stss原子中的同步样本值,修复32位平台整数溢出问题,避免零长度缓冲区输出
  • • 致谢:Prabhav Srinath (sprabhav7)

2.3 CVE-2026-32647:ngx_http_mp4_module通用缓冲区溢出漏洞

  • • 漏洞模块:ngx_http_mp4_module(MP4文件处理模块)
  • • 漏洞场景:全平台处理恶意构造的MP4文件时触发缓冲区溢出
  • • 漏洞危害:worker进程异常崩溃,服务不可用,存在未明确的潜在安全影响
  • • 修复方式:优化MP4文件原子解析逻辑,增加边界校验,修复样本索引与偏移量计算缺陷
  • • 致谢:Xint Code、Pavel Kohout (Aisle Research)

2.4 CVE-2026-27651:邮件模块CRAM-MD5/APOP认证段错误漏洞

  • • 漏洞模块:nginx邮件代理模块
  • • 漏洞场景:启用CRAM-MD5或APOP认证方式,且允许认证重试时,触发段错误(segmentation fault)
  • • 漏洞危害:邮件代理worker进程崩溃,邮件服务中断
  • • 修复方式:修复认证过程中内存清理逻辑,避免非法内存访问
  • • 致谢:Arkadi Vainbrand

2.5 CVE-2026-28753:邮件模块DNS PTR记录注入漏洞

  • • 漏洞模块:nginx邮件代理模块
  • • 漏洞场景:攻击者利用DNS PTR记录,向auth_http请求、后端SMTP的XCLIENT命令注入恶意数据
  • • 漏洞危害:实现请求伪造、参数注入,干扰邮件认证流程,获取敏感信息
  • • 修复方式:新增主机名校验逻辑,仅允许RFC 1034规范的字符(字母、数字、-、.),阻断非法字符注入
  • • 致谢:Asim Viladi Oglu Manizada、Colin Warren、Xiao Liu、Yuan Tan、Bird Liu

2.6 CVE-2026-28755:Stream模块OCSP结果绕过漏洞

  • • 漏洞模块:ngx_stream_ssl_module(Stream SSL模块)
  • • 漏洞场景:OCSP服务拒绝客户端证书时,SSL握手仍可成功建立,绕过证书校验
  • • 漏洞危害:非法客户端可通过伪造证书绕过认证,建立非法连接
  • • 修复方式:新增OCSP状态校验逻辑,OCSP验证失败时直接终止SSL握手,清除会话缓存
  • • 致谢:Mufeed VH (Winfunc Research)

三、核心模块功能修复与优化

除安全漏洞外,nginx 1.28.3对QUIC、MP4、DNS解析、邮件处理等模块进行了功能性缺陷修复,提升服务运行稳定性:

3.1 QUIC模块优化

  1. 1. 调整无状态重置(Stateless Reset)数据包最小长度,从21字节调整为41字节
  2. 2. 限制无状态重置数据包最大尺寸为1200字节,避免超大包攻击
  3. 3. 新增无状态重置速率限制,基于地址哈希与位图实现频率控制,防止滥用
  4. 4. 无状态重置令牌与worker进程绑定,避免跨进程数据包处理异常
  5. 5. 重构ngx_quic_address_hash()函数,优化地址哈希计算逻辑
  6. 6. 提升OpenSSL兼容层错误处理能力,修复密钥设置失败导致的内部错误
  7. 7. 修复错误worker进程接收QUIC数据包导致连接断开的问题

3.2 MP4模块修复

  1. 1. 校验stss原子同步样本值,禁止零值同步样本,避免解析异常
  2. 2. 修复32位平台整数溢出问题,防止内存越界
  3. 3. 禁止零长度缓冲区输出,避免空指针异常
  4. 4. 优化时间切片逻辑,当结束偏移小于等于起始偏移时直接返回错误
  5. 5. 修复样本索引、chunk索引越界问题,完善原子大小边界校验
  6. 6. 修复关键帧查找逻辑,将返回值类型从uint32_t改为ngx_int_t,统一错误处理

3.3 DNS解析模块修复

  1. 1. 修复ngx_resolver_copy()函数中的off-by-one读取错误
  2. 2. 调整SRV记录解析边界判断条件,从i + 6 > n改为i + 6 >= n,避免短响应解析异常

3.4 邮件模块修复

  1. 1. 修复auth_http请求中s->passwd内存清理不彻底问题,使用ngx_str_null统一初始化
  2. 2. 新增SMTP主机名校验函数,过滤非法字符,防止DNS注入
  3. 3. 主机名解析失败时直接返回临时不可用状态,避免异常连接

3.5 Stream SSL模块修复

  1. 1. 完善客户端证书OCSP校验逻辑,校验失败时记录错误日志并终止握手
  2. 2. 清除OCSP失败的会话缓存,防止非法会话复用

四、Windows平台编译依赖库升级

nginx 1.28.3对Windows版本编译依赖的第三方库进行同步升级,修复依赖库潜在安全风险:

  1. 1. OpenSSL:从3.5.4升级至3.5.5
  2. 2. zlib:从1.3.1升级至1.3.2
  3. 3. PCRE2:从10.46升级至10.47

依赖库升级仅影响Windows平台编译版本,Linux/Unix平台使用系统自带依赖库,无额外影响。

五、核心代码变更详细解析

本次版本共14个文件发生变更,核心代码改动集中在安全校验、协议处理、内存管理、边界判断四个维度,以下为关键文件改动解析:

5.1 版本号定义文件

src/core/nginx.h:

  • • nginx_version从1028002修改为1028003
  • • NGINX_VERSION从"1.28.2"修改为"1.28.3"

5.2 DNS解析模块

src/core/ngx_resolver.c:

  • • 修复SRV记录解析边界判断,将if (i + 6 > n)改为if (i + 6 >= n),避免短响应漏判

5.3 QUIC模块核心文件

src/event/quic/ngx_event_quic.c:

  • • 新增ngx_quic_address_hash()函数实现,优化地址哈希计算
  • • 支持带盐值哈希,提升无状态重置安全性

src/event/quic/ngx_event_quic_output.c:

  • • 调整NGX_QUIC_MIN_PKT_LEN为41字节
  • • 新增无状态重置过滤器ngx_quic_stateless_reset_filter(),实现速率限制
  • • 优化重置数据包长度计算逻辑,限制最大长度

src/event/quic/ngx_event_quic_openssl_compat.c:

  • • 增强密钥设置错误处理,失败时设置QUIC内部错误码
  • • 修复空密钥上下文导致的解析错误

src/event/quic/ngx_event_quic_connection.h:

  • • 新增ngx_quic_address_hash()函数声明

5.4 WebDAV模块

src/http/modules/ngx_http_dav_module.c:

  • • 新增alias场景下Destination头部长度校验
  • • 获取ngx_http_core_module配置,判断URI长度合法性,非法则返回400

5.5 MP4模块

src/http/modules/ngx_http_mp4_module.c:

  • • 修复关键帧查找函数返回值类型,新增错误码返回
  • • 禁止零同步样本,完善原子大小边界校验
  • • 修复偏移量越界判断,结束偏移小于等于起始偏移直接报错
  • • 修复32位平台整数溢出,避免内存越界

5.6 邮件模块

src/mail/ngx_mail_auth_http_module.c:

  • • 修复s->passwd内存清理,使用ngx_str_null统一初始化

src/mail/ngx_mail_smtp_handler.c:

  • • 新增ngx_mail_smtp_validate_host()主机名校验函数
  • • 仅允许字母、数字、-、.字符,阻断注入攻击

5.7 Stream SSL模块

src/stream/ngx_stream_ssl_module.c:

  • • 新增OCSP状态校验,验证失败时终止握手并清除会话
  • • 记录证书验证错误日志,便于问题排查

5.8 变更日志文件

docs/xml/nginx/changes.xml:

  • • 新增1.28.3版本完整变更记录,包含6个CVE漏洞说明、功能修复、致谢信息

5.9 编译配置文件

misc/GNUmakefile:

  • • 更新Windows编译依赖库版本号,同步OpenSSL、zlib、PCRE2版本

六、版本升级影响与建议

6.1 受影响版本

所有nginx 1.28.0、1.28.1、1.28.2稳定版本均存在上述安全漏洞,建议立即升级至1.28.3。

6.2 不受影响场景

  1. 1. 未启用ngx_http_dav_module、ngx_http_mp4_module、邮件模块、Stream SSL模块的环境
  2. 2. Windows平台未使用编译版本,仅使用Linux/Unix预编译包的环境
  3. 3. 未开启QUIC、OCSP、CRAM-MD5/APOP认证的场景

6.3 升级建议

  1. 1. 生产环境优先采用平滑升级方式,避免服务中断
  2. 2. 升级前备份nginx配置文件、日志文件、SSL证书
  3. 3. 升级后执行nginx -t校验配置合法性,再执行reload
  4. 4. 开启模块的业务需重点测试功能完整性,尤其是MP4文件处理、WebDAV、邮件代理、Stream代理
  5. 5. 安全团队可针对6个CVE漏洞进行漏洞扫描验证,确认修复生效

6.4 风险提示

  1. 1. 未升级版本可能遭受目录穿越、拒绝服务、证书绕过、请求注入攻击
  2. 2. 32位服务器运行MP4模块业务,漏洞利用风险更高
  3. 3. 公网暴露的WebDAV、邮件代理、Stream服务为高危攻击面,必须优先升级

七、总结

代码地址:bgithub.xyz/nginx/nginx

nginx 1.28.3是1.28稳定分支的关键安全更新版本,一次性修复6个CVE高危漏洞,覆盖Web服务、文件处理、邮件代理、四层代理全场景,同时优化QUIC协议性能、修复模块功能性缺陷、升级第三方依赖库,全面提升nginx服务的安全性与稳定性。

·


我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。

·

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-03-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 福大大架构师每日一题 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、nginx 1.28.3版本基础信息
    • 1.1 版本发布信息
    • 1.2 版本核心定位
  • 二、6大CVE安全漏洞完整修复明细
    • 2.1 CVE-2026-27654:ngx_http_dav_module缓冲区溢出漏洞
    • 2.2 CVE-2026-27784:ngx_http_mp4_module 32位平台缓冲区溢出漏洞
    • 2.3 CVE-2026-32647:ngx_http_mp4_module通用缓冲区溢出漏洞
    • 2.4 CVE-2026-27651:邮件模块CRAM-MD5/APOP认证段错误漏洞
    • 2.5 CVE-2026-28753:邮件模块DNS PTR记录注入漏洞
    • 2.6 CVE-2026-28755:Stream模块OCSP结果绕过漏洞
  • 三、核心模块功能修复与优化
    • 3.1 QUIC模块优化
    • 3.2 MP4模块修复
    • 3.3 DNS解析模块修复
    • 3.4 邮件模块修复
    • 3.5 Stream SSL模块修复
  • 四、Windows平台编译依赖库升级
  • 五、核心代码变更详细解析
    • 5.1 版本号定义文件
    • 5.2 DNS解析模块
    • 5.3 QUIC模块核心文件
    • 5.4 WebDAV模块
    • 5.5 MP4模块
    • 5.6 邮件模块
    • 5.7 Stream SSL模块
    • 5.8 变更日志文件
    • 5.9 编译配置文件
  • 六、版本升级影响与建议
    • 6.1 受影响版本
    • 6.2 不受影响场景
    • 6.3 升级建议
    • 6.4 风险提示
  • 七、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档