Movable Type 3.34日本語版の提供を開始
本日より、Movable Type 3.34日本語版 (以下3.34-ja) の提供を開始いたします。
3.34-jaの主な修正点は、3.33以降に発見されたセキュリティ上の不具合への対策と、FastCGIサポートの向上です。
今回リリースされた 3.34ja は XSS 脆弱性の修正が主なポイントになります。
また,バージョンアップ作業は既存のインストールディレクトリにファイルを全て上書きするだけで作業が済みます。
3.33 以前をお使いのユーザは速やかにバージョンアップされることを強くオススメします。
…とまぁこの程度の内容は他の記事にお任せするとして,
折角なので 3.34ja での修正内容についてソースコードの変更点と併せて調べてみました。
一応,MovableType 技術系サイトですし(笑
MovableType 3.33ja と今回リリースされた 3.34ja の差分を取ると,
かなりの数のファイルが変更されているのがわかります。
しかし殆どのファイルについてはコメント文中のバージョン表記が変化しているだけで,
以下に述べるファイル以外は実際の動作には何ら影響していません。
SixApart から公表された更新内容をこれら機能面で変更のあったファイルと合わせて見てみます。
- FastCGIサポートの向上
-
FastCGI 関係の Apache モジュールとの親和性が高められています。
従来は MovableType のソースコードを直接書き加える hack を要するなど導入への敷居が高かったのですが,
MovableType システムのブートストラップに部分に FastCGI 用のコードが追加されています。
FastCGI の稼動を検知してクラスオブジェクトの初期化コードを切り分ける処理が追加されています。
FastCGI を使っていないユーザには特に影響ありません。
- lib/MT/Bootstrap.pm … FastCGI 用コードが追加
- スキーマバージョンの訂正
-
英語版 3.34beta1 を使っていたユーザに関係します。
英語版 3.34beta1 で変更された箇所が 3.34ja リリース時にアンドゥされたためにファイルの差分はありません。
3.33ja からバージョンアップするユーザには影響しません。
- 【重要】不正なHTMLタグによるスクリプト実行の可能性
- 【重要】MTCommentPreviewIsStaticテンプレートタグの機能を利用したスクリプト実行の可能性
- 【重要】NoFollowプラグインの無効化またはアンインストールに伴うサニタイズ処理の不具合
-
今回のバージョンアップの主となる部分です。
NoFollow プラグインに関する指摘はつい先日,
MT で nofollow プラグインを無効にすると危険
という記事がありました。…設計段階で気付けよ!てな感じもしますが。
外部からシステムに渡される多くのパラメータ(コメントやトラックバックのデータフィールド)に対して,
改行コードとヌル文字(%00)に対するサニタイズ処理が追加されています。
- php/lib/sanitize_lib.php
… ヌル文字に対するサニタイズ処理追加。ダイナミックパブリッシング環境で使用されます。
- lib/MT/Template/Contexthandler.pm
… XSS 脆弱性に関する修正
- lib/MT/Sanitize.pm
… ヌル文字に対するサニタイズ処理追加,他
- lib/MT/App.pm
… リダイレクトされた URL に対する改行コードのサニタイズ処理追加
- lib/MT/App/Comments.pm
… IP-ban 関係のバグ修正,リンク URL 中の改行コードのサニタイズ処理追加,各入力フィールド中のヌル文字に対するサニタイズ処理追加
- lib/MT/App/Trackback.pm
… 各入力フィールド中のヌル文字に対するサニタイズ処理追加
- 再構築オプションの表示
-
プラグインで追加された再構築オプション文字列が HTML エスケープされておらず,
ドロップダウンリストに正しく表示されていなかった不具合の修正です。
- tmpl/cms/rebuild_confirm.tmpl … 文字列を HTML エスケープする記述が追加
- プラグインのアップグレード機能の改善
-
ちょっと自信が無いのですが,おそらくは StyleCatcher プラグインでの修正かと思います。
CSS と JavaScript がごっそり抜けていたようです。
StyleCatcher は使ったことが無いので詳しい情報を求めています
- その他の変更
-
他,文言の追加・修正などの細かな変更があります。
- lib/MT.pm … バージョン番号が"3.4"に変更。
- lib/MT/ConfigMgr.pm … ヘルプ参照先 URL の更新
- lib/MT/L10N/*.pm … 辞書(Lexicon)の文言追加・修正
- lib/MT/Template/Context.pm … フィルタの処理順序に関するコード追加?
- plugins/nofollow/nofollow.pl … "authenticated" → "trusted" に文言修正
- mt-static/js/*.js … 辞書(Lexicon)の文言追加
現在,3.33 をお使いであれば全てのファイルを上書きコピーしてしまうのが簡単です。
小粋空間で
3.34 になって更新されたファイルだけを配布されているので,こちらを使うのも一つの手かと思います。
なお,ファイルに個別に改造を加えているなどの事情があれば,
上に挙げたファイル一覧を参考に必要なファイルだけを慎重に上書きしてください。
また,3.34ja への更新で tmpl 以下のファイルは殆ど更新されていません。
そのため従来の BigPAPI や Transformer 機能を用いるプラグインも含め,多くのプラグインがそのまま動作します。
以前,MovableType 3.3 が公開された時に 3.2 系列および 3.1x 系列へのパッチの適用に関して,
"MovableType3.1x系にMT3.21用脆弱性パッチを適用するには"
という調査記事を書きました。
ただ今回リリースされた 3.34 では過去バージョンのファイルとの間に変更点が多く,
個別にファイルを上書きする程度で対応できるレベルではありません。
そのため,もし古いバージョンのシステムをお使いであれば,早急にバージョンアップされることをオススメします。
今回のバージョンアップはそれほどニュースになっていないみたいだけれど,
修正された脆弱性が影響する範囲はかなり広範囲に及ぶことがわかる。
ところで多くの IT ベンダ,特に MT を飯のタネにしているようなところは,
そもそも今回の脆弱性についてきっちり説明と検証ができているんだろうか…?
ちと心配。
ちなみに Open MagicVox.net はカスタマイズが多すぎて
未だに 3.151 で稼動しているわけですが。
今回「も」個別にファイルにパッチを当てることになりそうです(血涙
寄せられたコメント (最新 5 件を表示しています)
…結局,3.34にシステムを移行することにしました。
動かないプラグインがあったりモジュールを全部hackし直したりで大騒ぎです。
まだ修正し切れていないためサイト閲覧に不具合があるかもしれません。
ご迷惑をおかけしますm(_^_;)m