WordPress MailPoet (wysija-newsletters) Unauthenticated file Uploadの原因と対策

(更新日: 2014/07/08)

今時、ファイルアップロードに脆弱であることは珍しいので WordPress MailPoet (wysija-newsletters) Unauthenticated file Upload として知られている脆弱性を調べてみました。

事前に読んだ情報ではzipファイルがアップロードでき、このためにページの改ざんやコード実行ができる旨の解説がされていました。zipファイルでページ改ざん、で何となくは原因と対策は分かります。 VCSのログを見れば簡単に原因が分かるだろう、と思ったのですがどうも公開されているSVNのコミットはまとめてコミットしているらしく、結構差分がありました。 そこでMetasploitのプラグインを見てみました。

やはりプラグインのテーマをアップロードしているようです。 上記の情報を元に差分を見てみると直ぐに原因と修正箇所が分かりました。

この差分からアクションを実行するロールであるかの確認、アップロードされたZIPアーカイブが妥当であるかのバリデーションが追加されています。

MetasploiteのプラグインはテーマとしてアップロードされるZIPファイルに攻撃用となるPHPスクリプトを入れています。WordPressのMailPoetがロールの確認を怠っていたため、管理者以外でもテーマのZIPファイルがアップロード可能となり、不正なファイルを含むZIPファイルが展開され配置されてしまっていた事が問題の原因です。 対策としてロールの確認、ZIPファイルコンテンツのバリデーションが追加されています。

 

まとめ

WordPressプラグインでテーマやプラグインなどを扱う場合は必ずロールの確認、アップロードされたZIPファイルのコンテンツを確認しましょう。そうすればこのような致命的な脆弱性を防止できます。

権限確認漏れはそれ自体が致命的な問題です。入力データのバリデーションはセキュリティ対策の基本中の基本です。この脆弱性もZIPファイルの内容をバリデーションしていれば、権限の確認漏れがあっても少しは問題のダメージを低減可能でした。

今日たまたま「WordPressを使わない」というセキュリティ対策をオプションとして推奨する記事を読んだのですが、今回のような脆弱性はWordPressでなくても、プラグインアーキテクチャのシステムであれば起こりえる問題です。

人気の高いソフトウェアは脆弱性が発見された場合の影響範囲は大きいですが、人気の無いソフトウェアの脆弱性はあまり話題にならず、放置され続けることも非常に多いです。広く利用されているソフトウェア、あまり利用されていないソフトウェア、それぞれ良い面、悪い面があるので一概に「広く利用されているソフトウェアが危険(リスクが高い)」とも言えません。あまり利用されていないソフトウェアはあまりレビューされておらず、危険であることも多いです。

Comments

comments

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です