PHP2Shell対策は、PHPの更新から始める

PHPの更新からPHPを使わない公開ページへの移行を示すサムネイル

PHP2Shellへの対応は、二段階で考える

WordPressでサイトを運営している方が、今日やることは一つです。保守会社や国内レンタルサーバーの提供元へ、「このサイトのPHPはPHP2Shellの修正を反映した最新版ですか」と確認してください。WordPress本体の更新と、サーバーで動くPHPの更新は別です。PHP公式の勧告も、PHPそのものを更新するよう求めています。

更新が済んだら、次のサイト改修では「公開ページにPHPを使い続ける必要があるか」を考えます。会社案内やコラムのように、閲覧者ごとに内容を作り分けないページなら、あらかじめ作ったHTMLを配信する方法があります。一方、フォームや会員機能などは別に動く仕組みが必要です。サイト全体を一度に置き換える前提にはしません。

PHP2Shellは、何が問題なのか

PHPは、WordPressが記事などのページを作るためにサーバー上で使う言語です。2026年10月21日、PHPプロジェクトは二つの脆弱性を公表しました。番号はCVE-2026-109618とCVE-2026-109619です。CVEは、個々の問題を区別するための番号です。条件がそろうと、ログインしていない外部の人にサーバー上でプログラムを実行されるおそれがあります。PHP公式の勧告。

問題はPHPがWebからの通信を処理する部分にあります。WordPress本体やプラグインだけを最新版にしても、PHPの修正が入ったことにはなりません。自分のサイトがどのPHPを使っているか分からなければ、サーバーの提供元へ確認するところから始めてください。Cloudflareの解説も、サイトのコードやプラグインの更新だけではこの二つを修正できないと説明しています。

今すぐ行うこと:修正済みのPHPへ更新する

PHP公式が2026年10月21日の勧告で示した修正版は、8.2系が8.2.35、8.3系が8.3.36、8.4系が8.4.27、8.5系が8.5.12です。これはその日の勧告で示された版であり、今後のすべての更新を含む「永久に最新の版」ではありません。現在利用できる修正済みの最新版を、提供元の案内と合わせて確認してください。出典:PHP公式の勧告。

提供元が元の版番号を変えずに修正を取り込む場合もあります。そのときは数字だけで判断せず、「CVE-2026-109618とCVE-2026-109619の修正が適用済みか」を確認します。PHP 8.1以前はPHPプロジェクトの通常更新の対象外です。提供元による修正の有無を聞き、サポート中の系列への移行も検討します。PHP公式の説明。

確認を頼むときは、次の三点を一緒に伝えると話が早くなります。

  1. このサイトで実際に動くPHPの版は何か。
  2. 二つのCVEへの修正が反映された、利用可能な最新版は何か。
  3. 更新後にページ、管理画面、問い合わせが動くか、どこで試すか。

更新後は表示だけで終わらせず、問い合わせの送信まで試します。すぐに更新できない場合の暫定設定もPHP公式の勧告にありますが、公式は更新だけを完全な対処としています。暫定設定やWAFを入れた段階で「対応済み」とはしません。

次の対策:公開ページをPHPから離せるか

たとえば、あらかじめ作ったHTML・CSS・画像を配信するページなら、閲覧のたびにPHPでページを生成する必要はありません。Cloudflare Workers Static Assetsは、こうしたファイルを配信できる公式の仕組みです。これは「Cloudflareへ移せば自動で安全になる」という意味ではありません。PHPを使う古い公開先が残れば、そこには更新や停止の確認が必要です。

移行を考えるときは、ページと機能を分けて書き出します。

  1. 公開ページ:会社案内、サービス紹介、コラムなど。内容を更新する方法を決めれば、PHPを使わずに配信できるか。
  2. 入力を受ける機能:問い合わせ、予約、会員ログインなど。送信内容を受け取る処理と保存先をどう用意するか。
  3. 移行後の確認:旧URL、画像、フォーム、メールが実際に届くか。旧環境への依存が残っていないか。

PHPから離す判断は、PHPが一律に危険だからではありません。公開ページで不要な処理を減らし、管理する範囲をはっきりさせるためです。会員情報や予約などにWordPressの機能を使い続けるなら、無理に外さず、PHPと関連ソフトの更新を続けます。移した先のフォームや保存データにも安全対策が必要です。

CloudflareのWAFは、追加の防御

WAFは、サイトへ届く通信をルールで調べる仕組みです。CloudflareのWAF資料が役割を説明しています。CloudflareはPHP2Shellに対応するWAFルールを、無料プランを含む利用者へ提供したと発表しました。同じ発表でPHPの修正も求めています。Cloudflareの発表。

Cloudflareでドメインの名前を管理するだけでは、必ずしもWeb通信はWAFを通りません。Web用のDNSレコードがDNS-onlyなら通信は元のサーバーへ直接届き、ProxiedならCloudflareを通ります。CloudflareのDNS資料に沿って、WAFを使う場合は通信が通る設定かを確認します。WAFの有無にかかわらず、PHPの更新を先に進めます。

the N Creativeで見直したこと

私たちも、PHPへの修正の反映状況を確かめ、公開ページの作り方と問い合わせの安全対策を見直しました。変更後はページと問い合わせの動作を確認しています。個別の確認だけで、サイト全体の安全を保証することはできません。

よくある質問(FAQ)

Q. WordPressを更新済みなら、PHP2Shellにも対応できていますか?

A. PHPの版と修正状況は別に確認します。二つの問題はPHPそのものにあるため、WordPress本体やプラグインの更新だけでは修正できません。

Q. CloudflareのWAFを使えば、PHPの更新を後回しにできますか?

A. WAFは追加の防御です。PHP公式が示す完全な対処は修正版への更新なので、WAFだけで対応を終えないでください。

Q. 「PHPから離れる」とは、WordPressをすぐにやめることですか?

A. まず公開ページと、問い合わせ・予約などの機能を分けて考えます。PHPを使わずに配信できるページから見直し、残す機能には必要な更新と対策を続けます。

更新を済ませてから、次の構成を決める

公開ページと問い合わせを分けて見直したい場合は、the N CreativeのWeb制作で、今のサイトに必要な機能から整理できます。

参考情報

  1. Security advisory: Critical remote code execution vulnerabilities, update now(PHP Project・2026-11-03参照)
  2. Cloudflare deploys protections against php2shell vulnerability(Cloudflare Blog・2026-11-03参照)
  3. Cloudflare Web Application Firewall(Cloudflare Developers・2026-11-03参照)
  4. Static Assets(Cloudflare Developers・2026-11-03参照)
  5. Proxy status(Cloudflare Developers・2026-11-03参照)