返回首页

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

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

NGINX严重漏洞远程代码执行

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-(释放后使用)漏洞,存在于NGINX的HTTP/3 QUIC模块(ngx_http_v3_module)中;CVE-2026-42055是一个堆缓冲区溢出(Heap-Based Buffer Overflow)漏洞,影响代理v2和gRPC模块。两个漏洞都可能导致远程代码执行(),且无需认证即可利用。

The Hacker Affairs和Field Effect等多家安全媒体对此进行了报道。F5选择在常规更新周期之外发布安全补丁,表明这些漏洞的严重性足以构成紧急威胁。对于使用NGINX作为前端反向代理、负载均衡器或网关的企业,这些漏洞直接影响其互联网入口的安全。

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 待确认
攻击复杂度
认证需求 无需认证 无需认证
可能影响 + 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是开发的高性能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  "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  
sudo apt install --only- 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不能替代补丁,但可以提供额外的防御时间窗口。

数据来源

评论