アカウント名:
パスワード:
タレコミでは脆弱性の詳細が不明だが、F-secureの同じページへリンクが張られていることからすれば「Firefoxメモリコラプション脆弱性」 [f-secure.jp](SecuniaではMozilla Firefox Memory Corruption Vulnerability [secunia.com])と呼ばれているもののようだ。その記事によると
Firefox 3.5のこの脆弱性は、JavaScriptコード処理を行う際のエラーに起因する。詳細については、我々の脆弱性情報を参照して頂きたい。SBerryが発見したこのエクスプロイトは、昨日、よく知られたエクスプロイト・サイトに投稿された。
よく知られたエクスプロイトサイトといえば、milw0rm.org だろう。
2009-07-13 Mozilla Firefox 3.5 (Font tags) Remote Buffer Overflow Exploit [milw0rm.org] HITS:24451
デモページ(http://www.milw0rm.org/exploit.php?id=9137)も準備されているので、現時点で最新のナイトリー(Firefox 3.5.1pre [mozilla.org]とFirefox 3.6 alpha1 [mozilla.org])でデモページを読み込んでみると、クラッシュこそしなかったが、しばらくすると
Warning: Unresponsive scriptA script on this page may be busy, or it may have stopped responding. You can stop the script now.or you can contimue to see if the script will complete.
というダイアログウィンドウが出て、script を止めることができた。なお他のコメント [srad.jp]によれば、Firefox 3.0.x では再現しないという話だが、うちの Firefox 3.0.11(on WindowsXP SP3/RAM 512MB)で読み込んだところフリーズした(症状としてはメモリを食い尽くす)。
【参考】Firefox 3.5.x に未パッチの脆弱性 [seesaa.net]
この脆弱性は Javascript の記述ミスにより引き起こされ ― 例えば HTML の fontタグ等 ―悪用された場合、リモートコード実行に繋がり、メモリ破損を引き起こすものです。version 3.5 で発見されましたが、それ以前のバージョンも影響を受ける可能性があるとのこと。(※ コメントをいただいたあるむ氏と私の version 3.0.11 で実証コードを試してみましたが、再現しなかったので、3.0.11 以前のバージョンは影響を受けない可能性が高いと思われます。)
毎度水を差すようで悪いとは思うんですが、
件のPoCではまずJavaScriptコードで、シェルコード(calc.exe起動)を含む約.375MBの文字列×600個の配列(単純計算でも最低約225MB)を作成しています。これは脆弱性を突いたときのコード実行の成功確率を高めるためで[*]、そうしておいてからJSエンジンの脆弱性(FONT要素の扱い)を突くJSコードを実行し、メモリ破壊を引き起こして先のシェルコードを実行するようになっています。 [*] 参考: MYCOMの記事PoCの内側 - Heap Spray(1) [mycom.co.jp], (2) [mycom.co.jp])。
配列作成にはメモリを大量に消費しますし(環境にも寄るでしょうが)結構時間が掛かりますが、脆弱性を突く部分(その関数を呼び出す99行目もしくは100行目)を削るだけでメモリ破壊(クラッシュ)は起きません。逆に、メモリ破壊を起こすだけなら配列作成の部分(25-52行目)は要りませんし、メモリ大量消費は起こりません。
で、スクリプト実行が長時間続いたときの中断ダイアログが出て止めることができた/メモリを食い尽くしてフリーズというのは、まだ仕込みの段階で脆弱性を突くところまで行ってなかったのではないかと思います。せめて中断しなかった場合はどうか、自環境のメモリ量にあわせ配列を調整した場合はどうかなどを見ないと、試したことにはならないですよ。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日本発のオープンソースソフトウェアは42件 -- ある官僚
Exploit公開中 (スコア:1, 参考になる)
「未対策の脆弱性が発見」というだけでなく、「攻撃方法も公開中」であることを
考慮した上で、ユーザは対応しましょう。
Exploitのデモページを試してみました(w (スコア:2, 参考になる)
タレコミでは脆弱性の詳細が不明だが、F-secureの同じページへリンクが張られていることからすれば「Firefoxメモリコラプション脆弱性」 [f-secure.jp](SecuniaではMozilla Firefox Memory Corruption Vulnerability [secunia.com])と呼ばれているもののようだ。その記事によると
よく知られたエクスプロイトサイトといえば、milw0rm.org だろう。
2009-07-13 Mozilla Firefox 3.5 (Font tags) Remote Buffer Overflow Exploit [milw0rm.org] HITS:24451
デモページ(http://www.milw0rm.org/exploit.php?id=9137)も準備されているので、現時点で最新のナイトリー(Firefox 3.5.1pre [mozilla.org]とFirefox 3.6 alpha1 [mozilla.org])でデモページを読み込んでみると、クラッシュこそしなかったが、しばらくすると
というダイアログウィンドウが出て、script を止めることができた。なお他のコメント [srad.jp]によれば、Firefox 3.0.x では再現しないという話だが、うちの Firefox 3.0.11(on WindowsXP SP3/RAM 512MB)で読み込んだところフリーズした(症状としてはメモリを食い尽くす)。
【参考】Firefox 3.5.x に未パッチの脆弱性 [seesaa.net]
モデレータは基本役立たずなの気にしてないよ
Re:Exploitのデモページを試してみました(w (スコア:3, 興味深い)
毎度水を差すようで悪いとは思うんですが、
件のPoCではまずJavaScriptコードで、シェルコード(calc.exe起動)を含む約.375MBの文字列×600個の配列(単純計算でも最低約225MB)を作成しています。これは脆弱性を突いたときのコード実行の成功確率を高めるためで[*]、そうしておいてからJSエンジンの脆弱性(FONT要素の扱い)を突くJSコードを実行し、メモリ破壊を引き起こして先のシェルコードを実行するようになっています。
[*] 参考: MYCOMの記事PoCの内側 - Heap Spray(1) [mycom.co.jp], (2) [mycom.co.jp])。
配列作成にはメモリを大量に消費しますし(環境にも寄るでしょうが)結構時間が掛かりますが、脆弱性を突く部分(その関数を呼び出す99行目もしくは100行目)を削るだけでメモリ破壊(クラッシュ)は起きません。逆に、メモリ破壊を起こすだけなら配列作成の部分(25-52行目)は要りませんし、メモリ大量消費は起こりません。
で、スクリプト実行が長時間続いたときの中断ダイアログが出て止めることができた/メモリを食い尽くしてフリーズというのは、まだ仕込みの段階で脆弱性を突くところまで行ってなかったのではないかと思います。せめて中断しなかった場合はどうか、自環境のメモリ量にあわせ配列を調整した場合はどうかなどを見ないと、試したことにはならないですよ。