2.9 KiB
【安全通告】NGINX 曝高危漏洞,特制 HTTP 请求可远程接管服务器(CVE-2026-42945)
分类: Docker部署教程 | 标签: 运维,安全,安全通告 | 发布时间: 2026-05-14 10:14:21
F5 旗下的 NGINX 是全球使用量极高的反向代理服务器,也是互联网关键基础设施。近日,安全研究公司披露该软件存在高危安全漏洞,漏洞编号为 CVE-2026-42945,其脚本引擎中存在一个已潜伏18年的堆缓冲区溢出问题。
攻击者仅需向暴露的NGINX服务器发送精心构造的HTTP请求,就能远程接管服务器。NGINX在全球网站服务器和反向代理核心领域的占有率接近30%,该漏洞可能波及海量互联网服务。
F5 旗下的 NGINX 是全球使用量极高的反向代理服务器,也是互联网关键基础设施。近日,安全研究公司披露该软件存在高危安全漏洞,漏洞编号为CVE-2026-42945,其脚本引擎中存在一个已潜伏18年的堆缓冲区溢出问题。
攻击者仅需向暴露的NGINX服务器发送精心构造的HTTP请求,就能远程接管服务器。NGINX在全球网站服务器和反向代理核心领域的占有率接近30%,该漏洞可能波及海量互联网服务。
影响范围
该漏洞最早在2008年发布的NGINX 0.6.27版本中引入,长期未被发现,影响NGINX 0.6.27~1.30.0全版本,同时也波及F5面向商业客户提供的多款NGINX衍生产品,包括但不限于:NGINX WAF、F5 WAF、NGINX Gateway Fabric、NGINX Ingress Controller等。
漏洞触发条件
漏洞触发条件较为隐蔽,当NGINX配置文件中同时出现以下两种指令时,漏洞会被激活:
- 重写规则末尾带“?”,例:
rewrite ^/api/(.*)$ /internal?migrated=true; - 使用正则捕获组,例:
set $original_endpoint $1;
漏洞原理
漏洞发现团队指出,问题根源在ngx_http_rewrite_module的脚本引擎(ngx_http_script.c)中:重写指令带问号时会设置持久的is_args标志,但后续set指令的长度计算阶段,引擎使用全新清零的子引擎,导致长度计算时跳过URL转义逻辑;实际复制阶段又调用主引擎,触发ngx_escape_uri函数对+、&等字符转义。最终缓冲区按未转义长度分配,却写入膨胀后的内容,造成可控的堆缓冲区溢出。
修复方案
F5已发布修复版本,接到漏洞通报后快速完成漏洞确认与修复程序开发,研究人员随后公开发布漏洞细节。
- 开源版NGINX用户需升级至1.30.1或1.31.0版本;
- 0.6.27~1.30.0 旧版本均受漏洞影响,需尽快完成升级。
F5商业衍生产品的修复版本与详细信息,可查阅官方安全公告:https://my.f5.com/manage/s/article/K000160932
