公開日:2021/08/12 最終更新日:2021/08/12

JVNVU#99039870
HTTP WebプロキシやWebアクセラレータのHTTP/2実装不備によるHTTPリクエストスマグリングの脆弱性

概要

HTTP/2をサポートするHTTP WebプロキシやWebアクセラレータに対して、HTTP/1への変換処理の実装不備によりHTTP Request Smuggling攻撃が可能になる脆弱性が報告されています。

影響を受けるシステム

  • HTTP/2からHTTP/1への変換を行うシステム (HTTP WebプロキシやWebアクセラレータなど、RFC7230において "intermediary" として説明される機能を提供するもの)

詳細情報

HTTP/2 をサポートするWebプロキシやアクセラレータを、HTTP/1 のみをサポートしているWebサーバと組み合わせて使用している場合、HTTP/2リクエストはHTTP/1リクエストに変換されてWebサーバに届けられます。
一部のWebプロキシやアクセラレータでは、HTTP/2からHTTP/1への変換処理において、不正な形式のリクエストやレスポンスを生成してしまうことが報告されています。

例えば、HTTP/1リクエスト(やレスポンス)では、ヘッダ名やヘッダの値に改行文字やナル文字を入れる、などの形式は禁止されていますが、HTTP/2フレームにはHTTP/1では禁止されているような形式のヘッダ名やヘッダの値をエンコードすることが可能です。そのため、HTTP/2 を規定しているRFC7540では、そのような不正な内容のHTTP/2フレームをエラーにすることと規定しています(セクション8.1.2.6および10.3)。
しかし、一部のWebプロキシやアクセラレータでは、このような不正なHTTP/2フレームを不正なHTTP/1リクエストに変換してバックエンドのWebサーバに送ってしまうことが報告されています。
また、HTTP/2では必要のないContent-LengthヘッダやTransfer-Encodingヘッダを挿入された場合の扱い方の不備から、攻撃への悪用が可能となる例も報告されています。

想定される影響

悪意あるコンテンツを含むHTTP/2リクエストを処理することで、アクセス制御を回避されたり、機密情報を窃取されたり、当該システムにアクセスしたユーザへの攻撃が行われたりする可能性があります。

対策方法

アップデートする
本脆弱性の影響を受ける製品を使用している場合、当該製品の開発者が提供する情報をもとに、修正版へアップデートしてください。

参考情報

  1. CERT/CC Vulnerability Note VU#357312
    HTTP Request Smuggling in Web Proxies
  2. Portswigger Research
    HTTP/2: The Sequel is Always Worse
  3. OWASP Web Security Testing Guide
    Testing for HTTP Splitting Smuggling

JPCERT/CCからの補足情報

JPCERT/CCによる脆弱性分析結果

謝辞

関連文書

JPCERT 緊急報告
JPCERT REPORT
CERT Advisory
CPNI Advisory
TRnotes
CVE
JVN iPedia