エグゼクティブサマリ
WordPressの人気プラグイン Duplicator(1.2.40以前) にリモートから任意コード実行可能な脆弱性が発見された。Duplicator はWordPressサイトを複製することのできるプラグインであり、Duplicatorにより複製したサイト(複製先)が影響を受ける。このため、プラグインのアップデートだけでは対策にならない。詳細は対策の項を参照されたし。概要
WordPressのプラグイン Duplicator はWordPressサイトを手軽に複製できるプラグインであり、サイトの移行や複製に広く用いられています。Duplicatorは複製元にプラグインとして導入して、移行用の二種類のファイルを生成します。Duplicator → installer.php インストーラー 2018-xxxxxxxxxxxxxx.zip アーカイブファイル
これらのファイル移行先サイトにアップロードして、installer.phpを実行することで、サイトの複製を作成します。
このinstaller.phpに脆弱性があり、任意コード実行を許す結果となります。
脆弱性の原因
脆弱性の概要は以下の記事(英文)にて紹介されています。Duplicator Update Patches Remote Code Execution Flaw
※ 2018年9月10日 17:40追記 : この記事本文にはPoCはありませんが、リンク先(PDF)にて即実行可能なPoCが記載されています。ブックマークコメントにてご指摘いただきました。ありがとうございました。
この記事の内容から、当該脆弱性を再現したところ、リモートコード実行が確認できました。
- installer.phpはwp-config.php (WordPressの設定ファイル)を自動生成する
- この生成部分にPHPコードのエスケープ漏れがあり、外部からの入力がPHPコードとして実行される
攻撃ステップは、以下の通り。
- 複製先サイトに installer.php が残っていることを確認する
- installer.phpを実行し、パラメータとしてPHPコードをインジェクションする
- 生成後の wp-config.php にアクセスし、任意コードを実行する
対策
Duplicator 1.2.42 (現時点の最新バージョン)にて対策されています。即時のバージョンアップ(複製元、複製先の両方)を推奨しますが、対策はこれだけでは不十分です。既に Duplicator で複製したサイト(複製先)は、installer.phpおよび installer-backup.php を即時削除する必要があります。このファイルに限らず、移行により生成されたファイルのうち、サイト閲覧に必要ないファイルは削除を推奨します。
複製先に脆弱な Duplicator で生成された installer.php が残っている限り、複製元でDuplicatorをバージョンアップしても、installer.phpに対する攻撃は受けるため、上記は重要です。
一般論としても、このようなセットアップ用のスクリプト類は、セットアップ完了後はただちに削除すべきですし、セットアップ中も外部からアクセスできないように、アクセス制御すべきです。
0 件のコメント:
コメントを投稿