MFSA 2007-23: Internet Explorer を通じた Firefox の起動を利用したリモートコードの実行
TERRAZINE - 「firefoxurl://」問題の回避法がイカし過ぎるでの引用に爆笑。そら、こういう書き方したら、「そもそもFirefoxを入れんときゃええのんちゃうんか」と突っ込まれて当然ですな。
ところで今回の修正は Firefox や Thunderbird に危険なデータが渡るのを防ぐだけであり、Internet Explorer の脆弱性は修正されません
としているが、これはIEなりWindowsの脆弱性だったんだろうか? /.Jでの以下のコメントを信用すると、
http 等のスキームの URL の中に URL としてありえない文字が含まれる場合、自動的にパーセント符号化されるのは、それらのスキームに対して asynchronous pluggable protocol handler が登録されていて、この asynchronous plugglable protocol handler が符号化を行うからです。 HKEY_CLASSES_ROOT\PROTOCOLS\Handler の下にあるのが、 asynchronous pluggable protocol handler が登録されているスキームです。
Firefox は firefoxurl: スキームに対する asynchronous pluggable protocol handler を登録するわけではありません (Firefox は HKCR\FirefoxURL には書き込みますが HKCR\PROTOCOLS\Handler\firefoxurl には書き込みません)。 http: 等と firefoxurl: で動作が違うのはそのためだと思います。
- Firefoxはインストール時に自身を起動するハンドラとしてHKCR\FirefoxURLを作成する。
- Firefoxに渡される起動時パラメータにURLとして許されない文字が含まれていたらURLエスケープするべきである(でないと任意のプログラムを呼び出される可能性がある)。
- WindowsではShellExecuteExで起動されるハンドラがURLエスケープを自前で行わなくても良いようにasynchronous pluggable protocol handlerという機構を用意している。
- が、Firefoxは自前でのエスケープもasynchronous pluggable protocol handlerの登録も行わなかった。
- したがって、ShellExecuteExでHKCR\FirefoxURLを呼び出すところに大穴があいた。
ということで、これはFirefox(のデフォルトブラウザ登録機能)の脆弱性だと思うんだが。
とか分かったようなことを書いては見たが、どうもそんな単純にど素人が判断できるようなもんでは無いようです。しかし、ShellExecuteEx APIの仕様に関する問題をInternet Explorer の脆弱性
と呼んでみたり、Firefox(またはここで挙げられてる他のアプリ)をインストールしなければ悪用できない脆弱性の回避策としてWeb ページの閲覧には Firefox を利用されることを強く推奨
したりするセンスよりは、↓に訳されてるIEBlogの主張の方に説得力を感じるなぁ。
アプリケーションとその個別機能のバリエーションは無限にあるので、呼び出し側が意味のある自動パラメータチェックを行うことは非常に困難である。入力パラメータの安全性を確認するのは受け側のアプリケーションの責任である。
Extravehicular Activity Research at MIT Man Vehicle Laboratory - Bio-Suit
そういう色を塗るか? どこの戦隊かと思ってしまうがな。
痛いニュース(ノ∀`):ショック!段ボール肉まん、中国のテレビ局の「やらせ」でした
狼少年? ま、第三者的には面白くなってきて何より。
一本足の蛸 - 異世界と外来語
希望屋 〜renka ci=set〜 「学園キノ 2」のパロディ元ネタ
労作。俺が分かったのは挙げられてるうちのせいぜい4割強かな、精進せねば(何を?)。
実際に車→二足歩行ロボットにトランスフォームするロボ(動画) : Gizmodo Japan(ギズモード・ジャパン)
双方向に自動変形するとは……これはすごい。