ニュース
「Apache」「Node.js」も ~多くの実装が影響を受ける脆弱性「HTTP/2 CONTINUATION Flood」
「Rapid Reset」脆弱性と比べても深刻
2024年4月10日 06:22
複数のHTTP/2実装でCONTINUATIONフレームの取り扱いに不備があることが4月3日、セキュリティ研究者のBartek Nowotarski氏によって明らかにされた。サービス運用妨害(DoS)攻撃につながる可能性のある脆弱性で、「HTTP/2 CONTINUATION Flood」と名付けられている。
HTTP/2プロトコルはリクエストやレスポンスを複数の「フレーム」からなる「ストリーム」としてやりとりする設計になっており、それらに含まれるヘッダー情報は「HEADERS」フレームで送るルールとなっている。もしヘッダー情報が一つの「HEADERS」フレームに収まらない場合は、後続の情報を「CONTINUATION」フレームで送信し、最後のフレームには「END_HEADERS」フラグを含める仕組みだ。
しかし、HTTP/2実装の多くにはこの仕組みに不備があり、「END_HEADERS」フラグがない場合を十分に考慮していない。そのため、無限のフレームを送り付けてCPUリソースやメモリを枯渇させたり、サーバーをクラッシュさせることができるという。これは以前に報告された「Rapid Reset」脆弱性と比べても深刻な脅威となりうる。
執筆時現在、影響が確認されているのは以下の実装だ。
- 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)
ベンダーからセキュリティアップデートが提供されている場合は、できるだけ早く適用するべきだろう。