Mozilla Foundation セキュリティアドバイザリ 2005-48

タイトル
InstallTrigger コールバックによる同一生成元違反
重要度
低 (Mozilla Suite では高)
報告者
Matthew Mastracci
影響を受ける製品
Firefox
修正済みのバージョン
Firefox 1.0.5
Mozilla Suite 1.7.10

概要

ソフトウェアインストールを立ち上げる InstallTrigger.install() メソッドは、成功またはエラーとなる最終的なステータスによって呼び出されるコールバック関数を受け入れています。インストールメソッドを呼び出した後、すぐ別のページに遷移させることにより、攻撃者によって選ばれたページのコンテキストでこのコールバック関数が実行されてしまいます。ユーザが不要なインストールダイアログをキャンセルした場合も、エラーステータスを返すため、同様の結果になります。遷移したページから Cookie やパスワードなどのデータを盗み取ったり、ユーザがそのサイトにログインしていた場合、ユーザに代わって商品を購入するといったアクションを実行するのに、このコールバックスクリプトが利用される可能性があります。

Firefox のデフォルト設定では、addons.mozilla.org だけがこのインストールダイアログを呼び出せるようになっています。これは、ユーザ自身が不審なサイトをホワイトリストに追加していることに加えて、悪質なサイトが、より強力な攻撃ベクターを持ったその不審サイトからインストールを実行するようユーザを仕向けた場合に限り、利用される可能性があります。

Mozilla Suite では、ホワイトリストはデフォルトで無効になっており、どのサイトでもインストールダイアログを表示してこの脆弱性を利用することができます。

修正版では、別のページに遷移した場合、保留になっているコールバック関数をクリアするよう仕様が変更されました。

回避策

Firefox: インストールを許可するサイトの一覧から信頼できないサイトを削除するか、ソフトウェアインストールを完全に無効化してください。

  1. [ツール] メニューから [オプション] を選択し、オプションダイアログを開きます。
  2. 左パネルの [Web 機能] アイコンを選択します。
  3. [Web サイトによるソフトウェアのインストールを許可する] からチェックを外すか、同じ行にある [許可サイト] ボタンをクリックして、信頼できないサイトを削除してください。

Mozilla Suite: ソフトウェアインストール機能を無効化してください。

  1. [編集] メニューから [設定] を選択し、設定ダイアログを開きます。
  2. 左パネルの [詳細] グループから [ソフトウェアインストール] を選択します。
  3. [ソフトウェアのインストールを可能にする] からチェックを外してください。

参考資料