当前位置: 首页 > news >正文

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年的堆溢出漏洞分析与防御指南 - 蚁景网安实验室 - 博客园

注:文章涉及内容仅供安全研究与学习之用,若将文章相关内容做其他用途,由使用者承担全部法律及连带责任,作者及发布者不承担任何法律及连带责任。信息及工具收集于互联网,真实性及安全性自测!!

http://www.jsqmd.com/news/946999/

相关文章:

  • 告别串口打印:用STM32 HAL库+DS18B20做个OLED屏显温度计(Keil工程开源)
  • 树莓派新手必看:用手机热点替代电脑,户外也能玩转(附VNC配置)
  • 踩坑实录:poi-tl处理Word模板分页与图片时,我遇到的3个坑及解决方案
  • AI编程祛魅:从功能幻觉到零故障工作流的实战指南
  • 【Azure App Service】应用服务中的SNAT (Source Network Address Translation 源网络地址转化)
  • 【深入理解计算机系统】第一章(计算机系统漫游)笔记
  • 彻底理清 B+ 树页分裂与页合并对大批量写入 MySQL分库分表与分区表的设计抉择 数据时吞吐量的影响路径
  • ssm员工在线知识培训考试平台(10153)
  • 从Copilot到Agent:我的团队如何用ChatDev在3天内“自动化”了一个内部工具
  • AD软件大电流布线必备:一招把Top层铺铜“变成”阻焊开窗,告别焊盘锡量不足的烦恼
  • Python 爬虫进阶技巧:元数据 meta 标签提取辅助爬虫页面判重
  • 保姆级教程:在嵌入式Linux上实战I3C SDR模式的热加入与带内中断(附代码避坑)
  • 拆解Botsch经典算法:手写半边结构,一步步实现Isotropic Remeshing(附C++代码)
  • 深入GL3224固件升级工具:如何手动添加Flash芯片支持(以Winbond W25Q16为例)
  • NarratoAI完整教程:三步掌握AI视频解说制作神器
  • ESP8266从联网到传数据:一条AT指令搞定WiFi连接与TCP通信(实战避坑)
  • 用STM32F103C8T6搞定74HC165扩展16个按键(附完整代码和接线图)
  • Harness Engineering:Agent自主决策审计
  • Android混合开发避坑指南:WebView与H5通信的5种姿势与安全实践
  • 2026降AIGC革命:AI率92%暴降至5%!实测10款降AI率工具!薅羊毛技巧!
  • 别再用BertModel直接喂给Chroma了!手写一个EmbeddingFunction解决HuggingFaceEmbeddings离线调用难题
  • AUTOSAR SPI实战避坑:同步调用Spi_SyncTransmit阻塞了CPU?试试异步Spi_AsyncTransmit提升效率
  • 深入探秘 Golang 源码中 channel 管道通信的真正设计意图与边界
  • 用MATLAB批量生成卫星TLE文件:STK11自动化脚本实战(附完整代码)
  • DDD-013:仓储(Repository)
  • Python 爬虫进阶技巧:批量解析 html 实体转义字符还原原始文本
  • Xcode 15开发者的终端效率手册:除了CMD+R运行,你的快捷键还缺这一块
  • 从Demo到量产:Davinci工程添加自定义模块与变体文件的完整指南(以BRS模块为例)
  • 告别WebView黑盒:用Chrome DevTools调试Android混合开发页面(附Androidx-WebKit实战)
  • 钢材表面缺陷检测实战工程:含NEU-DET数据集与YOLOv5/v8多版本训练配置