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

タイトル
location.hostname に埋め込まれた null 文字によって同一ドメインチェックが回避される
重要度
公開日
2007/02/23
報告者
shutdown、Michal Zalewski
影響を受ける製品
Firefox
SeaMonkey
修正済みのバージョン
Firefox 2.0.0.2
Firefox 1.5.0.10
SeaMonkey 1.0.8

概要

location.hostname を null 文字を埋め込んだ値に設定することで、ブラウザのドメインチェックが動作しなくなることが、Michal Zalewski 氏によって実証されました。この値を設定することでページの読み込みが行われますが、ネットワークソフトウェアは、「親ドメイン」の他のチェックをその文字より右側で行う一方、null 文字のみによってホスト名を解釈するため、現在接続しているホストについてまったく異なる解釈が成り立ちます。

この問題は、直接同一生成元違反に用いられて、クロスサイトスクリプティングの実行につながることはありません。これらのチェックは null 文字を含む完全なホスト名に対して実行されるためです。しかし、親ドメインの一致に依存している他の仕組みは、この問題によって信頼できなくなります。例えばこの脆弱性を利用すれば、悪質なページが、セッション固定攻撃に有効な、任意のサイトのドメイン Cookie を設定することが可能です。また、document.domain を任意の値に設定すれば、同じく document.domain を設定しているすべてのページに対してクロスサイトスクリプティング攻撃を実行することが可能です。

回避策

修正版に更新するまで JavaScript を無効にしてください。

参考資料

CVE-2007-0981
https://bugzilla.mozilla.org/show_bug.cgi?id=370445