HTTP/2 Bomb:わずか1台のPCでWebサーバーを数秒で停止させる新たなDoS攻撃
概要
2026年6月、攻撃的セキュリティ企業 Calif が「HTTP/2 Bomb」と呼ばれる新たなDoS(サービス妨害)攻撃手法を公表しました。この攻撃は、100Mbps回線につながった家庭用PC1台だけで、脆弱なサーバーを数秒で応答不能にできるという点で深刻です。テストでは、Apache httpd と Envoy に対して、単一クライアントが約20秒で最大32GBものメモリを確保・占有させることに成功しています。
影響を受けるとされるのは、nginx・Apache・IIS・Envoy・Cloudflare Pingora といった主要なWebサーバー製品のデフォルト構成です。Shodan による調査では、影響を受け得るサーバーを稼働させ、かつインターネットに公開されているホストが88万件以上見つかったと報告されています(ただし多くはCDNの背後にあり、攻撃はより困難)。
なお、この攻撃の興味深い点として、発見プロセスに OpenAI の Codex(AIソフトウェアエージェント)が関与しており、Calif の研究者の指導のもとで、人間が長年知っていながら組み合わせていなかった2つの技術を連結して実証したとされています。
攻撃の仕組み
HTTP/2 Bomb は、それぞれ何年も前から知られていた2つの手法を連結することで成立します。個々の技術は新しくありませんが、その組み合わせによって低帯域で大量のメモリを確保・固定できる実用的な攻撃が生まれました。
第1段階:HPACK インデックス参照ボム(増幅)
HTTP/2 はヘッダー圧縮に HPACK(RFC 7541)というステートフルな仕組みを使います。これは、一度送ったヘッダーを「動的テーブル」に登録し、以降はコンパクトなインデックス(最小1バイト)で参照できるようにするものです。
攻撃者はこの仕組みを悪用し、動的テーブルにヘッダーを1つ登録したうえで、1リクエストの中でそのインデックス参照を数千回送りつけます。ワイヤー上ではわずか1バイトでも、サーバー側はその都度ヘッダーの完全なコピーをメモリに展開するため、リクエストサイズからは想像できない量のメモリ確保を強いられます。報告されている増幅率は、nginx の約70:1 から Envoy では約5,700:1 にまで及びます。
従来のHPACKボム(大きな値をテーブルに詰めて繰り返し参照する方式)とは異なり、今回の変種はほぼ空のヘッダーを使い、サーバーがエントリごとに確保する管理用メモリ(bookkeeping)から増幅を得る点が新しいとされています。そのため、多くのサーバーが備える「デコード後のヘッダーサイズ上限」ではほとんど何もデコードされないため発動せず、防御をすり抜けます。
第2段階:HTTP/2 ウィンドウストール(保持)
第2段階では、HTTP/2 のフロー制御を悪用します。攻撃者は フロー制御ウィンドウを0バイトと通知することで、サーバーがレスポンスを完了できず、確保したメモリを解放できない状態を作り出します。その後、定期的に1バイトの WINDOW_UPDATE フレームを送り込み、サーバーの送信タイムアウトをリセットし続けることで、確保済みのメモリを攻撃者が望む限り無期限に固定します。
この「Slowloris型の保持」と第1段階の「圧縮増幅」が組み合わさることで、攻撃者は最小限の帯域で大量のメモリを確保させ、しかもそれを解放させない、という強力なメモリ枯渇攻撃が完成します。
バイパス手法:分割された Cookie ヘッダー
Apache や Envoy のように「ヘッダー数の上限」で対策しているサーバーに対しては、Cookie ヘッダーがバイパスに使われます。RFC 9113 §8.2.3 は Cookie ヘッダーをcrumb(欠片)ごとに1フィールドへ分割することを明示的に許容しており、分割された各crumbがヘッダー数の上限にカウントされないため、設定された制限内に収まりながら数千の確保を生成できてしまいます。
過去の関連脆弱性との関係
HTTP/2 Bomb は、過去10年にわたる一連の研究の上に成り立っています。
|
CVE |
概要 |
発見者 / 備考 |
|
CVE-2016-6581 |
オリジナルの「HPACK Bomb」 |
Cory Benfield 氏が命名 |
|
CVE-2016-8740 |
無制限の CONTINUATION フレームによるDoS(Apache httpd) |
— |
|
CVE-2016-1546 |
ワーカースレッド枯渇(Apache httpd) |
— |
|
CVE-2023-44487 |
HTTP/2 Rapid Reset(記録的なDDoS) |
Cloudflare はピーク時2.01億 rps を吸収 |
|
CVE-2025-53020 |
Apache httpd で約4,000:1 の増幅 |
Gal Bar Nahum 氏 |
|
CVE-2026-49975 |
Cookie ヘッダーを LimitRequestFields にカウントさせる Apache httpd の修正 |
HTTP/2 Bomb のバイパスに直接対応 |
参考として、CVE-2023-44487(Rapid Reset) も似た論理の攻撃でした。これは HTTP/2 のストリーム多重化とリクエストキャンセルを悪用し、大量のストリームを生成・即時リセットすることで、最小限のクライアントコストで甚大なサーバー負荷を生み出すものでした。Amazon は1.55億 rps、Cloudflare は2.01億 rps、Google は記録的な3.98億 rps の攻撃を緩和したと報告しています。
対策・緩和策
ベンダーごとに対応状況にはばらつきがありますが、主な対策は以下のとおりです。
nginx
- 1.29.8 以降にアップグレードしてください。max_headers ディレクティブ(デフォルト値1000)が追加されています。
- すぐにパッチを適用できない場合は、http2 off; で HTTP/2 を無効化します。
Apache httpd
- mod_http2 v2.0.41 を適用してください(スタンドアロンモジュールおよび trunk で提供。安定版2.4.x系にはまだ含まれない場合があります)。
- 関連する修正は CVE-2026-49975 として割り当てられています。
- 適用できない場合は Protocols http/1.1 で HTTP/2 を無効化します。
共通の防御策
- CDN・リバースプロキシの利用:脆弱な HTTP/2 エンドポイントを直接公開しない構成は、攻撃が格段に困難になります。
- WAF やカスタムのヘッダー数制限の導入。
- ヘッダー数・接続ごとのメモリ使用量・同時ストリーム数などに対するレート制御とリソース上限の設定。
まとめ
HTTP/2 Bomb 自体は「ゼロから生まれた新技術」ではなく、HPACK 圧縮増幅と Slowloris 型のフロー制御ストールという、既知だが誰も組み合わせていなかった2つのプリミティブの連結によって生まれた攻撃です。デフォルト構成の主要Webサーバーが影響を受け、低帯域・低コストで実行できる点が脅威を際立たせています。
HTTP/2 を公開している組織は、自社のサーバー製品とバージョンを確認し、提供されているパッチの適用、または CDN/リバースプロキシ・WAF を含む多層的な防御の見直しを早急に行うことが推奨されます。
参考情報源
- Calif(発見元の技術解説ブログ)
- The Hacker News, BleepingComputer, SecurityWeek, CyberInsider 他のセキュリティ報道
- CISA / OWASP / 各ベンダーのアドバイザリ(Rapid Reset 関連)
- GitHub Advisory Database(HPACK Bomb)
※本記事は公開情報をもとにした解説です。実際の対策にあたっては、各ベンダーの公式アドバイザリと最新のパッチ情報を必ず確認してください。
記載者:片山 昌樹(セキュリティ&マネージド事業部 アイズオンフォレンジックチーム)