Xのタイムラインに「バックドアが増えてる」って流れてきて、ちょっと焦りました。
自分のブログ「cat’s hand」もWordPressです。
入られてたら、知らないうちに変なページを出されたり、ほかのサイトへの攻撃に使われたりすることもあります。
なので、何が起きてるのかを調べて、自分のサイトが入られていないかも確かめました。
調べるのも確かめるのも、Claude Codeにやってもらっています。
先に結論です。
- 10月は、PHPそのものの穴(PHP2Shell)と、プラグイン2つの事件(UpdraftPlus・Rank Math PRO)が続いた
- まずはPHPのバージョンと、入っているプラグインを見て、当てはまるかを確かめる
- 入られていないかは、WP-CLIのコマンドで「公式の中身と同じか」「知らない管理者・ファイルがないか」を見る
cat’s handは、どれにも当てはまらず、今回確かめた範囲では入られた跡も見つかりませんでした。
10月に何が起きているのか
調べてみると、「バックドアが増えてる」の中身は、10月に続いた3つの事件でした。
PHP2Shell(PHPそのものの穴)
PHPに、外から勝手にプログラムを動かされる穴が2つ見つかりました。
CVE-2026-109618とCVE-2026-109619で、どちらも深刻度は9.2(CVSS v4.0)です。
ログインしていなくても狙えます。
10月21日に修正版が出ていて、各系列の修正済みバージョンはこれです。
- PHP 8.5: 8.5.12
- PHP 8.4: 8.4.27
- PHP 8.3: 8.3.36
- PHP 8.2: 8.2.35
Qualysは、更新しか完全な対策はないと書いています。
watchTowrによると、修正版が出た10月21日から、実際に攻撃が来ています。
UpdraftPlus(バックアップのプラグイン)
作っている会社のサイトが10月17〜18日に侵入されて、UpdraftCentral(複数サイトをまとめて管理する機能)の接続キーが盗まれました。
そのキーを使って、つないでいたサイトに悪いプラグインを入れたり、管理者を勝手に作ったりしています。
Patchstackは、悪いプラグインを99種類見つけたそうです。「Site Health Cache」みたいな、それっぽい名前のものもありました。
UpdraftPlusを入れているだけのサイトが、全部当てはまるわけではありません。
当てはまるのは、UpdraftCentral Cloudにつないでいたサイトです。
修正版(無料版1.26.13、有料版2.26.13)にするとキーは無効になりますが、もう入れられたプラグインや管理者は消えません。
Rank Math PRO(SEOのプラグイン)
有料版のRank Math PROで、日本時間の10月16日5時ごろ〜16時ごろ(UTCで10/15 20:02〜10/16 07:12)に配られたファイルに、マルウェアが混ざっていました。
きれいな版は3.0.124です。
Wordfenceによると、新しい版を入れても、すでに置かれたファイルや管理者、予約された処理は残ります。
こういうニュースの調べ方
Xで流れてくる話は、大げさだったり、別の話と混ざっていたりします。
自分はこの順で確かめました。
- 名前(PHP2Shell、UpdraftPlusなど)とCVE番号で検索する
- 公式の発表か、セキュリティの会社の記事(Qualys、watchTowr、Patchstack、Wordfenceなど)を読む
- 「どのバージョンが危ないか」「どれで直ったか」「更新すれば終わりか」の3つだけメモする
- 自分のサイトのバージョンと、入っているプラグインに当てはめる
3つめの「更新すれば終わりか」が大事でした。
UpdraftPlusもRank Math PROも、更新しても、もう入れられたものは消えません。
だから、自分のサイトの中も見る必要があります。
自分のサイトが入られていないか、確かめたコマンド
サーバーにSSHでつないで、WP-CLI(WordPressをコマンドで操作する道具)で確かめました。
どれも読むだけのコマンドで、サイトの中身は変えません。
WordPressを置いたフォルダ(wp-config.phpがある場所)に移動してから実行します。
下のコマンドは、ふつうの環境の書き方です。
cat’s handのサーバー(エックスサーバー)では、PHPのバージョンを合わせるために、php8.3 /usr/bin/wp plugin listのような形で動かしています。
知らないファイルや処理が出てきても、すぐ消さないでください。
本当に悪いものかを確かめてからのほうが安全です。
1. PHPのバージョン
php -v
cat’s handではphp8.3 -vで確かめました。
レンタルサーバーだと、コマンドで使うPHPと、サイトで動いているPHPが別のことがあります。
このコマンドで分かるのは、コマンドで使うほうです。
サイト側は、サーバーの管理画面などで別に確かめます。
cat’s handは、コマンド側もサイト側も8.3.36で、PHP2Shellの修正版でした。
サイト側は、10月22日にサーバーで確かめています。
2. プラグインの一覧と、公式の中身と同じか
wp plugin list --fields=name,status,version
wp plugin verify-checksums --all
1つめで、UpdraftPlusやRank Mathが入っていないか、知らないプラグインがないかを見ます。
2つめは、WordPress.orgにある公式のファイルと、中身が同じかを比べるコマンドです。
比べたファイルに書き換えや不足があれば、ここで出ます。
ただ、これだけで悪いファイルを全部見つけられるわけではありません。
ただ、2つめで比べられるのは、WordPress.orgで配られているプラグインだけです。
Rank Math PROみたいな有料版は、比べる元がないので確かめられません。
3. WordPress本体が、公式の中身と同じか
wp core verify-checksums
Successと出れば、本体のファイルは公式と同じです。
ただ、比べるのは公式にあるファイルだけです。
あとから足されたファイルまでは分からないので、このあとの5〜7も見ます。
4. 知らない管理者がいないか
wp user list --role=administrator --fields=ID,user_login,user_registered
UpdraftPlusの事件では、管理者を勝手に作られています。
自分や一緒に運営している人が作った覚えのない管理者がいないかを見ます。
登録日(user_registered)も手がかりになります。
5. 置かれていないはずの場所に、PHPファイルがないか
find wp-content/uploads -name "*.php*"
ls wp-content/mu-plugins
lsで「No such file or directory」と出たら、mu-pluginsのフォルダ自体がないということです。異常ではありません。
uploadsは画像を置く場所なので、ふつうはPHPファイルがありません。
mu-pluginsは、ふつうのプラグインと違って、管理画面から無効にできず自動で動くプラグインの置き場所です。
どちらも、隠れるのに使われやすい場所です。
6. 最近変わったPHPファイル
find . -name "*.php" -mtime -30
ここ30日で変わったPHPファイルが出ます。
本体やプラグインを更新していれば、そのファイルがたくさん出るので、更新した覚えがあるものかを見ます。
7. 予約されている処理
wp cron event list --fields=hook --format=csv
WordPressには、決まった時間に処理を動かす予約(cron)の仕組みがあります。
ここに知らない名前の処理が入っていないかを見ます。
10月には、消してもファイル・データベース・サーバーのメモリから自分で戻ってくるバックドアも報告されています。
なので、1か所だけ見て安心しないほうがいいです。
cat’s handの結果
- PHP: コマンド側もサイト側も8.3.36で、修正版だった
- プラグイン: 4つだけ(ACF・Classic Editor・Contact Form 7・SiteGuard)。UpdraftPlusもRank Mathもなし。4つとも公式の中身と同じ
- WordPress本体: 公式の中身と同じ
- 管理者: 8月から1人だけ
- uploadsのPHP: なし。mu-pluginsもなし
- 予約処理: 知らないものはなし(前のテーマの更新チェックの予約が残っていただけ)
ひとつだけ気になったのは、使っていない古いテーマ(Cocoonの親と子)が、サーバーに残っていたことです。
9月にオリジナルテーマへ切り替えたあと、消し忘れていました。
使わないものを置いておく理由もないので、バックアップを取ってから消しました。
入られていたら
cat’s handでは見つかりませんでしたが、もし見つかったときの対処も、出典の記事に書かれています。
UpdraftPlusの場合は、こんな感じです。
- プラグインを修正版にして、UpdraftCentralの接続キーを消す
- 知らないプラグインと管理者を消す
- 管理者のパスワードを変える
- 入られた跡があれば、10月17日より前のバックアップから戻すことも考える
「消したのに戻ってくる」タイプもあるので、自信がなければ、サーバー会社やセキュリティの会社に相談するのが早いです。
まとめ
「バックドアが増えてる」の中身は、10月に続いたPHPの穴と、プラグイン2つの事件でした。
まずはPHPのバージョンと、入っているプラグインを見る。
当てはまらなくても、公式の中身と同じか、知らない管理者やファイルがないかは、コマンド数本で確かめられます。
とまぁ、いろいろ書きましたが、これを全部自分でやるのは、知識も手間もかなり要ります。
自分も、調べるのもコマンドも、Claude Codeにやってもらいました。
まずは、ふだん使っているAIに「このニュース、自分のサイトは大丈夫?」と聞いてみてください。
出典
- PHP2Shell: Find, Mitigate, and Patch Now(Qualys)
- PHP2Shell RCE Exploited: CVE-2026-109618 & CVE-2026-109619(watchTowr)
- PHP Issues Emergency Patches for Two Critical PHP2Shell RCE Flaws(The Hacker News)
- UpdraftPlus WordPress Plugin Security Breach Enables Backdoor Attacks(Search Engine Journal)
- Popular WordPress SEO Plugin Rank Math PRO Hijacked to Deliver Self-Restoring Backdoor(The Hacker News)
- WordPress Backdoor Rebuilds Itself After Cleanup Using Files, Database, and Shared Memory(The Hacker News)