緊急 PHP2Shell:PHP 本体に認証不要の RCE 脆弱性が 2 件。修正版は 2026 年 10 月 21 日に公開済みです。 影響を確認する →
← ニュース一覧

Prime Mover の CVE-2026-115806:WordPress のコメント経由で仕込まれた PHP オブジェクトインジェクションがエクスポート時に発動

バックアップ・移行プラグイン Prime Mover(1万件以上のインストール)に CVSS 9.8 の PHP オブジェクトインジェクションが見つかりました。匿名コメントでペイロードが保存され、管理者の次回エクスポートまたはリストアで発動します。バージョン 2.2.2 で修正済みです。

Codexonics 社の WordPress プラグイン Prime Mover – Backup and Migration(アクティブインストール数 1 万件以上)に存在する深刻な PHP オブジェクトインジェクションが、2026 年 10 月 24 日に CVE-2026-115806 として公開されました。CVE を割り当てた Wordfence による評価は CVSS 3.1 で 9.8 です。

攻撃の仕組み

この脆弱性は 2 段階で成立する点が特徴的です。

  1. 書き込み。 認証されていない訪問者が wp-comments-post.php から通常のコメントを投稿します。コメント本文には base64 エンコードされたシリアライズ済み PHP オブジェクトが含まれています。WordPress はこれを他のコメントと同様に wp_comments に保存し、アカウントは不要です。
  2. 発動。 その後、管理者が Prime Mover で通常の エクスポートまたはリストア を実行すると、プラグインの検索・置換処理(recursiveUnserializeReplace())が保存された値を base64 デコードし、allowed_classes の制限なしで unserialize() に渡します。

悪用に必要なガジェットチェーンはプラグイン自身に同梱されています。バンドルされた Freemius SDK に、プロパティ指向プログラミング(POP)チェーン(FS_Clone_Manager::__set → FS_Option_Manager::set_option → store() → update_option())が存在し、注入されたオブジェクトが WordPress のオプションを書き換えられます。別のプラグインやテーマは必要ありません。

移行プラグインはドメイン置換のためにデータベース全体のシリアライズデータを展開・再パックする必要があり、第三者が書いたテキストまでデシリアライズされてしまうため、この種の脆弱性が繰り返し見つかっています。数日前には同様のコメント経由の問題が Duplicator でも報告されました。

影響範囲

  • Prime Mover の 2.2.1 以前のすべてのバージョン。
  • 10 月 24 日時点の wordpress.org のバージョン統計によると、インストールの約 49% が依然として 2.1 系以前で稼働していました。
  • 10 月 24 日時点で実際の悪用や公開エクスプロイトは報告されておらず、CISA の KEV カタログにも掲載されていません。

対応策

  • Prime Mover 2.2.2 以降に更新してください(10 月 19 日リリース)。unserialize() を stdClass のみに制限し、Freemius SDK も更新されています。
  • プラグインを無効化すれば脆弱なコード経路は止まりますが、すでにコメントに保存されたペイロードは削除されません。承認待ちのコメントもデータベースには書き込まれるため、コメントのモデレーションでは保存を防げません。
  • すぐに更新できない場合は、Prime Mover を無効化し、公開コメントの停止を検討し、エクスポートやリストアを実行する前に wp_comments 内の不審な base64 エンコード済みシリアライズ文字列を確認してください。
  • 旧バージョンでエクスポートやリストアを実行していた場合は、更新後に wp_options の最近変更された行も確認しましょう。

PHP コード全般への教訓

ユーザー入力を含む可能性のあるデータに unserialize() を使うのは、PHP で昔から知られた落とし穴です。独自プラグインやレガシー PHP アプリを保守している場合は、データ交換には json_decode() を使うか、最低でも unserialize() に ['allowed_classes' => false](または明示的な許可リスト)を指定してください。

古い WordPress プラグインや、信頼できないデータをいまだにデシリアライズしている独自 PHP コードを運用している場合、RescuePHP が監査と安全なパッチ適用をお手伝いします。すぐにアップグレードできないレガシー PHP 環境にも対応可能です。

出典: CVE レコード、Codexonics 2.2.2 リリースノート、Dr. Web