本仓库包含一个概念验证(PoC),用于演示 Apache HTTP Server 2.4.66 mod_http2 中的双重释放(Double Free)漏洞(CVE-2026-23918)。
该漏洞源于早期 RST_STREAM 帧处理过程中的竞态条件。我专注于会话处理器和后端工作线程同时尝试清除流内存池的时间窗口,导致 APR 分配器中发生双重释放。
当前进展 崩溃触发:已在本地成功触发竞态条件。Apache 子进程以段错误(Segmentation fault,信号 11)终止。
拒绝服务状态:在此阶段,PoC 通过破坏分配器的空闲链表实现了可靠的拒绝服务(Denial of Service)。
RCE 研究路径 要从崩溃推进到代码执行,以下领域需要进一步研究:
堆布局操纵(Heap Grooming):稳定堆,确保被破坏的块与可预测的结构重叠。
控制流劫持:覆盖 apr_pool_cleanup_register 或类似的函数指针以重定向执行流。
ROP 链:在控制指令指针后构建 ROP 链以绕过 NX/ASLR 防护。
文件 Dockerfile:搭建一个启用 HTTP/2 的易受攻击的 2.4.66 实例。
poc.py:通过快速帧序列触发竞态条件的脚本。