2025年8月14日Ravie Lakshmananサーバーセキュリティ / 脆弱性
複数のHTTP/2実装において、MadeYouResetと呼ばれる新たな攻撃手法に脆弱であることが判明し、強力なサービス拒否(DoS)攻撃に悪用される可能性があります。
「MadeYouResetは、クライアントからの1つのTCP接続あたり100件の同時HTTP/2リクエストというサーバー側の一般的な制限を回避します。この制限は、クライアントが送信できる同時リクエスト数を制限することでDoS攻撃を緩和することを目的としています」と、研究者のGal Bar Nahum、Anat Bremler-Barr、Yaniv Harelは述べています。
「MadeYouResetを用いることで、攻撃者は数千件ものリクエストを送信でき、正規ユーザーに対してサービス拒否状態を引き起こし、一部のベンダー実装ではメモリ不足によるクラッシュにまで発展します。」
この脆弱性には汎用CVE識別子CVE-2025-8671が割り当てられていますが、Apache Tomcat(CVE-2025-48989)、F5 BIG-IP(CVE-2025-54500)、Netty(CVE-2025-55163)など複数の製品に影響を及ぼします。
MadeYouResetは、Rapid Reset(CVE-2023-44487)やHTTP/2 CONTINUATION Floodに続く、HTTP/2における最新の脆弱性であり、大規模なDoS攻撃に悪用される可能性があります。
他の2つの攻撃がそれぞれHTTP/2プロトコルのRST_STREAMフレームやCONTINUATIONフレームを利用して攻撃を実現するのと同様に、MadeYouResetはRapid Resetとその緩和策(クライアントがRST_STREAMでキャンセルできるストリーム数を制限)を基盤としています。
具体的には、RST_STREAMフレームがクライアントによるキャンセルとストリームエラーの通知の両方に使われるという事実を悪用します。これは、予期しない方法でプロトコル違反を引き起こすように巧妙に作成されたフレームを送信し、サーバーがRST_STREAMを発行してストリームをリセットするよう促すことで実現されます。
「MadeYouResetが機能するには、ストリームがサーバーが処理を開始する有効なリクエストで始まり、その後ストリームエラーを引き起こして、バックエンドがレスポンスの計算を続けている間にサーバーがRST_STREAMを発行する必要があります」とBar Nahumは説明しています。
「特定の無効な制御フレームを作成したり、プロトコルのシーケンス違反を絶妙なタイミングで行うことで、有効なリクエストを持つストリームに対してもサーバーがRST_STREAMを送信するようにできます。」
サーバーがRST_STREAMフレームを送信する原因となる6つのプリミティブは以下の通りです:
- 増分値が0のWINDOW_UPDATEフレーム
- 長さが5でないPRIORITYフレーム(唯一有効な長さは5)
- 自身に依存するように設定されたPRIORITYフレーム
- ウィンドウサイズが2^31−1(許可される最大ウィンドウサイズ)を超える増分値のWINDOW_UPDATEフレーム
- クライアントがストリームを(END_STREAMフラグで)閉じた後に送信されたHEADERSフレーム
- クライアントがストリームを(END_STREAMフラグで)閉じた後に送信されたDATAフレーム
この攻撃が注目される理由は、攻撃者がRST_STREAMフレームを送信する必要がなく、Rapid Resetの緩和策を完全に回避しつつ、同等の影響を与える点にあります。
アドバイザリの中で、CERTコーディネーションセンター(CERT/CC)は、MadeYouResetがHTTP/2仕様と多くの実際のWebサーバーの内部アーキテクチャ間でストリームリセットによる不一致を悪用し、リソース枯渇を引き起こすと指摘しています。これは攻撃者がDoS攻撃を誘発するために利用できます。
「サーバー主導のRapid Reset脆弱性の発見は、現代プロトコル悪用の複雑性が進化していることを示しています」とImpervaは述べています。「HTTP/2がWebインフラの基盤であり続ける中、MadeYouResetのような仕様準拠の巧妙な攻撃から防御することはこれまで以上に重要です。」
HTTP/1.1は滅びるべき#
MadeYouResetの公開は、アプリケーションセキュリティ企業PortSwiggerが、CL.0の亜種である0.CLを含む新たなHTTP/1.1デシンク攻撃(別名HTTPリクエストスマグリング)を詳細に解説し、数百万のWebサイトが乗っ取りの危険にさらされていると発表したタイミングで行われました。Akamai(CVE-2025-32094)やCloudflare(CVE-2025-4366)はこの問題に対応済みです。
HTTPリクエストスマグリングは、アプリケーション層プロトコルに影響するセキュリティ攻撃であり、フロントエンドとバックエンドサーバーによる非RFC準拠HTTPリクエストの解析の不一致を悪用し、攻撃者がリクエストを「すり抜け」させてセキュリティ対策を回避できるようにします。
「HTTP/1.1には致命的な欠陥があります。攻撃者は、どこで1つのリクエストが終わり、次のリクエストが始まるのかについて極端な曖昧さを生み出すことができます」とPortSwiggerのJames Kettleは述べています。「HTTP/2以降はこの曖昧さを排除し、デシンク攻撃を事実上不可能にします。しかし、エッジサーバーでHTTP/2を有効にするだけでは不十分であり、リバースプロキシとオリジンサーバー間のアップストリーム接続にもHTTP/2を使用する必要があります。」
翻訳元: https://thehackernews.com/2025/08/new-http2-madeyoureset-vulnerability.html