Mozilla Foundation セキュリティアドバイザリ 2007-02
- タイトル
- クロスサイトスクリプティング攻撃からの保護の強化
- 重要度
- 低
- 公開日
- 2007/02/23
- 報告者
- 複数
- 影響を受ける製品
- Firefox
- SeaMonkey
- 修正済みのバージョン
- Firefox 2.0.0.2
- Firefox 1.5.0.10
- SeaMonkey 1.0.8
概要
Firefox 2.0.0.2 および 1.5.0.10 では、Web サイトがより容易にクロスサイトスクリプティング (XSS) 攻撃から訪問者を保護できるよう、いくつかの小さな変更が行われました。
HTML 要素の属性に含まれる不正な終了文字
Mozilla ブラウザのパーサはこれまで HTML 要素の属性名に含まれる不正な終了文字を無視していました。これは、場合によっては、イベントハンドラなどの問題ある属性を除去しようとする Web サイトのコンテンツフィルタを回避するために利用される可能性がありました。コンテンツフィルタが、終了文字や区切り文字を検出する正規表現を使って属性を検索した場合にこの問題が露呈します。
新しい動作では、こうした区切り文字などの文字を、長い不正な属性名の一部とみなす代わりに考慮しないようにして、onload..="doEvil();" といった書式が実行されないようにしました。
CVE-2007-0995
http://ha.ckers.org/xss.html#XSS_Non_alpha_non_digit2
https://bugzilla.mozilla.org/show_bug.cgi?id=314980
https://bugzilla.mozilla.org/show_bug.cgi?id=315473
子フレームへの文字セットの継承
Web 上の文書は、利用される文字セットを、文書内またはサーバによって送信される HTTP ヘッダ内で指定しなくてはなりません。しかし実際には多くのサイトがこれに従っておらず、ブラウザ側で推測を行う必要があります。こうした推測のひとつに、文字セットの指定されていない子フレームは、トップレベルのページで利用されているデフォルトの文字セット (通常はユーザの地域設定から決定されます) ではなく、親ウィンドウの文字セットを引き継ぐ、というものがありました。
この動作が、ユーザが作成したコンテンツを受け入れながら、文字セットや文字エンコーディングを指定していないサイトに対する XSS 攻撃に利用される可能性のあることが、Stefan Esser 氏によって実証されました。この場合、まず最初に、tell-tale や山括弧が含まれていないためフィルタに検出されづらい、UTF-7 でエンコードされたスクリプトタグをターゲットとするサイトに埋め込んでおくことで、攻撃は実行されます。それから、そのコードが埋め込まれた (ブログのコメントなど見た目は問題なさそうな) コンテンツを含むページを、文字エンコーディングとして UTF-7 を指定した悪質なサイト上の iframe に読み込みます。ユーザがその悪質なページを表示すると、埋め込まれたコードが、ターゲットとされたサイトのコンテキストで実行されます。
新しい動作では、親コンテンツが子フレームとして同じサイトから出力されていない限り、トップレベルウィンドウと同じデフォルトの文字エンコーディングか文字セットを利用するようにしました。
CVE-2007-0996
Hardened-PHP Project Advisory 03/2007: Multiple Browsers Cross Domain Charset In heritance Vulnerability
https://bugzilla.mozilla.org/show_bug.cgi?id=356280
パスワード入力フォームの埋め込み
MySpace ユーザが最近、ユーザが作成したコンテンツ上で、MySpace の通常のログインフォームに見せかけて別のサイトにデータを送信する偽のフォームを利用し、フィッシング攻撃の被害に遭いました。それは MySpace の通常のログインフォームと同じ作りであったため、Firefox のパスワードマネージャはそのフォームを正当なものと認識し、保存されていたパスワードを自動的に補完しました。なお、パスワードマネージャを使わない場合でも、他のブラウザでアクセスした多くのユーザはそのフォームに自分でパスワードを入力し、同じように被害に遭いました。このため MySpace は、ユーザが作成したコンテンツにパスワード入力フォームが含まれないよう、サイトに変更を行いました。
Firefox のパスワードマネージャは、パスワードデータの送信先を保存して、フォームの送信先が以前入力した際と同じ場合のみ補完を行うよう改良が行われました。しかしこれでも、攻撃者が通常のフォームコントロールに加えてサイトにスクリプトを埋め込むことができた場合は、そのスクリプトからユーザの入力をすべて読み取ることができるため、ユーザを保護することはできません。
CVE-2006-6077
https://bugzilla.mozilla.org/show_bug.cgi?id=360493
Adobe Reader の汎用的な XSS
Adobe Reader を通じた「汎用的なクロスサイトスクリプティング」が、Stefano Di Paola 氏によって 23rd Chaos Communication Congress で公開されました。この脆弱性 (CVE-2007-0045) は、PDF 文書を提供しているすべてのサイトに対して利用することができ、Adobe Reader 7.0.8 およびそれ以前のバージョンに影響します。
これらの古いバージョンを利用している場合は、Adobe Reader 8 にアップグレードすることで、この問題やその他の脆弱性を回避することができます。アップグレードの必要性に気付いていないユーザを保護するため、Firefox は Adobe Reader によるこの種類のリクエストをブロックするように変更が加えられました。
http://www.wisec.it/vulns.php?page=9
https://bugzilla.mozilla.org/show_bug.cgi?id=366082