配布物に混入したプラグインのバックドアは「再生成の仕組み」から止める(Rank Math SEO PRO 3.0.123 事例)
正規の配布物にマルウェアが混ざっていた場合、プラグインを更新するだけでは侵害が残る。手で掃除するなら、アクセスのたびにバックドアを作り直す仕組みを先に止めてから、残りのファイルやアカウントを消す。
事例
- WordPress の SEO プラグイン有料版「Rank Math SEO PRO」の v3.0.123(2026-10-15 20:02〜10-16 07:12 UTC に取得したもの)にマルウェアが混入。差し替え版は v3.0.124。
- 有効化したサイトでは、サイトへのアクセスをきっかけにバックドアが作り直されることがある。
判定
| 状態 | 対応 |
|---|---|
| 該当版を有効化した | 侵害されたものとして扱う |
| インストールしたが有効化していない | ファイル削除、クリーン版の導入、念のためスキャン |
| ダウンロードしただけ | これだけでは侵害の兆候なし |
復旧の順番
第一候補は、侵害期間より前のバックアップからサイトと DB を戻すこと。 戻した後も認証情報の入れ替えは必要。手で掃除する場合は次の順番を守る。
- 再生成を止める(全部終えてから次へ)
- プラグインのフォルダーごと削除する(無効化だけでは足りない)。
wp_optionsから開発元が示した不正なエントリーを消す。- 可能なら攻撃者のドメインへの外向き通信を止める。
- 他の仕掛けを探す
wp-content/mu-plugins/、他プラグインやテーマのinc/includes/lib/に不審な PHP(base64_decodeと XOR ループ、proc_openなど)。- 見覚えのない管理者アカウント:
wp user list --role=administrator - コアにないファイル(今回は
wp-includes/class-wp-cache-util.php)を消し、wp core verify-checksumsで確認。 .htaccessに.cacheなどを PHP として実行させるルールがないか。wp cron event listと Web サーバーユーザーの crontab。uploads/に PHP がないか。- WordPress の外:SSH の
authorized_keys、他ユーザーの crontab、動いているプロセス。
- 認証情報をすべて入れ替える:WordPress のパスワード、
wp-config.phpの DB 認証情報と鍵・ソルト、決済や SMTP の API キー、ホスティング・FTP・SSH の認証情報、管理者の 2 要素認証。 - 確かめる:スキャン、
wp core verify-checksums、wp plugin verify-checksums --all(有料プラグインは公式のクリーンなコピーと比較)。数日間は外向き通信と、消したファイルが戻ってこないかを見る。
注意点
- 有料プラグインは WordPress.org のチェックサムで検証できないことが多い。公式から取り直したコピーと比べる。
- 「パスワード再設定やダウンロードのリンク」をメールで送ってくる便乗フィッシングに注意する。公式サイトへは自分で開いて行く。
- 痕跡を調べる前に消してしまわないよう、可能なら先に保全する(悪用済みの脆弱性は「痕跡を保全してから」更新する(SiteGuard Server Edition 事例))。サーバー側の居座りは Linux サーバーの居座りを点検する(PHP の auto_prepend_file と .bashrc の偽 sudo、CL-UNK-1211 事例) も参照。
出典
- @MalwareBibleJP · 2026-10-21
- Rank Math「Rank Math PRO 3.0.123 Security Incident」: rankmath.com
- Wordfence: wordfence.com