🤖 AI总结
主题
关于Nginx 1.28.3稳定版本发布及其安全漏洞修复的详细说明。
摘要
Nginx 1.28.3作为关键安全更新版本,修复了多个高危漏洞并优化了核心模块,建议所有使用1.28.x分支的生产环境尽快升级。
关键信息
- 1 修复了6个CVE高危安全漏洞,涉及WebDAV、MP4、邮件等多个模块。
- 2 对QUIC、DNS解析等核心模块进行了功能优化和缺陷修复。
- 3 升级了Windows平台的编译依赖库,并提供了详细的升级建议。
![]()
![]()
![]()
前言
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. 调整无状态重置(Stateless Reset)数据包最小长度,从21字节调整为41字节
2. 限制无状态重置数据包最大尺寸为1200字节,避免超大包攻击
3. 新增无状态重置速率限制,基于地址哈希与位图实现频率控制,防止滥用
4. 无状态重置令牌与worker进程绑定,避免跨进程数据包处理异常
5. 重构ngx_quic_address_hash()函数,优化地址哈希计算逻辑
6. 提升OpenSSL兼容层错误处理能力,修复密钥设置失败导致的内部错误
7. 修复错误worker进程接收QUIC数据包导致连接断开的问题
3.2 MP4模块修复
1. 校验stss原子同步样本值,禁止零值同步样本,避免解析异常
2. 修复32位平台整数溢出问题,防止内存越界
3. 禁止零长度缓冲区输出,避免空指针异常
4. 优化时间切片逻辑,当结束偏移小于等于起始偏移时直接返回错误
5. 修复样本索引、chunk索引越界问题,完善原子大小边界校验
6. 修复关键帧查找逻辑,将返回值类型从uint32_t改为ngx_int_t,统一错误处理
3.3 DNS解析模块修复
1. 修复ngx_resolver_copy()函数中的off-by-one读取错误
2. 调整SRV记录解析边界判断条件,从i + 6 > n改为i + 6 >= n,避免短响应解析异常
3.4 邮件模块修复
1. 修复auth_http请求中s->passwd内存清理不彻底问题,使用ngx_str_null统一初始化
2. 新增SMTP主机名校验函数,过滤非法字符,防止DNS注入
3. 主机名解析失败时直接返回临时不可用状态,避免异常连接
3.5 Stream SSL模块修复
1. 完善客户端证书OCSP校验逻辑,校验失败时记录错误日志并终止握手
2. 清除OCSP失败的会话缓存,防止非法会话复用
四、Windows平台编译依赖库升级
nginx 1.28.3对Windows版本编译依赖的第三方库进行同步升级,修复依赖库潜在安全风险:
1. OpenSSL:从3.5.4升级至3.5.5
2. zlib:从1.3.1升级至1.3.2
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. 未启用ngx_http_dav_module、ngx_http_mp4_module、邮件模块、Stream SSL模块的环境
2. Windows平台未使用编译版本,仅使用Linux/Unix预编译包的环境
3. 未开启QUIC、OCSP、CRAM-MD5/APOP认证的场景
6.3 升级建议
1. 生产环境优先采用平滑升级方式,避免服务中断
2. 升级前备份nginx配置文件、日志文件、SSL证书
3. 升级后执行nginx -t校验配置合法性,再执行reload
4. 开启模块的业务需重点测试功能完整性,尤其是MP4文件处理、WebDAV、邮件代理、Stream代理
5. 安全团队可针对6个CVE漏洞进行漏洞扫描验证,确认修复生效
6.4 风险提示
1. 未升级版本可能遭受目录穿越、拒绝服务、证书绕过、请求注入攻击
2. 32位服务器运行MP4模块业务,漏洞利用风险更高
3. 公网暴露的WebDAV、邮件代理、Stream服务为高危攻击面,必须优先升级
七、总结
代码地址:bgithub.xyz/nginx/nginx
nginx 1.28.3是1.28稳定分支的关键安全更新版本,一次性修复6个CVE高危漏洞,覆盖Web服务、文件处理、邮件代理、四层代理全场景,同时优化QUIC协议性能、修复模块功能性缺陷、升级第三方依赖库,全面提升nginx服务的安全性与稳定性。
我们相信人工智能为普通人提供了一种“增强工具”,并致力于分享全方位的AI知识。在这里,您可以找到最新的AI科普文章、工具评测、提升效率的秘籍以及行业洞察。 欢迎关注“福大大架构师每日一题”,发消息可获得面试资料,让AI助力您的未来发展。