2026年10月22日公開。PHP Foundation、CISA、Rapid7の公表内容をもとにまとめています。状況が変わり次第更新します。
要点:今すぐPHPを更新してください——それが修正方法で、このページのどんな内容もその代わりにはなりません。静的化してもWordPressサーバーからPHPがなくなるわけではありません。ただ、一般の訪問者がPHPに触れなくなるので、PHPを動かすサーバーは最小限にして隠し、一時的に止めることさえでき、それでもサイトは止まりません。
何が起きたのか
- CVE-2026-109618とCVE-2026-109619の2件(通称「php2shell」)は、条件がそろえば、ログインしていない攻撃者がPHPを動かすサーバー上でコードを実行できる脆弱性です。CVSSスコアはどちらも9.2です。
- CVE-2026-109618は、リクエストが悪いタイミングでメモリ上限に達したときにメモリを破損させます。Apache + mod_phpではアプリケーションのコードが動く前に発動できるため、どのCMSやプラグインを使っているかは関係なく、初期設定のままでの完全なコード実行が実証されています。PHP-FPMでもアプリケーションのコード経路を通じた発動が確認されています。
- CVE-2026-109619は、前のリクエストの状態が残ることによるuse-after-freeで、Apache + mod_php上の実在のアプリケーションに対するコード実行が実証されています。
- 修正版はPHP 8.5.12、8.4.27、8.3.36、8.2.35で、2026年10月21日に公開されました。CISAは、Webリクエストを処理するすべてのPHPが影響を受けるとして、インターネットに面したシステムから直ちに修正するよう勧告しています。
- 悪用状況:公開時点では、PHPセキュリティチームもCISAも実際に機能する攻撃を確認していません。しかし詳細が2日早く漏えいし、概念実証の動画も出回っており、攻撃コードは近く公開されると研究者は見ています。
まずは修正
| お使いのPHP | 更新先 | 備考 |
|---|---|---|
| 8.5 | 8.5.12以降 | |
| 8.4 | 8.4.27以降 | |
| 8.3 | 8.3.36以降 | |
| 8.2 | 8.2.35以降 | |
| 8.1以前 | サポート中のバージョンへ移行 | 修正なし。CISAは移行までオフラインにするよう勧告 |
WordPressではツール → サイトヘルス → 情報 → サーバー → PHPバージョンで確認できます。マネージドや共用サーバーなら、更新済みかどうかをサーバー会社に確認してください——公開前に対応したところも多くあります。自分で管理するサーバーなら、PHPのパッケージを更新してPHP-FPMかApacheを再起動します。PHPが動くサイトはすべて対象です。ステージング環境、古いサイト、phpMyAdminのようなツールも含みます。
WordPressサイトが特に狙われやすい理由
通常のWordPressサイトは、ページが表示されるたびにPHPを実行します。ページを要求する訪問者、ボット、スキャナーのすべてがPHPに届きます。インターネット全体で脆弱なサーバーを大量にスキャンするのは安上がりで、アプリケーションのコードより先に発動する脆弱性なら、プラグインをどれだけきちんと管理していても関係ありません。あなたのPHPにリクエストを送れる人なら、誰でも攻撃を試せます。
静的化で変わること
| 通常のWordPress | CDN上の静的版 | |
|---|---|---|
| ページ表示でPHPが動く | 毎回 | まったく動かない——ページはただのファイル |
| PHPに届くのは誰か | ページを開く人すべて | 許可した分だけ:管理画面のあなたと、使っているライブ機能 |
| WordPressの置き場所 | 公開ドメイン上 | 別のアドレスに置き、Cloudflareか自分だけに接続を限定できる |
| PHPを止めるしかないとき | サイトも止まる | 訪問者はページを見られる。編集とライブ機能だけ一時停止 |
最後の行は、いままさに重要です。CISAは、すぐに修正できないシステムはオフラインにするよう勧めています。静的版があれば、更新のあいだWordPressを止めても——ファイアウォールでサーバーをふさいでも——訪問者はCDNからサイトを読み続けられます。
変わらないこと
- WordPressは引き続きPHPで動くので、この更新は必要です。静的化は多層防御であって、修正ではありません。
- ライブ機能はWordPressに届きます。静的版からコメント、検索、フォーム、WooCommerceの価格をWordPressのREST APIへ送っているなら、そのリクエストはPHPを動かします。管理画面が公開ドメインから開ける場合も同じです。
- 隠したサーバーは、それを指し示すものが何もないときだけ隠れています。古いDNSレコード、メールヘッダーのサーバーIP、忘れられたサブドメインから場所が分かることがあります。
今週中に固めておくこと
- PHPを更新する:PHPが動くすべてのサーバーで行い、サイトヘルスでバージョンを確認します。
- 管理画面の前にログインの関門を置く:たとえばCloudflare Access(小規模チームなら無料)で、wp-adminを開けるのを自分だけにします。
- オリジンに届くのはCloudflareだけにする:サーバーのファイアウォールでCloudflareのIP範囲だけを許可して残りを遮断するか、Cloudflare Tunnelを使います。
- WAFを有効にする:修正までの間、ある程度の防御になりうるとCISAは述べています。
- 異常の兆候を監視する:PHPのプロセスがシェルを起動したりファイルをダウンロードしたりしていないか。CISAが推奨する監視ポイントです。
- 訪問者には静的版を配信する:公開サイトがPHPにまったく依存しなくなります。
Pinery Staticの役割
Pinery StaticはWordPressサイトをプレーンなHTMLに書き出し、Cloudflare Pagesにデプロイします。公開サイトは世界中のCDN上のファイルになり、WordPressは編集する場所になります。無料版で書き出しとデプロイが一通りでき、ProではWordPressのREST API経由でコメント、検索、フォーム、WooCommerceの価格を動かし続け、同一ドメインへの切り替え機能で今のドメインのまま静的サイトを配信しつつ管理画面も使えます。デモショップでは、静的版の読み込みは0.09秒、WordPressの元サイトは1.6秒(27地点の中央値)でした——計測結果を見る。でも、まずはPHPの更新を。
よくある質問
自分のWordPressサイトは影響を受けますか?
PHP 8.2〜8.5で修正版より古いなら、更新するまでは影響ありと考えてください。最初の脆弱性はWordPressが動く前に発動できるため、Apache + mod_phpのサイトが最も危険です。
静的化すればPHPの更新は不要になりますか?
いいえ。WordPressサーバーはPHPで動き続けるので、更新が必要です。静的化はサーバーに届く人を減らし、安全にオフラインにできるようにしますが、修正ではありません。
PHPはサーバー会社が管理しています。何かする必要はありますか?
ツール → サイトヘルス → 情報 → サーバーでPHPバージョンを確認するか、サーバー会社に問い合わせてください。素早く対応した会社も多いですが、確認は必要です。ほかの場所にあるサイトやステージング環境も忘れずに。
静的サイトでもコメントやフォームは使えますか?
使えます。WordPressのREST APIへ送る方法です(Pinery Static Proがこれを行います)。そのリクエストはPHPに届くので、訪問者が静的版を見ていても、WordPressは最新に保ち守っておく必要があります。
今日更新できない場合の暫定策はありますか?
CISAが挙げている暫定策は2つだけです。ある程度の防御になりうるWAFと、未修正のPHPシステムをオフラインにすることです。静的版があれば、2つ目の方法でも読者にとってサイトは止まりません。