「PHPに重大な脆弱性」「Webサイトの運営者は至急更新を」。そんなニュースを見て、自分のブログや会社のサイトも危ないのかと気になった方は多いのではないでしょうか。
2026年10月21日に修正版が公開された、CVE-2026-109618とCVE-2026-109619。通称「PHP2Shell」と呼ばれる今回の問題では、条件がそろうと、ログインしていない攻撃者がサーバー上でコードを実行できるおそれがあります。怖い見出しだけで終わらせず、どこを確認し、どの順序で対応すればよいのかを整理します。
最初に押さえたいのは、WordPressの更新とPHPの更新は別の作業だということです。サイトの管理画面に「最新版」と表示されていても、その下で動くPHPまで対処済みとは限りません。
情報確認日:2026年11月3日。修正状況は変わるため、作業時にはPHP公式と利用サービスの最新案内も確認してください。
なぜ今回のPHP脆弱性は大きなニュースになったのか
PHPは、WordPressなどのWebアプリケーションをサーバーで動かすための実行環境です。ブラウザーから届いたリクエストを受けてプログラムを処理し、記事や管理画面のHTMLを返します。今回問題になったのは、特定のブログ用プラグインではなく、その土台にあるPHP自身の処理です。
EUのENISAなどは10月21日に共同声明を出し、PHPを利用するシステムの特定と更新を呼びかけました。見た目からPHP製と分からない製品にも組み込まれている可能性があるため、公開サイトだけでなく、社内システムや導入製品まで確認する必要があります。出典:ENISA共同声明
ここで、「影響を受ける可能性がある」と「すでに侵入された」は区別しましょう。脆弱なバージョンが動いていても、それだけで被害発生が確定するわけではありません。一方、被害の連絡がないことも、安全の証明にはなりません。確認すべき事実は、修正の適用状況と侵害の痕跡の二つです。
二つの脆弱性では、何が起きるのか
CVE-2026-109618:メモリ不足時の後片付けにある問題
PHPはリクエストを処理するときに、入力データなどをメモリ上に準備します。一つ目の問題は、メモリ不足によって処理が中断された際、準備途中のデータを後片付けの処理が正常なものとして扱ってしまうことです。
公式アドバイザリでは、Apacheのmod_php環境で、認証なしのHTTPリクエストからWebワーカーの実行ユーザー権限によるコード実行が検証されたと説明されています。これは直ちにroot権限を得るという意味ではありませんが、Webサービスの権限で読めるファイルや操作できるデータへの影響は深刻です。出典:PHP公式アドバイザリ(OOM corruption)
CVE-2026-109619:終わったリクエストの状態が残る問題
二つ目は、あるリクエストで使った内部状態が、対応するメモリの解放後も残ってしまい、同じワーカーが次のリクエストを処理するときに参照される問題です。ワーカーとは、Webリクエストを実際に処理するプロセスのことです。
たとえば、一つの作業が終わったのに、机の上の案内だけが古い保管場所を指しているような状態です。次の作業でその案内を信用すると、不正なデータを扱うことになります。公式情報では、セッションのアップロード進捗処理や、初期化前の診断処理など複数の経路が説明されています。出典:PHP公式アドバイザリ(stale global state)
どちらも、サイト運営者が攻撃の再現実験をしないと判断できない問題ではありません。まず配布元が案内する修正済みパッケージへ更新することが、実務上の出発点です。
対象はWindowsだけ? PHP-FPMなら大丈夫?
PHP公式は、PHP-FPM、Apacheのmod_php、php-cgi、FrankenPHP、LiteSpeedなど、Webリクエストを処理するPHP環境を広く対象に挙げています。mod_phpは特に高リスクと評価されていますが、そこから「Linuxなら対象外」「FPMなら安全」と結論づけることはできません。出典:PHP公式・2026年10月21日のセキュリティ告知
対応漏れを防ぐには、ドメイン名だけでなく、どの実行環境が処理しているかを追うことが大切です。管理対象を次のように整理すると、担当者への確認が進めやすくなります。
- レンタルサーバーで動かしているWordPressや問い合わせフォーム
- VPS・クラウド上のPHP-FPMやApache
- コンテナで配備しているWebアプリケーション
- PHPを内部に含む管理ツールや業務製品
- 普段使っていない検証環境、旧サイト、別ドメインの管理画面
本番サイトを一つ直しても、同じ認証情報を持つ検証環境が残っていれば、別の入口になる可能性があります。今回を機に「公開中のサイト一覧」と「動いているPHPの一覧」を対応させておくと、その後の更新作業にも役立ちます。
修正版はどれ? バージョン番号の確認で注意すること
10月21日に公開された、今回の二つの脆弱性に対する修正版は以下です。これは修正が入った版の一覧であり、将来にわたる最新版の一覧ではありません。出典:PHP公式リリース情報
| 利用系列 | 二つの脆弱性を修正した版 | 確認のポイント |
|---|---|---|
| PHP 8.2 | 8.2.35 | 同系列の修正版、またはベンダーの修正済みパッケージを確認 |
| PHP 8.3 | 8.3.36 | 同上 |
| PHP 8.4 | 8.4.27 | 同上 |
| PHP 8.5 | 8.5.12 | 同上 |
Linuxディストリビューションなどでは、元のバージョン表記を保ちながら修正だけを取り込む「バックポート」があります。この場合、数字の大小だけでは対処済みか判断できません。パッケージのリリース番号、ベンダーの告知、対象CVEの修正記録を合わせて確認してください。PHP 8.1以前についても、配布元の保守状況を確認するか、サポート中の系列への移行を検討する必要があります。出典:カナダ・サイバーセキュリティセンター
WordPress運営者が、今日確認したい五つのこと
1.Webサイトを動かしているPHPを調べる
WordPressでは「ツール」→「サイトヘルス」→「情報」→「サーバー」で、PHPバージョンなどを確認できます。まずこの情報を記録し、レンタルサーバーの管理画面や保守担当者の回答と照合しましょう。参考:WordPress公式・サイトヘルス画面
サーバーにログインできる場合は、次のコマンドも確認に使えます。
php -v
php --iniただし、この結果はコマンドライン用PHPの情報です。Web側が別のPHP-FPMや別バージョンを使っている構成もあるため、これだけで対応完了とは判断しないでください。確認のために設定情報を全面表示するページをインターネットへ公開する必要はありません。
2.サーバー会社に「対処済みか」を具体的に聞く
問い合わせでは「PHPは安全ですか」だけでなく、対象CVE、利用ドメイン、実行環境を示すと回答が明確になります。次の文面を必要に応じて使ってください。
当サイトが利用するWeb実行環境について、CVE-2026-109618およびCVE-2026-109619への対応状況をご確認ください。修正済みPHPバージョンまたはパッケージ番号、適用日時、稼働ワーカーへの反映状況を教えてください。併せて、CVE-2026-115560に関する影響の有無も確認したいです。
3.バックアップと動作確認を用意して更新する
自分で更新する場合は、データベース・アップロード画像・設定ファイルなどのバックアップと復元手順を確認します。可能なら検証環境で互換性を調べ、公開サイトの更新後にはトップページだけでなく、ログイン、検索、問い合わせ送信、画像アップロードなども確認しましょう。
古いプラグインとの相性が心配なときは、今回の修正の適用と、大きなバージョン移行の計画を整理して担当者と調整します。無期限に更新を延期するのではなく、サービスを継続できる修正済み構成を決めることが大切です。
4.更新したファイルが、実際の処理に使われているか確認する
パッケージ更新の表示だけでなく、Web側のPHPと稼働プロセスへの反映も確認します。複数のサーバーやコンテナで動かしている場合は、すべてが対象です。作業記録には「更新済み」だけでなく、対象・適用版・確認日時・確認者を書いておくと、あとから抜けを探しやすくなります。
5.更新と並行して、不審な変更がないか調べる
修正は今後の攻撃を防ぐための作業であり、すでに起きた侵害を取り消すものではありません。カナダの当局は10月27日の更新で実際の悪用に関する報告とCISAの既知悪用脆弱性リストへの追加を案内し、ログや不審なプロセス・ファイルなどの確認を勧めています。出典:同センター・Update 2
運営側では、身に覚えのない管理者、突然増えたPHPファイル、意図しない転送、設定変更なども確認の手がかりになります。不審なものが見つかったら、すぐに消す前にログと変更内容を保全し、ホスティング会社や対応担当者へ相談してください。必要に応じて公開を制限し、調査・復旧・認証情報の見直しを進めます。
WAFや設定変更だけで乗り切れるのか
今回の公式アドバイザリは、設定による緩和と修正版の適用を区別しています。一つ目の問題では、PHPのメモリ上限を無制限にする設定が特定経路への緩和策として示されていますが、完全な解決ではなく、基盤側のメモリ割り当て失敗は別に残ります。リクエストの大きさや資源消費への対策も必要です。出典:PHP公式・緩和策
二つ目についても、アップロード進捗機能の無効化などで確認済みの経路を抑えられる一方、すべての経路を覆う汎用的な設定対策はないとされています。エラー表示を隠すだけでは防げません。出典:PHP公式・緩和策と設定監査
そのため、設定値を一つコピーして「対処完了」とする運用は避けたいところです。WAFなどの防御策を利用する場合も、それがどの経路を抑えるのか、提供元の説明を確認し、PHPの修正適用までの対応として管理しましょう。更新が間に合わない公開サービスは、利用者への影響も考慮しながらアクセス制限や一時停止を検討します。
修正版を入れたあとにも確認したい関連情報
10月23日には、セッションのアップロード進捗に関する別の問題、CVE-2026-115560も案内されました。これは特定のシリアライズ設定と実行時の設定変更が組み合わさった場合の問題で、すべてのアプリケーションが同じ条件で影響を受けるわけではありません。カナダ当局は、10月21日の更新ではこの別件は修正されていないと説明しています。出典:同センター・Update 1
Windows向けには、10月26日にBrotliライブラリの別の脆弱性を修正した再ビルドも公開されています。同じPHP本体のバージョンでも配布パッケージが更新されることがあるため、「一度更新したから、以後の告知は読まなくてよい」としないことが大切です。出典:PHP公式・Windowsビルド更新情報
今回の対応を、次回の「慌てない運用」につなげる
脆弱性のニュースが出るたびに困る原因は、技術の難しさだけではありません。「どのサイトがどのサーバーで動いているか」「誰が更新できるか」「更新後に何を確かめるか」が分からないと、確認の連絡だけで時間が過ぎてしまいます。
おすすめしたいのは、サイトごとに、運営責任者・ホスティング契約・PHPの配布元・更新担当者・バックアップ・最低限の動作確認項目を一枚にまとめることです。緊急時に新しい手順を発明する必要がなくなれば、修正と確認に集中できます。
今回まず行うことは、Web側で使われるPHPを特定し、修正済みである根拠を確認し、更新後の動作と侵害の兆候を点検することです。ニュースを読んだ不安を、具体的な確認と記録へ変えていきましょう。
アイキャッチ画像は、海外の女性エンジニアをイメージしてAI生成した写真風のイメージです。実在の事件関係者を撮影したものではありません。


コメント