PHPの穴はエンジンにあった レンタルサーバーのWordPressで、自分にできること・できないこと

2026年10月21日、PHPに重大な穴が見つかったと発表されました。
通称「PHP2Shell」。外から、ログインもせずに、サーバーでプログラムを動かされてしまう種類の穴です。

WordPressのサイトを持っている人なら、まずこう思うはずです。

「プラグインを更新しなきゃ」

でも、今回はそれでは直りません。
穴があるのは、プラグインでもWordPressでもなく、その下で動いているPHPそのものだからです。

車体ではなく、エンジンの話

WordPressのサイトは、ざっくり言うと次のように重なっています。

層 たとえ 誰が直す?
プラグイン・テーマ 車のオプション部品 自分(管理画面で更新)
WordPress 車体 自分(管理画面で更新)
PHP エンジン サーバー会社
Webサーバー(nginx・Apache) 道路の入口 サーバー会社

今回壊れていたのはエンジンです。
PHPの公式の発表によると、この穴はサイトのプログラムが動き出す前に突けるとされています。
つまり、WordPressやプラグインがどれだけ最新でも関係ありません。車体を磨いても、エンジンの部品は直りません。

レンタルサーバーでは、自分でエンジンを替えられない

PHPの修正版は、すでに出ています。

  • 8.5.12
  • 8.4.27
  • 8.3.36
  • 8.2.35

ところが、エックスサーバーのようなレンタルサーバーでは、自分で修正版を入れる方法がありません。
選べるのは「8.3にするか、8.4にするか」という大きな版だけです。細かい修正版を入れるのは、サーバー会社の仕事です。

ここで大事な落とし穴があります。

PHP 8.1以前は、公式の修正版が出ません。

サポートが終わった版だからです。
古い版を選んだまま放置しているサイトは、サーバー会社が修正版を入れても、守られないまま残ります。

自分にできることは3つ

1. 今のPHPの版を確かめる

WordPressの管理画面で、
「ツール」→「サイトヘルス」→「情報」→「サーバー」
を開くと、「PHPのバージョン」に 8.3.36 のような細かい数字まで出ます。

  • 8.2以上で、数字が修正版以上 → 修正済み
  • 8.2以上で、数字が修正版より小さい → サーバー会社の更新待ち
  • 8.1以下 → 修正版が来ない。8.3か8.4に切り替える

切り替えは、サーバー会社の管理画面(エックスサーバーなら「PHP Ver.切替」)でできます。
古いプラグインが動かなくなることもあるので、切り替えたらすぐ表示を確かめます。崩れたら元に戻せます。

2. どうしても危ないときは「入口で閉じる」

古い版から上げられない、でも今夜が心配。
そんなときの応急処置として、サイトを一時的に閉じる方法があります。

.htaccess という入口の設定ファイルに数行足して、すべてのアクセスに「メンテナンス中」とだけ返します。
こうすると、アクセスはPHPまで届きません。エンジンをかけないので、エンジンの穴も突けない、という理屈です。

ただし限界もあります。

  • 閉じているあいだは、サイトも管理画面も使えない
  • 同じサーバーに別のサイトが同居していて、そちらがやられたら意味が薄い
  • 穴がPHP以外(入口のWebサーバー側)にあれば、防げない

あくまで、修正版が入るまでの「つなぎ」です。

3. サーバー会社の告知を見る

いつ修正版が入るかは、サーバー会社の「お知らせ」や「障害・メンテナンス情報」に出ます。
分からなければ、問い合わせれば答えてもらえます。

「悪い人は秘密にするのに、なぜ直せるの?」

ここで素朴な疑問がわきました。
攻撃する側は、穴を秘密にしておくはずです。なのに、なぜ修正版が用意できるのか。

ふつうの流れはこうです。

  1. 研究者が穴を見つけ、こっそり開発チームに知らせる
  2. 開発チームが、秘密のまま修正版を作る
  3. 修正版と同時に公表する

公表した時点で、もう直し方はできている。だから対策が間に合います。

ところが今回は、この流れが崩れました。
報道によると、公表の予定日より前に、穴の情報がネットに漏れてしまったのです。PHPのチームは発表を前倒しする構えで、予定どおり10月21日に修正版を出しました。

そして、修正版が出たあとがいちばん危ない時間です。
修正前と修正後のプログラムを見比べれば、どこが穴だったか分かってしまうからです。
修正版の公開から短時間で大量の攻撃が始まる、と予想した専門家もいます。すでに攻撃を観測したという報告と、まだ確認していないという報告が、出そろわないまま並んでいます。

層が分かれば、慌てずにすむ

今回、私がいちばん感じたのは、
「どの層の話か」が分かれば、やることは自然に決まるということでした。

プラグインの話なら、管理画面で更新。
エンジン(PHP)の話なら、版を確かめて、サーバー会社を待つ。古ければ切り替える。

道具の名前やバージョンは、これからも変わり続けます。
でも、「車体とエンジンは別物」という構造は変わりません。
構造を知っていると、ニュースを見たときに、自分の番なのか、待つ番なのかが分かります。

まずは今日、自分のサイトのサイトヘルスを開いて、PHPの数字を見てみてください。

ブログ

BLOG

PAGE TOP