NGINX出现高危漏洞 仅需发送特制HTTP请求即可拿下服务器

摘要:

F5 旗下的 NGINX 是全球使用量极高的反向代理服务器,NGINX 也是全球互联网的关键基础设施,现在安全研究公司披露该软件出现的高危安全漏洞,该漏洞编号为 CVE-2026-42945,NGINX 脚本引擎中存在已经 18 年的堆缓冲区溢出问题。

攻击者只需要向暴露的 NGINX 服务器发送经过精心构造的 HTTP 请求即可远程拿下服务器,NGINX 在全球网站服务器和反向代理核心领域占有率将近 30%,因此这个漏洞可能会波及到海量的互联网服务。

影响 NGINX 本体及多个衍生产品:

该漏洞最初还是在 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.31.0/1.30.1 版进行修复:

接到漏洞通报后 F5 很快就确认漏洞,在 F5 准备好修复程序后研究人员公开发布漏洞,所以当前使用 NGINX 及其衍生产品的用户都需要升级到不受影响的最新版,其中开源版的 NGINX 需升级到 1.30.1 版或 1.31.0 版,其他旧版本例如 0.6.27~1.30.0 版均受漏洞影响。

有关其他衍生产品的版本信息请查看 F5 安全公告:https://my.f5.com/manage/s/article/K000160932

热门评论

>>共有0条评论,显示0
更多评论
created by ceallan