こんにちは。風読珈琲店のカエデです。
2026年10月21日(日本時間では22日未明)、Webサイトを動かすプログラミング言語「PHP」に、「緊急」レベルの脆弱性2件が見つかり、修正版が公開されました。研究者のあいだでは「php2shell」と呼ばれていて、IPA(情報処理推進機構)も注意喚起を出しています。
PHPと聞いても「エンジニアの話でしょ?」と思うかもしれませんが、実はこのブログを含め、WordPressで作られたサイトはすべてPHPの上で動いています。個人ブログや副業のサイト、小さなお店のホームページを持っている人にとっては他人事ではありません。この記事では、業務でITに触れている社会人の目線で、php2shellの中身と「自分のサイトで何を確認すればいいか」を整理します。
php2shellとは?30秒でわかる概要

まずは今回の脆弱性の要点です(IPA・PHP開発元のアドバイザリ・GMO Flatt Securityの解説をもとに整理、2026年10月22日時点)。
- 識別番号:CVE-2026-109618 と CVE-2026-109619 の2件(組み合わせて「php2shell」と呼ばれる)
- 深刻度:CVSS v4.0で9.2(いずれも「緊急」レベル)
- 何が起きるか:悪用されると、外部の第三者がサーバー上で任意のプログラムを実行できるおそれがある(リモートコード実行=RCE)
- 影響範囲:Apacheのモジュール版(mod_php)、PHP-FPM、php-cgi など一般的な構成が対象。WordPress・Laravel・Symfonyといった定番の構成で攻撃が再現したとされる
- 古いバージョン:Wiz社によると、PHP 5.4以降のほぼすべてが、少なくともどちらか一方の影響を受ける
「任意のコードを実行される」というのは、脆弱性の中でも最悪クラスです。サイトの改ざん、フィッシングページの設置、保存されている会員情報の持ち出し、ほかのサーバーへの攻撃の踏み台化など、攻撃者がサーバーの持ち主とほぼ同じことをできてしまう可能性があるからです。
しかも、セキュリティ企業の解説では攻撃コードがすでに出回り始めているとの指摘もあります。修正版が出たら、攻撃者もその差分を見て攻撃方法を研究するので、「様子見」はおすすめできません。
一次情報はIPAの注意喚起ページで確認できます。

なぜ危ない?仕組みをざっくり解説
技術的な詳細は専門家の解説に任せるとして、イメージだけつかんでおきましょう。
「前のリクエストのゴミ」が次の処理を狂わせる
Webサーバーは、ひとつのPHPのプロセスを使い回して、次々に届くアクセス(リクエスト)を処理しています。今回の2件は次のような組み合わせで成立します。
- CVE-2026-109618(仕込む側):メモリ不足(OOM)エラーが起きたときの後始末が不完全で、中途半端なデータがメモリに残ってしまう
- CVE-2026-109619(発火する側):次のリクエストの処理で、その残ったデータ(古いグローバル状態)を参照してしまい、メモリ破壊(Use After Free)につながる
喫茶店にたとえると、前のお客さんの食器が片付けきれていないテーブルに次のお客さんを通してしまい、そこに紛れ込ませた「別の注文票」がそのまま厨房に通ってしまう……というイメージです。攻撃者は、わざと巨大なリクエストを送ってエラーを起こし、次のリクエストで悪用する、という流れを狙います。
デフォルトで有効な機能が入口になる
やっかいなのは、既知の入口として挙げられている「Session Upload Progress」(ファイルアップロードの進捗を記録する機能)が、PHPの初期設定でオンになっている点です。特別な設定をしていない、ごく普通のサーバーが対象になりうるということですね。ほかにも攻撃に使える経路がある可能性が指摘されています。
修正版のバージョンとサポート期限

対策の基本は、修正済みのバージョンへアップデートすることです。系列ごとの修正版は次のとおりです。
| 系列 | 修正版(これ以降ならOK) | セキュリティサポート期限 |
|---|---|---|
| PHP 8.5 | 8.5.12 | 2029年12月31日 |
| PHP 8.4 | 8.4.27 | 2028年12月31日 |
| PHP 8.3 | 8.3.36 | 2027年12月31日 |
| PHP 8.2 | 8.2.35 | 2026年12月31日 |
| PHP 8.1以前 | 修正版なし | サポート終了済み |
注目してほしいのは表の下2行です。PHP 8.1以前はサポートが終わっているため、公式の修正版は出ません。Linuxディストリビューションなどが独自に修正パッケージを出す場合はありますが、基本的にはサポート中のバージョンへ移行するしかありません。
また、PHP 8.2も2026年12月31日でセキュリティサポートが終了します。今回は修正版が出ましたが、あと2か月ちょっとで同じ状況になるので、8.2を使っているなら今回のタイミングで8.3以降へ上げてしまうのが効率的です。
各バージョンのサポート期限はPHP公式サイトで確認できます。

WordPressブログ運営者がやるべき3ステップ

