CyberGlossary

脆弱性

Host ヘッダインジェクション

別称: X-Forwarded-Host インジェクション, 仮想ホスト悪用

定義

アプリが HTTP Host ヘッダ(または X-Forwarded-Host)を信用して URL を組み立てることにより、攻撃者がリダイレクトやキャッシュ汚染を引き起こせる脆弱性。

Host ヘッダインジェクションは、サーバーが Host ヘッダや X-Forwarded-Host などのプロキシ系派生ヘッダを使って絶対 URL(パスワードリセットリンク、リダイレクト、画像 src、canonical、OAuth コールバックなど)を作成し、許可リスト検証を行っていないときに発生します。攻撃者はヘッダを書き換えてリンク先を悪意あるドメインに向け、パスワードリセットの汚染、キャッシュ汚染、SSRF、応答の攻撃者ホストへの誘導などを引き起こします。リバースプロキシ構成や Host 入力が複数あるフレームワークで頻発します。対策には、設定された信頼ホストから URL を導出する、Host/X-Forwarded-Host を許可リストで検証する、未知の forwarded ヘッダをエッジで破棄する、HSTS の利用が含まれます。

  • アプリが Host を利用しているため、パスワードリセットメールに https://attacker.com/reset?token=... が含まれる。
  • X-Forwarded-Host で /index に攻撃者 URL を埋め込ませ、CDN キャッシュを汚染する。

関連用語