THE 11-HOUR WINDOW該当する時間枠
問題は版ではなく落とした時刻。3.0.123 の一部だけが改ざん版だった
-
10/12
3.0.123 は既に配布中
この日に落とした版はクリーンだったとの報告(Reddit・secnews 経由)
-
10/15
20:02 UTC 改ざん版の配布が始まる
日本時間 10/16 05:02。ダウンロードと更新が対象
-
10/16
07:12 UTC 時間枠の終わり
日本時間 10/16 16:12。このあと取り下げ、3.0.124 を公開
-
確認
版・入れた時刻・目印を見る
有効化していたら侵害として扱う
30秒でわかる
・何が起きたか:Rank Math 脆弱性 CVE-2026-111862(CVSS 9.8。Wordfence が採番)の中身は、コードの欠陥ではなくマルウェアの混入。SEO プラグイン Rank Math SEO PRO 3.0.123 のうち、2026-10-15 20:02〜10-16 07:12(UTC。日本時間 10/16 05:02〜16:12)にダウンロード・更新された一部に入っていた
・直った版:Rank Math は該当ファイルを取り下げ、クリーンな 3.0.124 を公開した
・読み違えやすい点:3.0.123 が入っているだけでは侵害の証拠にならない。逆に、改ざん版を有効化していたサイトは 3.0.124 に上げても裏口・管理者・スケジュールタスクが残りうる
・無料版:WordPress.org の Rank Math SEO(無料版)は影響対象として挙がっていない
まずやること
・PRO を使っている人:確認コマンドで、いまの版と、時間枠に 3.0.123 を入れたか(自動更新を含む)を確かめる
・時間枠に入れて有効化していた人:更新で終わりにしない。時間枠より前のバックアップからの復元か手動の清掃、サーバーが読めた秘密情報の差し替えまで行う
・保守を外部に任せている人:時間枠に更新が走ったかと、上の対応の有無を委託先に確かめる
WordPress のプラグインも取り込んだソフトウェアの一部です。手口と防御の全体像はサプライチェーン攻撃とは|手口・防御ツール比較・npm 12の新機構まで実践解説にまとめています。本記事は、この件で自分のサイトが該当するかを確かめ、該当したら何をするかに絞ります。
Rank Math SEO PRO 3.0.123 の時系列(タイムライン)
時刻は公表どおり UTC で書き、日本時間(+9時間)を添えます。Wordfence の公表日時と 3.0.124 の公開日時は、確かめた資料に記載がありません。
| 日時(UTC) | 出来事 | 出典 |
|---|---|---|
| 2026-10-12 | 3.0.123 は既に配布されていた。この日に入手した 3.0.123 はクリーンだったという Reddit の報告がある | SecNews |
| 2026-10-15 20:02 | 改ざんされた 3.0.123 の配布が始まる(日本時間 10/16 05:02) | Wordfence PSA |
| 2026-10-16 07:12 | 時間枠の終わり(日本時間 10/16 16:12)。Rank Math は該当ファイルを取り下げ、3.0.124 をクリーンな置き換えとして公開した | Wordfence PSA |
| 公表後 | Wordfence が CVE-2026-111862(CVSS 9.8)として PSA を出す。Security Online は「実際に悪用されている」と報じた(この点を書いたのは同社のみ) | Wordfence PSA・Security Online |
| 2026-10-19 | 本記事の確認時点。影響を受けたサイトの数、攻撃者、改ざん版が配布に入った経路は公表されていない | — |
何が起きたか:正規の配布経路から改ざん版が届いた
Rank Math Pro(正式名 Rank Math SEO PRO)は無料版に機能を足す有料版で、WordPress.org ではなく Rank Math から配布されます。今回は、その正規の経路から約11時間だけ改ざんされたパッケージが届きました。海賊版や偽サイトではなく、正規のライセンスで正規に更新したサイトが対象になった点が、よくあるプラグインの脆弱性と違います。
公表されている改ざん版の挙動は次のとおりです(Wordfence PSA と、Rank Math の案内を引いた各報道)。
| 挙動 | 何が起きうるか |
|---|---|
| 有効化されると永続的なアクセス手段を仕込む | プラグインを替えても入口が残る |
| rank1cdn[.]com と通信する | 外向き通信の記録が目印になる |
| ページが読み込まれるたびに隠れた裏口を作り直す | 裏口のファイルだけ消しても戻る |
| Web サーバーが読めるパスワード・DB の接続情報・API キーなどを外に出しうる | 盗まれた秘密は、ファイルを掃除しても使われ続ける |
攻撃者が何を得たかで、やるべきことが変わります。以下は WordPress の一般的な仕組みからの整理で、この件で実際に何が盗まれたかは公表されていません。
| 攻撃者が得たもの | できること |
|---|---|
| Web サーバーの権限での PHP 実行 | wp-config.php を読む、ファイルを置く、外へ送る |
| DB の接続情報 | DB に外から届く構成なら、管理者の追加やオプションの書き換え |
認証用キーと salt(wp-config.php) |
DB の中身と合わせれば、ログイン Cookie を作れうる。差し替えるまで有効 |
| 管理者アカウント | プラグインの追加やテーマの編集を通じたコード実行 |
改ざん版が配布に入った経路について、Rank Math の配布基盤が侵害されたのか等を本記事は推測しません。
対策:Rank Math 脆弱性への対応は「有効化したか」で分かれる
AM I AFFECTED該当するかの見分け方
時間枠に入れて、有効化したら侵害として扱う
-
PRO を使っている
無料版は対象として挙がっていない
-
3.0.123 を入れた時刻
10/15 20:02〜10/16 07:12 UTC
-
有効化したか
一度でも有効にしたか
-
復元か清掃
+秘密情報の差し替えと監視
| 状況 | 対応 | 出どころ |
|---|---|---|
| 時間枠に 3.0.123 を入れて有効化した | 侵害されたものとして扱う。復元か清掃、秘密情報の差し替え、再感染の監視 | Rank Math の案内 |
| 時間枠に入れたが、一度も有効化していない | プラグインのファイルを消して 3.0.124 を入れ、スキャンする | 報道(Security Online ほか) |
| 時間枠にダウンロードしたが、インストールしていない | この件だけで侵害されたとみる根拠はない。手元のファイルは捨てて 3.0.124 を入手し直す | Rank Math の案内(捨てる点は本記事の判断) |
| 3.0.123 を時間枠の外で入れた | 3.0.124 に更新する。この件の対象ではない | Rank Math の案内 |
| いつ入れたか記録が無い | 時間枠に入れて有効化した前提で扱う | 本記事の判断 |
有効化していた場合の手順は次のとおりです。
・元に戻す:時間枠(有効化した時点)より前に取ったバックアップから復元する。復元できなければ、徹底した手動の清掃を行う
・手動で清掃するなら:PRO のフォルダを丸ごと消してから、3.0.124 を Rank Math から入れ直す。報道によれば無効化だけでは足りない。裏口がページの読み込みのたびに作り直されるためだ
・秘密を差し替える:DB のパスワード、API キー、wp-config.php の認証用キーと salt。salt を替えると全員がログアウトされるので、管理者のパスワードも合わせて再設定する
・見張る:rank1cdn[.]com への外向き通信、管理者の増減、ファイルの変化を続けて見る
3.0.124 に更新しても残るもの
WHAT UPDATING LEAVES更新で消えないもの
3.0.124 で直るのはプラグイン本体だけ
改ざん版が有効だったサイトに残りうるもの:
- 隠れた裏口(偽のコアファイル・PHP が動く .cache ファイル)
- wpsupport_ で始まる見知らぬ管理者
- wp_options の不正なキーとシステム cron の目印
- 外に出たかもしれない DB パスワード・API キー・salt
復元か清掃のあと、秘密情報を差し替えて監視する
3.0.124 はプラグインのフォルダの中身を入れ替えます。裏口のファイルはフォルダの外(wp-includes など)に、管理者とオプションは DB に、cron はサーバーの設定に置かれるので、更新では消えません。盗まれた秘密情報はサイトをどれだけ掃除しても攻撃者の手元に残ります。Rank Math が 3.0.124 への更新だけでは不十分としているのは、このためです。
自システムの確認コマンド:Rank Math 脆弱性の痕跡を見る
WordPress のルート(wp-config.php のあるディレクトリ)で実行します。wp は WP-CLI です。どれも読み取りだけのコマンドで、見ているのは「該当する条件と、報告されている目印」です。侵害されたかどうかの判定ではありません。
0. git でサイトを管理している場合
git で配備しているサイトだけが対象です。サーバー上の作業ツリーで、リポジトリに無いファイルと、時間枠のプラグインの変更を見ます。git を使っていなければ飛ばします。
git fetch --all --prune
git log --all --since='2026-10-15' --until='2026-10-17' --format='%h %ci %s' --stat -- wp-content/plugins
git status --porcelain --untracked-files=all
git status で ?? wp-includes/class-wp-cache-util.php のような見知らぬファイルが出たら、次の 2 の目印と突き合わせます。.gitignore でプラグインやアップロードを除外していると、その下の変化は出ません。
1. 版と、時間枠に入れたか
wp plugin list --fields=name,version,status,auto_update | grep -i rank
find wp-content/plugins -maxdepth 1 -iname '*rank-math*'
zgrep -hE '\[1[56]/Oct/2026' /var/log/nginx/access.log* | grep -E 'update-core\.php|update\.php|plugin-install\.php|action=activate' | awk '{print $4, $6, $7, $9}'
1行目で、いまの版と有効かどうか(status)が分かります。wp-content/plugins/ の下に Rank Math のフォルダが2つあれば、無料版と PRO の両方を入れています。3行目は管理画面からの更新・インストール・有効化の要求を、10月15日・16日のアクセスログから拾います(nginx の combined 書式。Apache なら /var/log/apache2/access.log*)。ログの時刻はサーバーの時刻なので、日本時間のサーバーなら 10/16 05:02〜16:12 の行を見ます。
プラグイン一覧からの更新(admin-ajax.php への POST)と WP-Cron による自動更新は、URL にプラグイン名が出ないため、このログでは区別できません。自動更新の結果を知らせるメールや、ホスティングのバックアップの日時と突き合わせます。
2. 報告されている目印を探す
Rank Math 自身が挙げた目印は、rank1cdn[.]com への外向き通信と、wpsupport_ で始まる見知らぬ管理者の2つです。このほか「wp_options の不正な3キー、隠し PHP の裏口、偽の WordPress コアファイル、PHP が動く .cache ファイル、システム cron の目印」も挙がっていますが、具体名(キーの名前・wp-includes/class-wp-cache-util.php・cron の #ms6v46・管理者メールの @wp-mail[.]net)は BugShield・SecNews などの二次情報にしか無く、本記事では報告されている目印として扱います。キーの名前は先頭に _ が付く表記と付かない表記があるため、部分一致で探します。
wp user list --role=administrator --fields=ID,user_login,user_email,user_registered --orderby=registered --order=DESC
wp option list --fields=option_name | grep -E 'uf6qdn2hmm|t8krdk990phb|np5pvf754c'
wp db search 'rank1cdn' --all-tables
grep -rlI 'rank1cdn' wp-config.php wp-content wp-includes wp-admin
find wp-includes -maxdepth 1 -name 'class-wp-cache-util.php'
grep -rlI --include='*.cache*' '<?php' wp-content wp-includes
grep -rn 'ms6v46' /etc/crontab /etc/cron.d /var/spool/cron 2>/dev/null
wp core verify-checksums
管理者一覧は登録の新しい順です。wpsupport_ で始まる名前、@wp-mail.net のメール、2026-10-15 以降に登録された覚えの無い管理者を探します。外向き通信は Web サーバーのアクセスログには残らないので、ファイアウォール・DNS・プロキシの記録で rank1cdn を探します。
結果の読み方と、このコマンドの限界
検証用の WordPress(WP-CLI 2.12.0、DB は SQLite)に目印を置いて、掲載したままのコマンドを走らせました。
| コマンド | 陽性対照(目印を置いた) | 陰性対照(置かない) |
|---|---|---|
| 管理者一覧 | 足した wpsupport_x1(@wp-mail.net)が登録日時つきで出た |
admin だけ |
| wp_options のキー | _uf6qdn2hmm など3つが出た |
0行 |
| DB の rank1cdn | 値に含めたオプションの行が出た | 0行 |
| ファイルの rank1cdn | 文字列を含めた PRO のファイルが出た | 0行 |
| 偽コアファイル | 置いた class-wp-cache-util.php が出た |
0行 |
| .cache の PHP | 置いた .cache と x.cache.php が出た |
0行 |
| cron の目印 | /etc/cron.d に置いた行が出た |
0行 |
| アクセスログ | 10/16 の更新と有効化の要求が出た | 10/14 だけのログで0行 |
| git | 時間枠のコミットと、未追跡の偽コアファイルが出た | 0行 |
最後の wp core verify-checksums は未検証です。WP-CLI はこのコマンドで、公式の一覧に無いファイルが wp-includes などにあると「File should not exist」と警告します。
読むときの注意は2つです。
・何も出なくても安全とは限らない:具体名の多くは二次情報で、攻撃者が名前を変えれば外れる。ログの保存期間を過ぎた分は確かめられず、それは「問題なし」ではない
・出ても侵害とは限らない:セキュリティプラグインの検出ルールや作業メモに rank1cdn の文字列が入っていることがある。.cache の検索はキャッシュ系プラグインのファイルも拾う
最後に判断を分けるのは「時間枠に 3.0.123 を入れて有効化したか」です。目印が出なくても、該当するなら侵害として扱います。
影響範囲:Rank Math SEO PRO の誰が対象か
| 対象 | 影響 |
|---|---|
| PRO 3.0.123 を時間枠にダウンロード・更新し、有効化した | 対象。侵害として扱う |
| 同じく時間枠に入れたが、有効化していない | 改ざん版のファイルが置かれている可能性がある。消して 3.0.124 へ |
| 3.0.123 を時間枠の外で入れた | この件の対象ではない |
| 3.0.124 以降を入れた | この件の対象ではない |
| 無料版 Rank Math SEO(WordPress.org) | 影響対象として挙がっていない |
| 同じサーバーの別サイト | 公表は無い。Web サーバーの権限で他のサイトのファイルを読める構成なら、そちらの秘密情報も見直す(本記事の判断) |
WordPress 本体の脆弱性への対応と痕跡の見方は、wp2shell(CVE-2026-63030)WordPress 脆弱性|7.0.2で修正、今の更新先と確認手順で扱っています。正規の配布物が改ざんされる攻撃が、ほかにどんな形をとるかはサプライチェーン攻撃の仕組みを図解|なぜnpm installだけで乗っ取られるのか・攻撃6分類と防御の対応にまとめました。
参照ソース
・PSA: Malware Found in Some Rank Math SEO PRO 3.0.123 Downloads(Wordfence。Vulners 収録) — 時間枠・CVE・CVSS・Rank Math の案内・目印
・Rank Math SEO PRO Supply-Chain Compromise Exploited in the Wild via Version 3.0.123(Security Online) — 悪用されているとの報道、有効化していない場合の対応
・Rank Math SEO PRO 3.0.123: Κακόβουλος κώδικας σε 11 ώρες λήψεων(SecNews) — 10月12日の入手分がクリーンだったという Reddit の報告、目印の具体名
・Rank Math SEO PRO 3.0.123 malware: check your download time and recover safely(BugShield) — 目印の具体名、手動の清掃の手順





