Mozilla Foundation セキュリティアドバイザリ 2007-39

タイトル
window.location の競合を通じたリファラ偽装
重要度
公開日
2007/11/26
報告者
Gregory Fleischer
影響を受ける製品
Firefox
SeaMonkey
修正済みのバージョン
Firefox 2.0.0.10
SeaMonkey 1.1.7

概要

window.location プロパティを設定するタイミングの競合状態を利用して、偽の HTTP Referer ヘッダを生成することが可能であることが、Gregory Fleischer 氏によって実証されました。この問題を利用すると、クロスサイトリクエストフォージェリ (CSRF) 攻撃からの保護として Referer ヘッダのみに依存している Web サイトに対して、そうした攻撃を行うことが可能でした。

window.location の設定によってページ遷移が発生する際、Referer ヘッダは、そのスクリプトが実行されたコンテンツのアドレスを反映するはずです。しかし、これまでリファラには、スクリプトが実行されたウィンドウ (またはフレーム) のアドレスが設定されていました。この脆弱性はそのわずかな違いから生じていました。モーダルな alert() ダイアログを用いると、攻撃スクリプトを一時停止させることが可能であり、攻撃者の最初のコンテンツが意図した参照ページに置き換えられるまで、目的の URI の読み込みが行われませんでした。Referer は、スクリプトが実行されたウィンドウの現在の URI に設定された場合、正しい URI ではなくなっていました。

参考資料