
Proof-of-concept exploit for CVE-2026-42945, a critical heap buffer overflow in NGINX rewrite module enabling remote code execution via crafted URI requests.
NGINX 的 ngx_http_rewrite_module 组件中存在一个 堆缓冲区溢出,该漏洞于 2008 年 引入——意味着它在被发现前已存在 16 年。
漏洞位于 双遍脚本引擎 中:
问题在于:两次遍历之间内部引擎状态发生变化。当重写替换中包含 ? (问号) 时,一个 未传播的标志 会导致缓冲区分配过小,从而允许攻击者控制的转义 URI 数据溢出堆边界。
# 概念:用 '+' 号填充请求 URI 会强制
# 转义函数将每个字节扩展为三个字节,
# 导致分配的块溢出。溢出大小完全由
# 可转义字符的数量控制。
实现 RCE(绕过 ASLR)的步骤:
ngx_pool_t cleanup 指针ngx_pool_cleanup_s 并调用 system()同一系统发现的相关 CVE:CVE-2026-42946, CVE-2026-40701, CVE-2026-42934
DepthFirstDisclosures/Nginx-Rift此漏洞由 DepthFirst 的安全分析系统在 单次点击 接入 NGINX 源代码后 自主发现——突显了自动化漏洞发现的能力。
? 的重写指令