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
免责声明
本博客文章所提供的内容、技术方案、配置示例及部署指南等信息,仅供学习交流和技术参考使用。文章内容基于发布时的技术环境和版本信息编写,可能因时间推移、技术更新或环境差异而存在不适用的情况。
用户在参考本博客内容进行部署操作前,应当充分了解相关技术风险,并建议在测试环境中进行充分验证和测试,确认无误后再考虑在生产环境中使用。生产环境部署前,请务必进行数据备份,并制定相应的回滚方案。
用户因使用本博客内容进行部署操作而产生的任何损失、数据丢失、系统故障、安全风险或其他问题,均由用户自行承担全部责任。轩辕镜像官方不对因使用本博客内容而产生的任何直接或间接损失承担责任。
本免责声明的最终解释权归轩辕镜像官方所有。
