セキュリティアドバイザリー

Fastly セキュリティアドバイザリー : X-Forwarded-Host ヘッダーを利用したキャッシュポイズニングの脆弱性

2020年8月5日

対象範囲

この脆弱性以前に報告された脆弱性変種であり、究極的にはユーザー定義データに基づいてキャッシュ可能なオリジンレスポンス作成することによるものです。この問題は、攻撃者が HTTPS リクエストを送信し、Host ヘッダー内で実際にどのサービスにも使用されていなポート番号を指定した場合に発生します。これにより、後続のリクエストが適切に処理されな方法でリソースをキャッシュすることが可能になります。

使用のサービスが次の条件の両方を満たしているお客様はこの脆弱性の影響受けます。

  • オリジンが完全な X-Forwarded-Host ヘッダー情報 (ポート番号を含む) 使用してクライアントへのリダイレクトレスポンスを作成している。

  • Fastly サービスがオリジンのリダイレクトレスポンスをキャッシュするように設定されている。

概要

Fastly は2020521午後1:30 UTC にこの問題の通知を受けました。すぐに調査を開始し、脆弱性と可能な解決策を把握するため、どのオリジンサーバーがリダイレクトレスポンスでテストポート番号を返したかを特定しました。2020年7月15日午前4:30 UTC、Fastly はまず、影響を受ける可能性のあるお客様に事態を通知しました。

影響

脆弱性が悪用された場合、影響を受けたサービスは対象のコンテンツをクライアントに配信できなかった可能性があります。 たとえば、Fastly 前面に配置したサービスに対して、攻撃者が Host ヘッダーに閉じたポートを含んだリクエストを作成したとします。

攻撃者のリクエスト :

GET / HTTP/1.1
Host: www.example.com:10000

Fastly からオリジンへのリクエスト :

GET / HTTP/1.1
Host: www.example.com
X-Forwarded-Host: www.example.com:10000

オリジン + Fastly リダイレクトレスポンス :

HTTP/1.1 302 Found
Location: https://www.example.com:10000/en
X-Cache: MISS, MISS

Fastly レスポンスをキャッシュすると、キャッシュされたリソースに対する後続の有効なリクエストが閉じたポートにリダイレクトされ、タイムアウトになります。

攻撃対象のリクエスト + レスポンス :

GET / HTTP/1.1
Host: www.example.com

HTTP/1.1 302 Found
Location: https://www.example.com:10000/en
X-Cache: MISS, HIT

対策

8月4Fastly リクエストの Host ヘッダーにリクエストを受信したものとは異なポート番号が指定されている場合、421 Misdirected Request」 (誤ったリクエスト) ステータスコードを返す修正を Varnish 実装しました。 詳細情報 [1] 概要: https://www.blackhat.com/us-20/briefings/schedule/index.html#web-cache-entanglement-novel-pathways-to-poisoning-19712
[2] ホワイトペーパー : https://portswigger.net/research/web-cache-entanglement-novel-pathways-to-poisoning

イベントの経過

2020年5月21日午後1:30 UTC - 外部のセキュリティ研究者からの通知を受け、Fastly セキュリティチームが直ちに調査を開始しました。 2020年6月5日 – Fastly 、この動作を示すリクエストから客様のオリジンを保護する解決策を判断するため、影響範囲の特定作業を開始しました。 2020年6月18日 - 内部調査を完了し、影響を受ける可能性があると特定されたお客様に対する対策と推奨事項の評価を開始しました。

2020年7月15日午前4:30 UTC - この問題の影響を受ける可能性があると特定されたお客様に連絡しました。

2020年7月16日 - 2020年7月31日 - この脆弱性の特徴を示すリクエストの追加テストを実施し、ログ記録を強化しました。

2020年8月3日午前8:00 - 2020年8月4日午後11:00 UTC - 今後すべての客様のオリジンを保護するため Fastly ネットワークに脆弱性の修正プログラムを適用しました。

問い合わ

質問がある場合は、Fastly カスタマーエンジニアリングチーム (support@fastly.com) またはセキュリティチーム (security@fastly.com) までお問い合わせください。

セキュリティアドバイザリーの購読お申し込み

入力いただいた情報は米国 Fastly 送信され、当社のプライバシーポリシー従って処理されます。内容を確認いただき、同意の「購読を申し込む」をクリックしてください。