
MadeYouReset 脆弱性を検証するためのPoC
このリポジトリには、インフラストラクチャがCVE-2025-8671(MadeYouReset)に対して潜在的に脆弱であるかを検証するために開発された、制御されたPoCが含まれています。 このコードは完全なエクスプロイトではなく、実際のDoSも実行しません。目的は、公開されているベクターをシミュレートし、サーバーの応答を観察することだけです。
CVE-2025-8671について CVE-2025-8671は、ストリームまたは接続の終了後に送信された特定の不正なフレームをサーバーが適切に処理しないHTTP/2実装に影響を与えます。 攻撃者はこの欠陥を悪用して、CPU/メモリの過剰な消費を引き起こし、サービス拒否(DoS)を発生させる可能性があります。
公開されている一般的なベクターには、次のものがあります:
コードが行うこと このスクリプトは:
指定されたターゲットとのHTTP/2接続を確立します。
既知のベクター(上記参照)に対するリクエストを実行します。
サーバーの応答を監視し、次のようなイベントを記録します:
各試行について、次の内容を含むJSON出力を生成します:
制限事項
このスクリプトは実際のDoSエクスプロイトではありません。制御された検出のために、ベクターごとに数十フレームのみを送信します。
このコードはサーバーのCPU/メモリの枯渇を直接測定するものではありません。分析は以下に依存します:
考えられるすべての悪用シナリオをカバーしているわけではなく、公開されているベクターのみを対象としています。
攻撃用ツールではなく、防御的検証ツールです。
使用方法
必要条件
実行
python3 poc_cve.py
結果の解釈
GOAWAY = 1 → サーバーは接続を適切に終了しました。 RST_STREAM = 1 → サーバーは無効なストリームを適切にリセットしました。 responses > 0 → サーバーはリクエストを処理しました(有効なパスでは許容されます。ただし、その後終了することが前提です)。 conn_closed_early = 1 → サーバーは接続を即座に閉じました(一部のベクターでは正常です)。 error → クライアント側のローカルエラーを示します(必ずしもサーバーの問題ではありません)。
脆弱でないインフラストラクチャは通常、次のことを行います:
接続を終了する(GOAWAY)か、無効なストリームをリセットする(RST_STREAM)
不正なフレームの後もアクティブな処理を維持しない
ログに遅延や異常な消費が現れない
結論
このコードを使用すると、HTTP/2インフラストラクチャがCVE-2025-8671に関連するベクターに対して適切に反応するかどうかを、安全かつ非侵入的に検証できます。
これは、実際のDoSを発生させたり、本番環境で脆弱性を悪用したりせずに、不適切な動作を検出するという、防御的PoCとしての目的を果たします。