2009年1月17日の投稿

2009-01-17
晴れ

14年前のこの日

ゆりこ による 14:06:57 の投稿
カテゴリー: 社会問題
タグ: ,

関西で生まれ育ったわたしにとっては、1995年1月17日は、忘れようとも忘れられない日です。今年は14年後という「中途半端」な年なので、マスコミでは特集番組が少なく、NHK スペシャルの「阪神・淡路大震災、秘められた決断」ぐらいでしょうか。関西の民放でも特番はほとんどありません。

集められた証言はA4版でおよそ2400ページ。避難所のトイレ設置から犠牲者の斎場手配まで。被災地は何に直面し、人々はどう動いたのか? その現実を、時系列であらゆる角度から捉えたかつてない記録だ。しかも、この聞き取りは「非公開」を前提に行われたため、行政マンらがこれまで胸に秘めてきた「苦悩と選択」が克明に語られている。
どの命を優先して救うのか? 被災者に不満が残らない物資配布の方法は? 数千もの犠牲者の火葬をどう行うのか…? NHK は、研究グループと聞き取り調査の対象となった神戸市職員一人一人から了解を得て、その原文を入手してきた。

あとは、GIGAZINE の「あの『阪神・淡路大震災』で本当は一体何が起きていたのか、その真実がよくわかるムービー集」もすばらしいです。GIGAZINE お得意のムービー紹介ですが、さまざまな動画が紹介されており、すべて必見だと思われます。

mb_convert_kana の a オプションで XSS 脆弱性

ゆりこ による 14:45:58 の投稿
カテゴリー: WordPressハック,ソフトウェア
タグ: ,

先日修正した、Ktai Style および Mobile Eye+ パッチの脆弱性ですが、詳細を公開しておきます。リリース時に公開した情報としては、Ktai Style では「classic テーマに存在したセキュリティーホールを修正」であり、Mobile Eye+ パッチでは「全角→半角変換に伴なうセキュリティーホールを修正」となっていましたが、具体的には「コメントやトラックバックの表示に関して XSS 脆弱性があった」のです。

これは、全角→半角変換で、mb_convert_kana() 関数を a オプション付きで使っていたのが原因でした。このため、(いわゆる) 全角の英数字のみならず、記号類も半角に変換されていました。つまり、<, > というかっこが <, > になってしまったのです。これだと、コメントに以下のようなコードを書かれてしまうと、半角変換によって、JavaScript コードとなってしまいます。

 <script>alert(document.cookie);</script>

しかし、シングル/ダブルクォートは WordPress によってエスケープされるため、以下のコードは通りません。

<script>alert('hogehoge');</script>

シングル/ダブルクォートが使えないため、危険なコードを作るのは困難でしょうが、それでも安全とは言い難いです。

対策としては、a オプションを使わないのが一番確実でしょう。Ktai Style, Mobile Eye+ の場合、画面出力すべてをバッファリングしてその結果を mb_convert_kana() に通しているため、HTML エスケープすることは不可能です (変換前に HTML コードが含まれているため)。といって、<, > に変換されそうな全角記号を先に &lt;, &gt; に置換しておくのは、漏れがありそうで怖いです。

なお、MobilePressNEO は、逐次全角→半角変換を行う方式でしたが、今のところ a オプションをやめる方向で直しています。ちなみに、MT4i の方は、Encode モジュールおよび Jcode.pm による全角半角変換は厳密に英数字のみなので、この脆弱性はないようです (作者にも確認ずみ)。

この脆弱性の発覚により、未パッチの Mobile Eye+ は大変危険な状態となりました。すぐにパッチを当てるか、PHP を 5.0 以降にして Ktai Style をご利用頂きますようお願いします。