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リクエストを処理することで、アクセス制御を回避されたり、機密情報を窃取されたり、当該システムにアクセスしたユーザへの攻撃が行われたりする可能性があります。
アップデートする
本脆弱性の影響を受ける製品を使用している場合、当該製品の開発者が提供する情報をもとに、修正版へアップデートしてください。
ベンダ | リンク |
The Netty Project | Possible request smuggling in HTTP/2 due missing validation |
Pulse Secure, LLC | SA44790 - HTTP Request Smuggling vulnerability with Virtual Traffic Manager (vTM) |
F5, Inc. | K27144609: Overview of HTTP/2 desync attacks |
The Apache HTTP Server Project | Revision 1890245 |
Akamai Technologies | HTTP/2 REQUEST SMUGGLING |
-
CERT/CC Vulnerability Note VU#357312
HTTP Request Smuggling in Web Proxies -
Portswigger Research
HTTP/2: The Sequel is Always Worse -
OWASP Web Security Testing Guide
Testing for HTTP Splitting Smuggling