ここからが本題です。レンタルサーバーでWordPressブログを運営している個人が、今日やるべきことを3つにまとめました。
ステップ1:自分のサイトのPHPバージョンを確認する
WordPressの管理画面から、次の手順で今のPHPバージョンが確認できます。
- 管理画面の「ツール」→「サイトヘルス」を開く
- 上部の「情報」タブを開く
- 「サーバー」の項目を開き、「PHP バージョン」を見る
ここに表示された数字が、上の表の「修正版」以上になっていればひとまず安心です。たとえば「8.3.30」なら未修正、「8.3.36」なら修正済みです。
ステップ2:レンタルサーバーのお知らせを確認する
レンタルサーバーの場合、PHP本体のアップデートはサーバー会社が行います。利用者がやるのは「対応済みかどうかを確かめること」です。報道ベースでは、10月22日時点で各社の対応は次のように分かれています。
- さくらインターネット:レンタルサーバー等のPHP更新メンテナンスを10月22日早朝に完了
- ロリポップ!:機能停止を伴う緊急メンテナンスを案内
- Zenlogic:PHP更新の緊急メンテナンスを10月21日夜〜22日に実施予定(Apache停止を伴う)
- お名前.comレンタルサーバー:緊急メンテナンスを案内
ここに載っていないサーバー会社を使っている場合も、公式サイトの「障害・メンテナンス情報」ページを確認してみてください。メンテナンス中は一時的にサイトが表示されなかったり、管理画面に入れなかったりすることがありますが、これは対策作業によるものなので慌てなくて大丈夫です。
ステップ3:古いPHPを選んでいたら切り替える
見落としがちなのがここです。多くのレンタルサーバーは、コントロールパネルでサイトごとにPHPのバージョンを選べる仕組みになっています。昔「プラグインが動かないから」と古いバージョンを選んだまま放置していると、サーバー会社が新しいPHPを修正しても、自分のサイトだけ修正版の出ない古いPHPで動き続けているという事態になりえます。
ステップ1で8.1以前が表示されたら、コントロールパネルからPHP 8.3以降に切り替えましょう。切り替え前には次の準備をしておくと安心です。
- バックアップ:バックアップ用プラグインやサーバーの自動バックアップで、記事とデータベースを保存しておく
- WordPress本体・テーマ・プラグインの更新:古いままだと新しいPHPで動かないことがあるので、先に最新化する
- 表示確認:切り替え後にトップページ・記事ページ・管理画面が正常に開くかチェック。不具合が出たら一度元に戻し、原因のプラグインを特定する
自分でサーバーを管理している人は
VPSやクラウドで自分でサーバーを立てている人、会社でPHPのシステムを担当している人は、自分で対応する必要があります。
- 最優先:修正版(8.2.35/8.3.36/8.4.27/8.5.12以降)へ更新し、PHP-FPMやApacheを再起動する。OSのパッケージで入れている場合は、ディストリビューションの修正パッケージの配布状況を確認
- すぐ更新できない場合の緩和策:
session.upload_progress.enabled = 0の設定、post_max_sizeで巨大リクエストを拒否する、などが案内されている。ただし完全な回避にはならず、あくまでパッチ適用までのつなぎ - それも難しい場合:IPAは、アクセス制限や外部からのアクセス遮断、サービスの一時停止も検討するよう呼びかけている
- 更新後:アクセスログに不審な巨大リクエストや見覚えのないファイルの設置がないか確認する
私も仕事ではPCやクラウドサービスの管理をしていますが、こういう「緊急パッチ」は、社内調整より先にまず影響範囲を洗い出すのが鉄則です。「どのサーバーで、どのバージョンのPHPが動いているか」をすぐ答えられるかが、対応スピードを分けます。この機会に一覧を作っておくと、次の脆弱性のときにも役立ちますよ。
脆弱性を突いた攻撃は、最終的に情報漏えいにつながることも少なくありません。最近の国内の事例は下記記事も併せてご確認ください。

サイト利用者として気をつけたいこと
サイトを持っていない人も、「見る側」として少しだけ意識しておくと安心です。PHPで動いているサイトは、ネットショップ、予約サイト、会員制サービスなど身近なところにたくさんあります。
- パスワードの使い回しをやめる:どこか1つのサイトから漏れても、ほかのサービスに被害が広がらないようにする
- パスキーや二段階認証を使う:パスワードが漏れても、それだけではログインされない状態にしておく
- 「情報漏えいのお知らせ」メールに注意:本物の通知に便乗したフィッシングメールも出回りやすいので、メール内のリンクからではなく公式サイトから確認する
パスキーの設定方法は下記記事も併せてご確認ください。

まとめ
- 2026年10月21日、PHPに緊急レベルの脆弱性2件「php2shell」(CVE-2026-109618/109619、CVSS 9.2)が公表され、修正版が公開された
- 悪用されると外部からサーバー上で任意のコードを実行されるおそれがあり、WordPressなどの一般的な構成も対象
- 修正版は8.2.35/8.3.36/8.4.27/8.5.12。8.1以前は修正版が出ないので移行が必要
- ブログ運営者は「サイトヘルスでバージョン確認」「サーバー会社のお知らせ確認」「古いPHPを選んでいたら切り替え」の3ステップ
- 8.2も2026年末でサポート終了。今のうちに8.3以降へ上げておくと二度手間にならない
サイトの裏側のことは普段なかなか意識しませんが、サイトヘルスを開いてバージョンを見るだけなら1分で終わります。WordPressでブログをやっている方は、ぜひ今日のうちに確認してみてください。

