結論から書きます。
首相が「大至急のお願い」とXで呼びかけたPHPの脆弱性は、修正版がすでに出ています。ただし、PHPで動くサイトの約48%は、PHP公式の新しい修正版が出ない古いバージョンで動いています。
WordPressのブログを持っている人がやることは、次の3つです。
- 契約しているサーバー会社のお知らせを見る(PHP本体の更新はサーバー会社の仕事です)
- 自分のサイトのPHPバージョンを確かめる(WordPressの管理画面で見られます)
- 8.1以下なら、8.3か8.4へ切り替える準備をする
慌ててブログを閉じる必要は、レンタルサーバーで普通に運営している個人ブログなら、ほとんどありません。理由と手順を順番に書きます。
なお、このブログ(numabase)もレンタルサーバー上のWordPressで動いています。他人事ではないので、私も同じ手順で確認しています。
何が起きたのか:10月21日の1日で、予告から首相の投稿まで進んだ
一言でいうと、世界中のWebサイトで使われている「PHP」というプログラミング言語に、外からサーバーを乗っ取られうる穴が2つ見つかりました。
PHPは、WordPressを動かしている言語です。ブログの記事ページを表示するたびに、サーバーの中でPHPが動いています。
流れを日本時間で並べると、こうなります。
- 10月20日(現地時間):PHPの開発チームが「10月21日に重大な修正を出す」と予告
- 10月21日:IPA(情報処理推進機構)が、修正版の公開に備えるよう呼びかけ
- 10月21日の午後〜:レンタルサーバー各社や銀行、ゲーム会社などが、予防のためにサービスや管理画面の停止・メンテナンスを告知
- 10月21日の夜10時前:高市首相がXで「大至急のお願い」として、修正プログラムの速やかな適用を呼びかけ
- 10月21日の夜11時ごろまでに:修正版(8.5.12/8.4.27/8.3.36/8.2.35)が公開
セキュリティの話題を、首相が個別にXで呼びかけるのは異例だと報じられています。予防のための停止も相次ぎ、セキュリティ情報をまとめているブログ「piyolog」は、何らかの対応を告知した組織を211件数えています。
どんな穴なのか:2つとも深刻度は10段階で9.2
結論は、「ログインしていない人が、細工したアクセスを送るだけで、サーバー上で好きなプログラムを動かせる恐れがある」穴です。この種類の穴を「リモートコード実行」と呼びます。
見つかったのは次の2つです。
| 番号 | 中身(ざっくり) | 深刻度 |
|---|---|---|
| CVE-2026-109618 | メモリが足りなくなった時の後片付けで、作りかけのデータを正しいものとして扱ってしまう | 9.2(緊急) |
| CVE-2026-109619 | 前のアクセスで使ったデータの残りかすを、次のアクセスが使ってしまう | 9.2(緊急) |
CVEは、脆弱性ひとつひとつに付く世界共通の番号です。深刻度は「CVSS」という10点満点の物差し(今回はv4.0という版)で、9.0以上が一番上の「緊急」にあたります。出回っていた「10.0」という数字は、公式の値ではありません。
PHPの開発チームによると、Webのリクエストを処理しているPHPはすべて影響を受けます。一番危ないのは「mod_php」というApacheの動かし方で、ログイン不要の攻撃が実際に成立することが確かめられています。レンタルサーバーでよく使われるPHP-FPMという動かし方でも、2件目の穴は、アプリ側の条件がそろえば実際に攻撃が成立することが確かめられています。「うちはmod_phpじゃないから関係ない」とは言えません。
攻撃はもう来ているのか:悪用の観測報告はあるが、被害の確証はまだ
10月22日未明までの情報を並べると、悪用を観測したという報告はすでに出ています。一方で、実際に乗っ取られたという確かな公表はまだありません。
- 米国CISA(米政府のサイバー担当機関):10月21日の注意喚起の時点では、悪用を確認していない
- watchTowr(セキュリティ会社):10月21日の時点で、自社の囮サーバー(ハニーポット)で両方の穴の悪用を観測したと発表
- Patchstack(WordPressのセキュリティ会社):ホスティング会社から悪用事案の報告を複数受けた。ただし自社の観測では探りを入れる攻撃だけで、侵害の確かな証拠はない
- オランダのNCSC:攻撃用のコード(PoC)は公開されているが、活発な悪用は確認していない
攻撃用のコードがもう出回っている、というのが一番の問題です。IPAも、修正版の公開後は攻撃者が極めて短い時間で悪用する可能性があるとして、速やかな適用を求めています。「まだ被害は出ていない」は、「放っておいていい」という意味ではありません。
PHPサイトの約48%は、公式の修正版が出ないバージョンで動いている
ここが、この記事で一番伝えたいことです。
今回、PHP公式が修正版を出したのは8.2・8.3・8.4・8.5の4系統だけです。8.1以前は、公式の新しいバージョンが出ません。
では、8.1以前のPHPで動いているサイトはどれくらいあるのか。Webサイトの技術を調べているW3Techsの集計(2026年10月21日時点)を使って、計算してみました。
| PHPのバージョン | PHPサイト全体に占める割合 | 今回の公式修正版 |
|---|---|---|
| 8系のうち8.2〜8.5 | 約51.5% | あり |
| 8系のうち8.0・8.1 | 約13.7% | なし |
| 7系 | 27.0% | なし |
| 5系・4系 | 7.8% | なし |
8.0・8.1・7系・5系・4系を足すと、約48.5%です。PHPで動いているサイトの、ほぼ半分になります。
計算の中身も書いておきます。W3Techsでは、PHPサイトのうち8系が65.2%、7系が27.0%、5系が7.7%、4系が0.1%です。8系の内訳は8.0が5.8%、8.1が15.2%なので、65.2%×21.0%=約13.7%がPHPサイト全体に占める8.0・8.1の割合になります。
注意点が2つあります。
- W3Techsの数字は、外からバージョンを判別できたサイトの集計です。全サイトの正確な数ではありません。
- 7.4・8.0・8.1向けには、PHPの開発チームが最小限の修正コードを出しています。サーバー会社やLinuxの配布元が、古いバージョンに修正を入れて提供することもあります。
つまり、「古いバージョン=必ず危ない」とは限りません。ただ、古いバージョンのサイトが守られるかどうかは、サーバー会社や管理者が自分で手を入れたかどうか次第です。新しいバージョンに上げれば済む人と比べて、確実さが一段落ちます。
もう一つあります。修正版が出た8.2も、2026年12月31日でサポートが終わります。今日から数えて約70日後です。W3Techsの数字では、8.2のサイトはPHPサイト全体の約18.1%あります。年明けには、これも「修正が出ない側」に移ります。
レンタルサーバーのWordPressなら、PHP本体の更新はサーバー会社の仕事
個人ブログの多くは、エックスサーバーやさくらインターネット、ConoHa WINGといったレンタルサーバーで動いています。この場合、PHP本体を新しくするのはサーバー会社です。利用者がPHPのプログラムを入れ替えることは、普通はできません。
実際、各社は10月21日に動いています。報道や各社の告知では、たとえば次のような対応がありました。
- エックスサーバー:「予防的な安全対策」として、アカウント管理画面などへのアクセスを一時停止。不正アクセスによるものではなく、利用者のサーバーは稼働を続けたまま安全対策を進めていると説明
- さくらインターネット:21日13時〜22日8時ごろに緊急メンテナンス(本件との関係は告知に明記なし)
- ConoHa WING:21日19時〜22日10時に緊急メンテナンス
私も、このブログのサーバー会社の状況を見に行きました。10月22日の朝7時40分の時点で、エックスサーバーの公式サイトはまだ開けませんでした(エラー503)。管理画面が戻るまでは、サーバー側でPHPの設定を確かめることができません。
ここで焦って、ネットで拾った設定ファイルをいじる必要はありません。PHPの開発チームも、設定変更では完全には防げず、更新だけが唯一の安全な選択肢だと書いています。サーバー会社の更新を待ち、戻ったら確認する。これが一番安全です。
ブログ運営者が今日やること:確認は管理画面で3分
やることは3つです。順番にどうぞ。
1. サーバー会社のお知らせを見る
契約しているサーバー会社の公式サイトか、公式Xを見ます。「PHPを更新した」「対策が済んだ」という告知が出ていれば、ひとまず安心です。告知が無ければ、出るのを待ちます。
2. 自分のサイトのPHPバージョンを確かめる
WordPressに最初から入っている「サイトヘルス」という機能で見られます。
- WordPressの管理画面にログインする
- 左のメニューから「ツール」→「サイトヘルス」を開く
- 上の「情報」タブを開き、「サーバー」の項目を開く
- 「PHPバージョン」の行を見る
ここに、たとえば「8.3.36」と出ていれば修正済みのバージョンです。目安は次の通りです。
| 表示されたバージョン | 状態 |
|---|---|
| 8.5.12以上/8.4.27以上/8.3.36以上/8.2.35以上 | 今回の修正が入っている |
| 8.2〜8.5で、上の数字より小さい | 修正前。サーバー会社の更新待ち |
| 8.1以下 | 公式の修正版が出ない。切り替えを考える |
3. 8.1以下なら、8.3か8.4への切り替えを準備する
多くのレンタルサーバーでは、管理画面からPHPのバージョンを選べます。切り替える前に、2つだけ準備してください。
- バックアップを取る(サーバー会社の自動バックアップがあるかも確認)
- テーマとプラグインを最新にしておく(古いものは、新しいPHPで表示が崩れることがあります)
切り替えたら、トップページと記事ページを何枚か開いて、表示が崩れていないか見ます。崩れたら、元のバージョンに戻せば大丈夫です。
首相の投稿には「適用が難しい場合はサイトの一時停止も有効策」という趣旨もありました。誰向けかは投稿に書かれていませんが、主に自社でサーバーを管理している組織を想定した対策だと私は読んでいます。レンタルサーバーの個人ブログで、サーバー会社が対応を進めているなら、ブログを閉じるところまでは要らないはずです。
例外は、PHPが8.1以下のままで、サーバー会社の対応もはっきりしない場合です。米国CISAも、更新できない場合や8.1以前の場合はオフラインにすることを勧めています。この場合は、切り替えが済むまでサイトを止めることも選択肢に入れてください。
私の考え:今回の本当の教訓は「PHPのバージョンを誰も見ていない」こと
今回の騒ぎで、私が一番引っかかったのは穴そのものより、PHPサイトの約半分が、公式の修正が届かないバージョンで動いているという数字です。
WordPressは自動更新で新しくなります。プラグインも、管理画面に「更新があります」と出ます。でも、その土台のPHPのバージョンは、自分で見に行かないと誰も教えてくれません。ブログを始めた日のまま、何年も放置されているサイトが多いのは、たぶんそのせいです。
首相が「大至急」と言うほどの騒ぎは、そう何度もありません。せっかくなので、この機会にPHPのバージョンを一度見ておく。これだけで、次に同じことが起きた時の慌て方がかなり変わります。
このブログも、管理画面が戻り次第、PHPのバージョンを確認します。結果はこの記事に追記します。
まとめ
- 10月21日、PHPに深刻度9.2の穴が2つ見つかり、修正版(8.5.12/8.4.27/8.3.36/8.2.35)が公開されました。首相もXで適用を呼びかけました。
- 攻撃の試みは観測されていますが、10月22日未明の時点で、実際の侵害の確かな公表はありません。
- W3Techsの集計では、PHPサイトの約48%が、公式の修正版が出ない8.1以前のバージョンで動いています。
- レンタルサーバーのWordPressなら、PHP本体の更新はサーバー会社の仕事です。お知らせを見て、サイトヘルスで自分のPHPバージョンを確かめてください。
- 8.1以下なら、バックアップを取ってから8.3か8.4へ。8.2も12月31日でサポートが終わります。
新しい発表が出たら、この記事に追記します。
ではまた。