複数の HTTP/2 実装に CONTINUATION フレームの取り扱い不備

独立行政法人情報処理推進機構(IPA)および一般社団法人JPCERT コーディネーションセンター(JPCERT/CC)は4月9日、複数のHTTP/2実装におけるCONTINUATIONフレームの取り扱い不備について「Japan Vulnerability Notes(JVN)」で発表した。公表時点での影響を受ける製品は以下の通り。

観光庁が注意喚起、Booking.com 利用者へのフィッシング被害

Node.js HTTP/2 server(CVE-2024-27983)
Envoy HTTP/2 codec(CVE-2024-27919、CVE-2024-30255)
Tempesta FW(CVE-2024-2758)
amphp/http(CVE-2024-2653)
Go net/http および net/http2(CVE-2023-45288)
nghttp2(CVE-2024-28182)
Apache httpd(CVE-2024-27316)
Apache Traffic Server(CVE-2024-31309)

HTTP/2プロトコルでは、リクエストやレスポンスを複数の「フレーム」からなる「ストリーム」としてやりとりしており、ヘッダ情報はHEADERSフレームで送ることとされているが、一つのHEADERSフレームに収まらない場合には、後続の情報をCONTINUATIONフレームを使って送り、ヘッダ情報を含む最後のフレームにはEND_HEADERSフラグを立ててヘッダ情報の最後であることを示している。

JVNによると、複数のHTTP/2実装に対して、CONTINUATIONフレームの取り扱い不備を悪用することでサービス運用妨害(DoS)攻撃が可能となる問題が報告されており、報告者の記事では、CONTINUATIONフレームを送り続けることによるCPU処理負荷の増大やメモリ枯渇、アサーションエラーを発生させることによる異常終了などの例が説明されている。

JVNでは、開発者が提供する情報をもとに、最新版へアップデートするよう呼びかけている。

© 株式会社イード