2008年7月17日の投稿

2008-07-17
晴れ

SOMY 製プラグインはインストール禁止

ゆりこ による 01:07:29 の投稿
カテゴリー: WordPressハック
タグ: ,

SOMY プラグインがリストアップされた画面

かつて、WordPress 向けに有用なプラグインを提供されていた SOMY さんですが、SOMY さんが制作したプラグインすべてに、セキュリティー欠陥があることが分かりました。それは「プラグインの PHP ファイルに script 要素が埋め込まれていて、WordPress 2.0.x 以前 (2.0 を含む) で、管理画面のプラグイン一覧でリストされたときに実行されてしまう。」というものです 。プラグインをインストールするだけで発生し、停止していても script が実行されます。

画面のバージョン数字の部分に script 要素があって、XHTML ソースは次の通りです。

<td class='vers'>1.0<script src="http://wp.somy.jp/up_check/?f=logined-publish&v=1.0"></script></td>

この script 要素は、おそらくバージョン確認が目的だと思われます。今のところ、サーバー側 API が停止しており、何の反応もありませんが、将来 wp.somy.jp がクラックされたり、SOMY.JP ドメインが失効して他人に渡ったりして、悪意あるコードが設置された場合は非常に危険です。なお、WordPress 2.1 以降では、script 要素が削除されてから管理画面に表示されるので安全です。

対象プラグインは以下の通りです。

[このセクション追加] WordPress 2.0 以前で当該プラグインを使用している場合は、WordPress の管理画面を *開かずに*、FTP/SFTP ツール等で、サーバーのプラグインディレクトリー (wp-content/plugins/) から当該プラグインを削除してください。管理パネルでプラグインを無効にする必要はありません (というか、管理パネルに入ると危険です)。

以下のツールは、厳密にはプラグインではなく、WordPress のプラグイン一覧にリストアップされないので、この問題はありません。しかし、別のセキュリティー欠陥が存在する可能性は否めません。

ドキュメントに「プラグインには、バージョンチェック用の JavaScript が入っています」という記述があればマシなのですが、そういう記述が一切ないため「バックドア」と認定していいでしょう。SOMY さんは去年あたりから活動を停止されており (2007年9月9日のコメントが最新)、プラグインの更新もされていません。リリースされたプラグインはすべて古くなっており、WordPress 2.3 以降に対応していないものも多くなっています。このため、すでに「SOMY 製プラグインは (古いため) 使うべきではない」という状態だったのですが、こんなバックドアが埋め込まれているとすれば、「インストール禁止」と言うべきでしょう。WordPress 2.1 以降では問題ないとはいえ、バックドアを作ってしまうような作者のコードは、他の部分も信用しない方が無難です。

SOMY さんが現在活動中であれば、直接連絡するなり IPA に通告するなりして改善をお願いするのですが、そうではないため、この場をもって多くの人に警告するしかありません。その点が非常に残念です。

逆に言うと、この問題は、WordPress 2.0 自体の欠陥とも言えます。2.0 ブランチは一応現役なだけに 2.1 以降での修正をバックポートしてもらいたいのですが……。→ ME 2.0 については自分で直してしまえばいいのだった ;-)

「プラグイン10選」で SOMY プラグインを挙げられている人にピンバックしてみましょうか。おそらくみなさん WordPress 2.1 以降なので安全だとは思いますが。(追記: その他にも使っているユーザーを見つけたら追加します)

[追記 2008-08-20] チケット #7325 を切って報告しましたが、WordPress 2.0 ブランチでの修正は望めそうにありません。「SOMY プラグインというヤバイ例がある」と書いてみたものの、期待薄ですね……。本家が修正しないとしても ME で修正するのは自由なわけですが、あまり本家と差異ができるのは嫌なので避けたいところです。となると、地味に「SOMY プラグインは危険」と告知するしかないのかな。