Firefox の history.dat に関する脆弱性

2005年12月11日(日) 14時43分 by level
B ?
Tags: Firefox

各所で既報の Firefox 1.5 の history.dat に関する脆弱性(SANS)ですが、Mozilla Japan から報告されているように、大騒ぎするようなことは無いようです。Secunia のランクも5段階の一番下の Not Critical です。

極端に長いタイトルの付いた Web ページが原因で (提供された概念実証コードは 250 万文字)、Mozilla Firefox および Mozilla Suite が起動時にブラウザの履歴データを読み込む際、「ハング」したような状態に陥ることが報告されました。これは低速なコンピュータでは数分かかることがありますが、ブラウザはそのうち正常に起動します。この現象は、その長いタイトルの付いたアイテムが履歴ファイルから削除されるか、最終的に期限切れになるまで続きます。

私たちはこの問題を調査し、このサービス拒否 (DoS) 攻撃が応用されて悪用可能なクラッシュを引き起こす可能性があるとの主張には根拠がないこと、またこの主張を裏付ける証拠が提供されていないことを確認しました。ユーザやコンピュータに、起動時の一時的な不応答を超えるリスクはないと考えられます。

この問題に遭遇した方は、履歴からアイテムを削除することで、起動時の不応答を回避できます。

実証コードは こちらで公開されているので、試して見ました(リンク先にはソースコードが示されているだけで、動かすにはソースコードを切り出して html として保存する必要があります)。実行したのは、Firefox 1.5 + Windows XP SP2 です。

実行すると 5000x500=250万 バイトの文字列をページのタイトルに設定する JavaScript が動きます。このとき 10数秒程度反応がなくなりますが、その後は問題なく動きます。Firefox を終了させると、問題の history.dat のファイルサイズが 1.3MB から一気に 11MB 程度まで増えます。この状態で Firefox を起動させると数分間かかりますが、起動してしまえば問題はありません。メニューから履歴をクリアすれば history.dat は数KB になって、以後再起動時にも問題ありません。

JavaScript なんで、もっと長いタイトルを設定するのは簡単ですが、そうするとメモリ不足でハングする可能性があります。ただし、それは、JavaScript を許可している限りどんなブラウザでも起こり得ることです。JavaScript をどんなサイトにも有効にしておくことはそういう危険性があるということです(そういうときに NoScript )。長いタイトルをそのまま保存しようとする Firefox の動作にも問題はあるようですが、今回の件で修正の動きはあるのでしょうか? Bugzilla を調べたら、history.dat にファイルサイズによる制限をという古いバグはありましたが。

更新

四畳半 裸電球によると、NoScript 1.1.3.5 が history.dat に関する問題に対処したそうです。

"Truncate title" option: enabled by default, even on whitelisted sites, is a quick & dirty work around for Firefox DOS bug 319004

早速試してみたところ、先の実証コードでもまったく問題ありませんでした。拡張機能で対応してしまうのもどうかとは思いますが。

コメント

コメントはありません。

トラックバック (1)

トラックバックは検索対象外です。

この記事にリンクしているページ < >

  1. [53] http://sabimaru.mydns.jp/diary/200512.html