CVE-2026-42530与CVE-2026-42055:NGINX双Critical漏洞可实现远程代码执行

F5于2026年6月18日发布带外安全更新,修复NGINX Open Source中两个CVSS 9.2的严重漏洞。攻击者可利用HTTP/3和HTTP/2模块的内存损坏漏洞实现远程代码执行,影响数百万Web服务器。
漏洞概述:Web基础设施的根基动摇
NGINX是全球使用最广泛的Web服务器和反向代理软件,据W3Techs统计,全球约34%的网站运行在NGINX之上。2026年6月18日,F5 Networks发布了带外(Out-of-Band)安全更新,修复了NGINX Open Source中的四个安全漏洞,其中两个被评为"严重"(Critical)级别,CVSS评分高达9.2。
这两个严重漏洞分别是CVE-2026-42530和CVE-2026-42055。CVE-2026-42530是一个Use-After-Free(释放后使用)漏洞,存在于NGINX的HTTP/3 QUIC模块(ngx_http_v3_module)中;CVE-2026-42055是一个堆缓冲区溢出(Heap-Based Buffer Overflow)漏洞,影响代理v2和gRPC模块。两个漏洞都可能导致远程代码执行(RCE),且无需认证即可利用。
The Hacker News、Security Affairs和Field Effect等多家安全媒体对此进行了报道。F5选择在常规更新周期之外发布安全补丁,表明这些漏洞的严重性足以构成紧急威胁。对于使用NGINX作为前端反向代理、负载均衡器或API网关的企业,这些漏洞直接影响其互联网入口的安全。
CVE-2026-42530:HTTP/3 QUIC模块的Use-After-Free
CVE-2026-42530的CVSS评分为9.2(部分来源标注为8.1,取决于评估维度),漏洞类型为Use-After-Free,存在于NGINX的ngx_http_v3_module中。该模块负责处理基于QUIC协议的HTTP/3流量。
Use-After-Free是一类经典的内存安全漏洞。当程序释放了一块内存后,仍然持有指向该内存的指针(悬垂指针),并继续使用该指针访问已释放的内存区域。攻击者可以通过精心构造的请求,在释放的内存区域中布置恶意数据,当程序再次使用悬垂指针时,就会执行攻击者控制的代码。
根据dbugs.ptsecurity.com的漏洞描述,该漏洞可能导致NGINX worker进程崩溃重启(拒绝服务),更重要的是,在禁用了ASLR(地址空间布局随机化)或攻击者能够绕过ASLR的条件下,可以实现远程代码执行。Field Effect的分析指出,Use-After-Free条件下,NGINX会继续使用已被释放的内存,这为攻击者提供了可乘之机。
受影响的版本范围较为集中:仅影响NGINX Open Source 1.31.0和1.31.1两个版本。这意味着使用更早版本(如1.24.x、1.26.x稳定分支)或NGINX Plus的用户不受此漏洞影响。但任何启用了HTTP/3 over QUIC的1.31.x部署都需要立即处理。
| 属性 | CVE-2026-42530 | CVE-2026-42055 |
|---|---|---|
| CVSS评分 | 9.2 | 9.2 |
| 漏洞类型 | Use-After-Free | 堆缓冲区溢出 |
| 影响模块 | ngx_http_v3_module (HTTP/3) | 代理v2 + gRPC模块 |
| 受影响版本 | 1.31.0, 1.31.1 | 待确认 |
| 攻击复杂度 | 低 | 低 |
| 认证需求 | 无需认证 | 无需认证 |
| 可能影响 | DoS + RCE | DoS + RCE |
| 修复版本 | 1.31.2 | 1.31.2 |
CVE-2026-42055:代理与gRPC模块的堆溢出
CVE-2026-42055同样是CVSS 9.2的严重漏洞,类型为堆缓冲区溢出(Heap-Based Buffer Overflow),影响NGINX的代理(Proxy)v2模块和gRPC模块。堆缓冲区溢出是比Use-After-Free更为直接的内存破坏漏洞——当程序向堆上分配的缓冲区写入超出其边界的数据时,会覆盖相邻的内存区域。
在NGINX的上下文中,攻击者可以通过构造恶意的HTTP/2或gRPC请求,触发代理模块中的缓冲区溢出,从而覆盖关键的内存数据结构(如函数指针、返回地址等),最终实现控制流劫持和远程代码执行。
gRPC是Google开发的高性能RPC框架,广泛用于微服务架构中的服务间通信。NGINX作为gRPC服务的反向代理时,会处理gRPC的HTTP/2帧。攻击者可以利用特制的gRPC请求触发溢出。对于使用NGINX代理gRPC流量的微服务架构,这个漏洞的威胁尤为突出。
影响范围评估:谁应该紧张
# 检查NGINX版本
nginx -v
# 如果输出包含 1.31.0 或 1.31.1,需要立即更新
# 检查是否启用了HTTP/3
nginx -T 2>/dev/null | grep -i "http3\|quic"
# 如果有输出,说明启用了HTTP/3,受CVE-2026-42530影响
# 检查是否使用了gRPC代理
nginx -T 2>/dev/null | grep -i "grpc_pass"
# 如果有输出,说明使用了gRPC代理,可能受CVE-2026-42055影响
# 检查worker进程的异常重启记录
tail -100 /var/log/nginx/error.log | grep -i "worker\|segfault\|signal"
# 频繁的worker重启可能是利用尝试的迹象
# 统计全球受影响的NGINX实例
# 使用Shodan查询(需要API key)
# shodan search "nginx/1.31" --fields ip_str,port
需要紧急处理的场景:
- 运行NGINX 1.31.0或1.31.1的任何服务器
- 启用了HTTP/3 over QUIC的NGINX部署
- 使用NGINX作为gRPC反向代理的微服务架构
- 暴露在公网的NGINX实例(包括CDN源站)
风险较低的场景:
- 使用NGINX 1.24.x或1.26.x稳定分支的部署
- NGINX Plus用户(F5提供独立补丁)
- 仅作为静态文件服务器且未启用HTTP/3的NGINX
修复方案
F5已发布NGINX Open Source 1.31.2版本修复了所有四个漏洞:
# 方案1:升级NGINX(推荐)
# Debian/Ubuntu
sudo apt update
sudo apt install --only-upgrade nginx
# CentOS/RHEL
sudo yum update nginx
# 从源码编译安装
wget https://nginx.org/download/nginx-1.31.2.tar.gz
tar xzf nginx-1.31.2.tar.gz
cd nginx-1.31.2
./configure --with-http_v3_module --with-http_v2_module
make && sudo make install
# 验证版本
nginx -v
# 应显示 nginx/1.31.2
# 重载配置(零停机)
sudo nginx -t && sudo nginx -s reload
# 方案2:临时缓解 - 禁用HTTP/3
# 在nginx.conf中注释掉QUIC相关配置
# # listen 443 quic reuseport;
# # add_header Alt-Svc 'h3=":443"; ma=86400';
sudo nginx -t && sudo nginx -s reload
# 方案3:临时缓解 - 禁用gRPC代理
# 注释掉所有grpc_pass指令
# 评估gRPC服务的可用性影响
| 修复方案 | 停机时间 | 风险 | 适用场景 |
|---|---|---|---|
| 升级到1.31.2 | 几秒(reload) | 低 | 所有场景 |
| 禁用HTTP/3 | 无 | 中(功能降级) | 无法立即升级 |
| 禁用gRPC代理 | 无 | 高(影响微服务) | 仅受CVE-2026-42055影响 |
| WAF规则拦截 | 无 | 低 | 有WAF的环境 |
防御深度:Web服务器安全的系统性加固
NGINX作为互联网基础设施的核心组件,其安全性直接影响上层应用。除了及时打补丁外,以下措施可以提升整体防御水平:
编译加固:在编译NGINX时启用安全选项,如-fstack-protector-strong、-D_FORTIFY_SOURCE=2和PIE(Position Independent Executable)。这些编译选项可以增加攻击者利用内存损坏漏洞的难度。
运行时防护:确保服务器启用了ASLR(/proc/sys/kernel/randomize_va_space值为2),使用seccomp限制NGINX worker的系统调用,通过AppArmor或SELinux限制文件系统访问。
最小化模块:只编译需要的NGINX模块。如果不需要HTTP/3,就不编译ngx_http_v3_module;如果不需要gRPC代理,就不编译相关模块。攻击面越小,漏洞可利用的条件越苛刻。
WAF前置:在NGINX前面部署WAF(如ModSecurity、AWS WAF或Cloudflare),通过规则拦截异常的HTTP/3和gRPC请求。虽然WAF不能替代补丁,但可以提供额外的防御时间窗口。
数据来源
- The Hacker News报道:thehackernews.com/2026/06/f5-patches-two-critical-nginx-open
- Security Affairs分析:securityaffairs.com/193842
- Navanem技术报告:navanem.com
- SOCRadar漏洞分析:socradar.io
- Field Effect报告:fieldeffect.com
- dbugs.ptsecurity.com漏洞详情:dbugs.ptsecurity.com
- TechTimes报道:techtimes.com
评论