2026年10月21日、PHP開発チームは認証なしで外部からプログラムを実行される(リモートコード実行)おそれがある重大な脆弱性2件を修正した緊急アップデートを公開しました。研究者の間では「PHP2Shell(php2shell)」と呼ばれ、大手サイトが緊急メンテナンスに入るなど大きな話題になっています。
WordPressなどでブログやサイトを運営している方は、「自分のサイトは大丈夫?」と不安になっているかもしれません。この記事では、影響を受けるかどうかを確かめる方法(確認ツールを含む)と、確認後にやるべきことを、公式発表をもとにわかりやすく整理します。
PHP2Shellとは? 何が危ないのか
PHP2Shellは、PHP本体(Webサーバー上でWordPressなどを動かしているプログラム言語)に見つかった2件の脆弱性、CVE-2026-109618とCVE-2026-109619の通称です。深刻度はCVSS v4.0でいずれも9.2(緊急)と評価されています。
- CVE-2026-109618:メモリ不足の処理中にPHPが中断されると、不完全なデータが正しいデータとして扱われてしまう問題
- CVE-2026-109619:解放されたはずのメモリ上の情報が残り、次のリクエストで使われてしまう問題
PHP公式の発表によると、影響を受けるのはWebリクエストを処理するすべてのPHP環境(PHP-FPM、Apacheのmod_php、php-cgi、FrankenPHP、LiteSpeedなど)です。特にmod_phpでは、アプリのコードが動く前に攻撃が成立することが実証されているとしています。脆弱性の詳細は公式の修正版公開前に外部へ漏えいしており、セキュリティ企業からは実際の攻撃の観測も報告されています。
WordPressやプラグインを最新にしても、この問題は直りません。サーバー側のPHPそのものを更新する必要があります。
まず確認:修正済みのPHPバージョン
次のバージョン以降であれば、今回の2件は修正済みです(PHP公式発表より)。
| PHPのバージョン系列 | この版以降なら修正済み |
|---|---|
| PHP 8.5 | 8.5.12 |
| PHP 8.4 | 8.4.27 |
| PHP 8.3 | 8.3.36 |
| PHP 8.2 | 8.2.35 |
| PHP 8.1以前 | 公式の修正版なし(8.2以降へ移行が必要) |
PHP 8.1以前は、すでにPHPプロジェクトのサポートが終了しているため公式の修正版は提供されません(一部のLinuxディストリビューションなどが独自に修正を提供している場合はあります)。なお、PHP 8.2も2026年12月31日でサポート終了予定のため、これを機に8.3以降への移行を計画するのがおすすめです。
方法1:ダウンロード不要の確認方法(初心者におすすめ)
WordPressの「サイトヘルス」で確認する
- WordPressの管理画面にログイン
- 左メニューの「ツール」→「サイトヘルス」を開く
- 上部の「情報」タブをクリック
- 「サーバー」の項目を開き、「PHP バージョン」の数字を確認
表示されたバージョンを、上の表と見比べてください。たとえば「8.3.35」なら未修正、「8.3.36」なら修正済みです。
レンタルサーバーの管理画面で確認する
エックスサーバー、ConoHa WING、さくらのレンタルサーバ、ロリポップ!などの多くのレンタルサーバーでは、管理画面の「PHPバージョン設定」などでドメインごとのバージョンを確認・変更できます。各社が今回の脆弱性に関するお知らせを出している場合もあるので、契約中のサーバー会社の公式サイトもあわせて確認しましょう。
コマンドで確認する(VPS・自社サーバーの場合)
SSHでサーバーに接続できる場合は、次のコマンドでバージョンを確認できます。
php -vただし、コマンドラインのPHPと、Webサイトを実際に動かしているPHP(PHP-FPMなど)が別のバージョンになっていることがあります。複数のバージョンを入れている場合は、サイトが使っているほうを確認してください。
方法2:確認ツール「php2shell-checker」を使う
もう少し手軽に判定したい方向けに、OpenAIがGitHubで無料公開している確認ツール「php2shell-checker」を紹介します。サイトのURLを指定すると、サーバーが外部に公開しているPHPのバージョン情報を読み取り、影響を受ける範囲かどうかを判定してくれます。
WebサイトやサーバーのPHPバージョンを読み取り、PHP2Shellの影響を受ける可能性があるかを判定する確認ツール。
| 開発元 | OpenAI(GitHubの公式組織アカウント) |
|---|---|
| 動作環境 | Node.jsが動くWindows・macOS・Linux |
| 料金 | 無料 |
| 日本語対応 | 非対応(英語表示) |
| 判定方法 | HTTPヘッダーやサーバー上のPHPから「バージョン」を確認(攻撃的な通信は送らない) |
| 配布元 | github.com/openai/php2shell-checker |
| 情報の最終確認日 | 2026年10月26日 |
※ リンク先は開発元の公式リポジトリです。当サイトはファイルを配布していません。
使い方の概要
- パソコンにNode.js(公式サイト)をインストールする
- 公式GitHubページの「Code」→「Download ZIP」でファイルを入手し、展開する
- 展開したフォルダでターミナル(コマンドプロンプト)を開き、次のように実行する
node phpcheck.js "https://自分のサイトのURL"- OK:公開されているバージョンが修正版以上
- POTENTIALLY VULNERABLE:影響を受ける範囲のバージョン
- UNKNOWN:バージョン情報が公開されていない等で判定できない
セキュリティ対策としてバージョン情報を隠しているサーバーは少なくないため、「UNKNOWN」と表示されることもよくあります。その場合は、方法1でサーバー側のバージョンを直接確認してください。
確認ツールを使うときの注意
- 確認してよいのは、自分が管理しているサイトだけです。他人のサイトを無断で調べるのはやめましょう
- GitHub上には、PHP2Shellの攻撃コード(PoC)や、大きなデータを送りつけてサーバーの反応を見る「プローブ型」のスキャナーも公開されています。サーバーを停止させるおそれがあるため、一般の方は使わないでください
- 「1クリックで脆弱性を修正」「このコマンドを管理者権限で実行」といった出所不明のツールやスクリプトは、セキュリティツールを装ったマルウェアの可能性があります
- ツールの判定はあくまで目安です。最終的には、実際に動いているPHPのバージョンで判断しましょう
「影響あり」とわかったら:やるべきこと
- PHPを修正版に更新する:レンタルサーバーなら管理画面から修正版(または上位バージョン)に切り替え、VPSなどはディストリビューションの更新パッケージを適用してから、PHP-FPMやApacheを再起動
- PHP 8.1以前を使っている場合:8.3以降への移行を検討。テーマやプラグインが新しいPHPに対応しているか、事前にバックアップを取ってから切り替える
- 念のため状況を確認する:更新前に外部に公開されていた場合は、見覚えのないファイルや管理者ユーザーが増えていないか確認し、管理画面やFTPなどのパスワードも変更しておくと安心です
すぐに更新できない事情がある場合、PHP公式は一部の攻撃経路を減らす設定(例:session.upload_progress.enabled=0 など)を案内しています。ただし公式は「完全な対策は更新のみ」と明言しているため、あくまで更新までのつなぎと考えてください。設定の詳細はPHP公式のセキュリティアドバイザリを確認しましょう。
よくある質問
個人のブログでも対応が必要ですか?
はい。PHPで動いているサイトは規模に関係なく自動化された攻撃の対象になります。WordPressで運営しているなら、まずサイトヘルスでバージョンを確認しましょう。
自分のパソコンにPHPを入れていなければ関係ない?
今回の問題はWebサーバー上のPHPが対象です。サイトを運営していない一般のパソコン利用者が、自分で何かをインストールする必要はありません。
Windows版のPHPを使っています
PHP公式は2026年10月26日、Windows版の修正版(8.5.12-1、8.4.27-1、8.3.36-1、8.2.35-1)を、別の部品(Brotli)の脆弱性修正を含めて再配布しています。Windows環境で使っている方は公式ダウンロードページから最新の版を入手してください。
まとめ
PHP2Shellは、PHPを使うほぼすべてのWebサイトが確認対象になる重大な脆弱性です。まずはWordPressのサイトヘルスやサーバー管理画面でPHPのバージョンを確認し、修正版(8.5.12/8.4.27/8.3.36/8.2.35)以降になっているかを確かめましょう。確認ツールを使う場合も、公式の配布元から入手し、自分のサイトだけを確認するようにしてください。
参考:PHP公式 セキュリティアドバイザリ(2026年10月21日)/あわせて読みたい:偽ダウンロードサイトの見分け方


コメント