レンタルサーバーで WordPress を動かしていて、「PHP に緊急レベルの脆弱性」というニュースを見たものの、自分は何をすればいいのか分からない。そういう方に向けた記事です。
先に結論を書きます。
- 共用のレンタルサーバーなら、PHP 本体の修正はサーバー会社が行います。利用者が PHP を自分でビルドし直すことはありません
- 利用者がやるのは、自分のサイトに設定している PHP のバージョンが、修正の届く版かどうかを確かめることです
- 8.1 以下を使っているなら、8.2 以上に切り替えます(PHP 公式の修正版は 8.2〜8.5 にしか出ていません)
(2026年10月22日朝の時点の情報です。サーバー会社の対応は日々変わるので、最後は各社のお知らせで確かめてください)
何が起きたのか
2026年10月21日、PHP の開発元が、深刻度の高い脆弱性2件を直した修正版を公開しました。通称「php2shell」と呼ばれています。
| 項目 | 内容 |
|---|---|
| 識別番号 | CVE-2026-109618/CVE-2026-109619 |
| 深刻度 | 2件とも CVSS v4.0 で 9.2 |
| 何ができてしまうか | 外部から、サーバーの上で任意のプログラムを動かせる(リモートコード実行) |
| 対象 | PHP 公式の告知では「Web からのリクエストを処理するすべての PHP 環境」(PHP-FPM、Apache の mod_php、php-cgi など) |
| 修正版 | 8.5.12/8.4.27/8.3.36/8.2.35 |
| 8.1 以下 | PHP 公式の更新はもう出ない。最小限の修正コードだけが公開され、当てるかどうかはサーバー会社や配布元しだい |
PHP 公式の告知には、mod_php ではログインしていない1回のリクエストで、アプリのコードが動く前に攻撃が成り立つ例が示されている、とあります。WordPress の中で何かを設定して防げる種類の問題ではありません。
公式は、設定を変えて危険を減らす方法も載せています。ただし「完全な対策はなく、更新だけが安全な選択」とはっきり書いています。
共用サーバーの利用者がやること
1. サイトに設定している PHP のバージョンを見る
見る場所は2つあります。
- サーバー会社の管理画面:多くの会社で、ドメインごとに PHP のバージョンを選ぶ画面があります(エックスサーバーなら「PHP Ver.切替」)
- WordPress の管理画面:「ツール」→「サイトヘルス」→「情報」→「サーバー」に、そのサイトで実際に動いている PHP のバージョンが出ます
ドメインを複数持っているなら、ドメインごとに見てください。古いサイトだけ古い版のまま、ということがよくあります。
2. 8.1 以下なら、8.2 以上に切り替える
修正版が出ているのは 8.2〜8.5 だけです。なお 8.2 も 2026年12月31日で公式のサポートが終わるので、切り替えるなら 8.3 以上が無難です。
切り替えの前後でやることは2つです。
- 前:バックアップを取る。古いテーマやプラグインが、新しい PHP で動かないことがあります
- 後:トップページ・固定ページ・記事・問い合わせフォームなど、種類の違うページを数枚開いて、表示が崩れていないか見る
3. サーバー会社のお知らせを見る
「どの版に修正を当てたか」「古い版にも独自に修正を当てるか」は、会社ごとに違います。たとえばエックスサーバーは、21日16時から管理画面などを予防的に一時停止し(不正アクセスによるものではないと説明)、22日6時45分の時点で次のように案内しています。
- PHP 8.2〜8.5:対象のすべてのサーバーに修正を当て終えた
- 公式の修正版がない古い版:独自の修正を作り、確認が済んだものから順に当てている
古い版にも手当てが進んでいる会社はあります。ただ、いつ届くかは版しだいなので、切り替えられるなら 8.3 以上に切り替えるのが確実です。
落とし穴:SSH の php -v は、サイトの PHP とは限らない
ここは、私が自分のサーバーを確かめていて、実際に引っかかりかけたところです。
SSH でサーバーに入って php -v を打つと、こう出ました。
PHP 8.0.30 (cli) (built: Aug 3 2023 17:13:08)
8.0 は公式の修正版が出ない版です。一瞬「サイトが危ない」と思いました。
でも、これは SSH で使われる PHP(CLI)の既定のバージョンです。サイトの表示に使われる PHP は、管理画面でドメインごとに選んだもので、別に決まっています。CLI が 8.0 でも、サイトは 8.3 で動いていることがあります。逆に、CLI が新しくてもサイトが古いままのこともあります。
SSH の結果だけで「危ない」「安全」を判断しない。 サイトの版は、管理画面か WordPress のサイトヘルスで見ます。
サーバー側に修正が入ったかを見る
SSH が使えるなら、サーバーに置かれている PHP の一覧と、それぞれのビルド日時を見ることで、修正が入ったかの手がかりになります。私が使っている共用サーバーでは、各バージョンが /opt/php-<版> に並んでいました。
# 修正版がビルドされているか(読み取りだけ)
/opt/php-8.3.36/bin/php -v
10月22日の朝に見たときは、こうでした。
| 版 | 見えたもの |
|---|---|
| 8.2.35/8.3.36/8.4.27/8.5.12 | 10月21日の22時台にビルドされたものが入っていた |
| 8.0/8.1 | 最後の更新が4月・7月のまま |
これは私が見た時点の、私のサーバーの様子です。上のとおり、古い版にもあとから独自の修正が当たることがあるので、最終的にはお知らせで確かめてください。
「メンテナンスモード」では防げない
WordPress をメンテナンスモードにして様子を見る、という案を見かけます。しかし今回の問題は PHP 本体にあり、WordPress のコードが動く前に攻撃が成り立つ例が示されています。メンテナンスモードは WordPress の中の仕組みなので、守りにはなりません。
どうしても止めたいなら、サーバー側(Web サーバーの設定やアクセス制限)で止める必要があります。ただ、共用サーバーの利用者にとっての本筋は、修正の届く版に切り替えることです。
AI に確かめさせた手順
私はエンジニアではなく、事務職です。今回は Claude Code(AI)に、**「読み取りだけ。何も変えない」**と決めて、SSH でサーバーを確かめさせました。
- ニュースと PHP 公式の告知から、修正版の番号を確かめる
- サーバーで
php -vと、/opt/php-*の各版のビルド日時を読む - サイトの版は管理画面でしか分からない、と切り分ける → 管理画面を見るのは人がやる
ニュースを読んでから、「自分が何を見ればいいか」が分かるまで数分でした。AI がやったのは調べることと切り分けまでで、切り替えるかどうかは人が決めます。
まとめ
| サーバー会社がやること | PHP 本体の修正(修正版のビルドと入れ替え) |
| 利用者がやること | サイトに設定している PHP のバージョンを確かめる。8.1 以下なら 8.2 以上(できれば 8.3 以上)に切り替える |
| 判断に使わないもの | SSH の php -v(サイトの版とは別のことがある)/メンテナンスモード(守りにならない) |
サイトの作りは何も変わりません。変わるのは、PHP の版が「修正の届く版」になることだけです。
出典
- PHP 公式 ニュースアーカイブ(2026年10月20日の予告、21日の修正版と告知):https://www.php.net/archive/2026.php
- GMO Flatt Security Blog「PHPの重大な脆弱性『php2shell』の概要と対応指針」(2026年10月21日):https://blog.flatt.tech/entry/php2shell
- エックスサーバー「予防的な安全対策に伴う公式サイト・管理画面等の一時停止のお知らせ」(進捗は2026年10月22日6:45時点):https://www.xserver.ne.jp/information_detail.php?view_id=19660
- WordPress.org「PHP バージョンの更新」:https://ja.wordpress.org/support/update-php/
- ITmedia NEWS「PHPの『緊急』レベルの脆弱性、開発元が修正バージョン公開」(2026年10月22日):https://www.itmedia.co.jp/news/article/2610/22/2000002480/