CVE-2026-42945漏洞分析及复现
一、前言
2026年5月12日,NGINX 官方发布紧急安全公告,披露了一组潜伏长达18年的高危漏洞,其中最严重的CVE-2026-42945(代号“NGINX Rift”)的 CVSS v4.0 评分高达9.2分(Critical)。
二、漏洞简介
NGINX Rift是指2026年5月12日NGINX官方披露的高危漏洞CVE-2026-42945,是存在于NGINX rewrite模块中的堆缓冲区溢出漏洞。该漏洞代号由安全研究团队depthfirst提出,因18年潜伏时间被称为"灯下黑"漏洞,CVSS v4.0评分9.2分(Critical),覆盖NGINX Open Source 0.6.27至1.30.0版本及NGINX Plus R32至R36版本。
NGINX Rift的本质是ngx_http_rewrite_module模块中内部标志位管理错误,导致字符串处理时出现缓冲区溢出。攻击者无需认证,仅需构造特定HTTP请求即可触发:当Rewrite指令包含未命名正则捕获组(如1、2)且URL含特殊字符(+、%、&等)时,内存计算长度与实际写入字节数不匹配,造成堆缓冲区溢出。该漏洞可导致worker进程崩溃(DoS)、敏感信息泄露,在关闭ASLR条件下甚至实现远程代码执行(RCE),因NGINX多进程架构允许攻击者反复试错,威胁极高。
三、漏洞影响
NGINX占据全球37.2%的Web服务器市场,此次漏洞影响面极广,需引起重视。
影响所有主流 Linux 发行版(Debian、Ubuntu、CentOS、RHEL 等)
所有使用 NGINX 作为反向代理、负载均衡、API 网关、静态文件服务器的场景均受影响
四、漏洞复现
在当前目录新建 setup.sh 脚本
cat > setup.sh <<'EOF' #!/bin/bash set -e cd "$(dirname "$0")" echo "Building Docker image (compiles nginx from source)..." docker compose -f env/docker-compose.yml build echo "" echo "Done. To run:" echo "" echo "# Terminal 1 (server) — nginx runs with ASLR disabled (setarch -R):" echo " docker compose -f env/docker-compose.yml up" echo "" echo "# Terminal 2 (attacker):" echo " python3 poc.py --cmd 'echo hello from depthfirst > /tmp/pwned'" echo "" echo "# Verify RCE:" echo " docker compose -f env/docker-compose.yml exec nginx ls -la /tmp/pwned" echo " docker compose -f env/docker-compose.yml exec nginx cat /tmp/pwned" EOF给权限和编译镜像
chmod +x setup.sh ./setup.sh新开终端 1 启动漏洞 Nginx(保持窗口不关闭)
docker compose -f env/docker-compose.yml up原终端执行漏洞利用
# 写入文件验证RCE python3 nginx_rift_helper.py --cmd "echo EXP_SUCCESS > /tmp/pwn.txt" # 查看结果 docker exec -it $(docker ps -q --filter name=nginx) cat /tmp/pwn.txt如果输出EXP_SUCCESS就是复现成功
参考文章
CVE-2026-42945 深度解析 NGINX Rift :潜伏18年的堆溢出漏洞分析与防御指南 - 蚁景网安实验室 - 博客园
