CyberGlossary

脆弱性

HTTP レスポンス分割

別称: HTTP CRLF インジェクション, HTTP ヘッダインジェクション

定義

ユーザー入力中の信頼できない CR/LF 文字によって、サーバーが攻撃者の制御する追加 HTTP レスポンスを送出してしまうインジェクション脆弱性。

HTTP レスポンス分割(CRLF インジェクション)は、アプリがユーザー入力を Location、Set-Cookie、独自ヘッダなどのレスポンスヘッダに、改行コード(CR/LF)をフィルタせずに反映する場合に発生します。攻撃者は %0d%0a を注入して元のヘッダブロックを終了させ、新しいヘッダ、ステータス行、さらには 2 つ目のレスポンス全体を挿入できます。結果としてキャッシュ汚染、XSS、セッション固定、中継機器への認証情報漏えいが起こり得ます。CWE-113 や CVE-2004-0500 でその影響が広く知られました。対策は、ヘッダ値中の CR/LF を拒否またはエスケープする、ヘッダ API での改行注入を禁止するフレームワークの利用、入力を URL エンコードするリダイレクトヘルパーの使用です。

  • ユーザーパラメータ中の %0d%0a を使って Location ヘッダから Set-Cookie を注入する。
  • レスポンスを分割し、キャッシュに /home として攻撃者の本文を保存させる。

関連用語