
CVE-2026-23918(Apache mod_http2 双重释放)的概念验证漏洞利用。支持多模式 DoS(Rapid-RST、Slow-Drip)以及针对 Apache 2.4.66 的被动式 RCE/漏洞检测。
これはApacheのmod_http2(CVE-2026-23918)におけるdouble-free脆弱性の概念実証エクスプロイトです。h2_mplx.cのストリームクリーンアップパスに影響する厄介なバグです。
基本的に、タイミングをうまく合わせれば、サーバーに同じストリームを2回クリーンアップさせることができ、通常はSIGSEGVとワーカークラッシュを引き起こします。

馬鹿なことはしないでください。認可されたテストにのみ使用してください。所有していないものに対して使用した場合、自己責任となります。あなたがそれで行ったことについて、私は一切責任を負いません。
CVE-2026-23918はApache 2.4.66に影響します。今月(2026年5月)初めに2.4.67でパッチが適用されました。
これは、Apacheが早期のRST_STREAMフレームを処理する方法におけるレースコンディションです。クライアントがHEADERSフレームを送信し、マルチプレクサがストリームを登録する前にすぐにRST_STREAMを続けて送信すると、2つの異なるコールバックがクリーンアップを試みます。
1つのコールバックはリセットを処理し、もう1つはストリームのクローズを処理します。両方がm_stream_cleanup()を呼び出し、同じポインタをクリーンアップ配列にプッシュします。Apacheが最終的にそれらのストリームを破棄しようとすると、2回目の試行が既に解放されたメモリにアクセスします。
DoS: 非常に簡単です。1つの接続でワーカーをクラッシュさせることができます。Apacheはワーカーを再生成するため、非常に少ない帯域幅でサーバーに継続的な圧力をかけることができます。これがこのPoCが実証している内容であり、Apache 2.4.66でテストされ動作が確認されています。
RCE: 理論的には可能ですが、ほとんどの攻撃者にとって現実的ではありません。以下のものが必要です:
mmap、Debian/Ubuntu/Dockerのデフォルト)公開されているRCEエクスプロイトは存在せず、それを構築することは簡単ではないエンジニアリング作業です。ほとんどの組織にとっての現実世界での影響は、RCEではなく信頼性の高いDoSです。

Python 3.9以上とh2ライブラリが必要です。
git clone https://github.com/xeloxa/CVE-2026-23918-Apache-H2-PoC.git
cd CVE-2026-23918-Apache-H2-PoC
pip install -r requirements.txt
ローカルラボのクラッシュ:
# アグレッシブなDoS
python3 cve-2026-23918.py --target 127.0.0.1 --port 8443 --mode dos
ターゲットが脆弱かどうかの確認:
# これはパッシブで、ヘッダーとH2サポートをチェックするだけです
python3 cve-2026-23918.py --target example.com --mode rce-detect
持続的な圧力:
# 低帯域幅、長時間
python3 cve-2026-23918.py --target 10.0.0.50 --mode slow-drip -d 60
2.4.66を実行している場合は、2.4.67に移行する必要があります。
すぐに更新できない場合は、設定にProtocols http/1.1を追加してHTTP/2を無効にできます(またはリストからh2を削除するだけでも可)。パフォーマンスには理想的ではありませんが、クラッシュを止めることができます。
いくつかの異なるDebianおよびUbuntuビルドでテストしました。DoSは非常に信頼性が高いです。RCEはかなり「気まぐれ」で、ターゲットが非常に予測可能なヒープ状態でない限り、現実世界のシナリオでは当てにしないでしょう。