PHPの重大な脆弱性「PHP2Shell」とは?影響を受けるバージョンと対策方法を解説

PHPの重大な脆弱性「PHP2Shell」とは

2026年10月21日、PHPに存在する2件の重大な脆弱性「PHP2Shell」が公表され、修正済みバージョンが公開されました。悪用されると、認証されていない第三者がサーバー上で不正なコードを実行できるおそれがあります。

PHPはWordPressなど、多くのWebサイトで利用されています。サイト管理者は、現在使用しているPHPのバージョンと修正の適用状況を確認し、必要な対応を行うことが重要です。

この記事では、PHP2Shellの概要、影響を受けるバージョン、すぐに実施すべき対策、更新できない場合の注意点を解説します。

※本記事は2026年10月23日時点の公開情報に基づいています。

PHPの重大な脆弱性「PHP2Shell」とは

PHP2Shellとは、PHP本体の内部処理に見つかった2件の脆弱性の総称です。2026年10月21日に修正版が公開され、PHP公式は速やかな更新を呼びかけています。

問題があるPHPをWebサーバーで実行している場合、Webサイトのプログラムに特別な欠陥がなくても攻撃を受ける可能性があります。

PHP2Shellの概要と危険性

今回公表された脆弱性は、「CVE-2026-109618」と「CVE-2026-109619」です。どちらも、特定の条件でPHPのメモリ処理に問題が生じることで、リモートコード実行につながるおそれがあります。

識別番号脆弱性の概要
CVE-2026-109618メモリ不足時の処理によって内部データが不正な状態となり、後続の処理で悪用される可能性がある
CVE-2026-109619解放済みのメモリに関連する内部状態が残り、後のリクエスト処理で悪用される可能性がある

これらが悪用された場合、サーバー上での不正なプログラム実行や、内部情報への不正なアクセスにつながるおそれがあります。管理者としてログインしていない攻撃者でも攻撃できる可能性がある点に注意が必要です。

影響するWebサーバー環境

PHP公式は、PHP-FPM、Apacheのmod_php、php-cgi、FrankenPHP、LiteSpeedなど、PHPがWebリクエストを処理する環境に注意を呼びかけています。特にmod_phpでは、アプリケーションコードの実行前に攻撃が成立するケースが示されています。

Windows ServerのIISでPHPを利用している場合も、PHPのバージョンと配布元の修正情報を確認してください。使用しているWebサーバーの種類だけで安全と判断することはできません。

PHP2Shellの影響を受けるバージョン

PHP2Shellへの対応では、利用中のPHPが修正前のバージョンかを確認することが重要です。現在サポートされているPHP 8.2~8.5には、今回の問題を修正した更新版が用意されています。

以下は2026年10月23日時点の修正済みバージョンです。

脆弱性の対象と修正済みバージョン

PHPの系列修正前のバージョン修正済みバージョン
PHP 8.58.5.11以前(8.5系)8.5.12
PHP 8.48.4.26以前(8.4系)8.4.27
PHP 8.38.3.35以前(8.3系)8.3.36
PHP 8.28.2.34以前(8.2系)8.2.35
PHP 8.1以前サポート終了した系列にも影響原則としてサポート中の系列への移行が必要

例えばPHP 8.4.26を利用している場合、今回の脆弱性への対応としてPHP 8.4.27に更新できます。必ずしもPHP 8.5へ変更する必要はありません。

ただし、Linuxディストリビューションや長期サポート事業者が修正をバックポートしている場合、表示上のPHPバージョン番号だけでは適用状況を判断できないことがあります。パッケージ提供元の情報も確認してください。

PHPの最新バージョンとサポート期限

PHPは各系列ごとにサポート期限が設定されています。PHP 8.2は2026年12月31日でセキュリティサポートが終了するため、今回の修正適用とは別に、今後の移行計画も必要です。

PHPの系列セキュリティサポート終了日
8.52029年12月31日
8.42028年12月31日
8.32027年12月31日
8.22026年12月31日

サポート終了後はPHP本体の通常のセキュリティ更新が提供されなくなります。利用中のアプリケーションの互換性を確認し、計画的にサポート中の系列へ移行しましょう。

PHP2Shellへの対策方法

PHP2Shellへの根本的な対策は、修正済みのPHPを適用することです。PHP公式は、設定変更で特定の攻撃経路を減らすことはできても、更新に代わる完全な対策にはならないと説明しています。

まず修正版を適用できるか確認し、難しい場合のみ、更新までの暫定的なリスク軽減策を検討してください。

修正済みPHPへのアップデートを優先する

PHP 8.2~8.5の各系列を利用している場合は、前述の修正済みバージョン以降へ更新してください。PHP 8.1以前を利用している場合は、サポート中の系列への移行を優先します。
なお、PHP 7.4・8.0・8.1向けには、今回の脆弱性に対する例外的なソース修正も提供されています。ただし、通常のセキュリティサポートが再開されたわけではありません。

更新時にはWebサイトやデータベースのバックアップを取得し、PHP拡張機能、WordPressのテーマ・プラグイン、業務用アプリケーションとの互換性を確認してください。

具体的な更新手順は、関連記事「PHPのバージョンアップについて。手順や注意点を解説!」をご覧ください。

すぐに更新できない場合の暫定対策

互換性検証や運用上の都合から、すぐに更新できないケースもあります。この場合、PHP公式が示す緩和策を検討できますが、いずれも完全な防御にはなりません。

対策の例注意点
session.upload_progress.enabled=0CVE-2026-109619のセッション関連の攻撃経路を制限する。サーバー側で設定し、PHPワーカーの再起動が必要
fatal_error_backtraces=0(PHP 8.5のみ)CVE-2026-109619のエラー履歴に関連する攻撃経路を制限する。PHPワーカーの再起動が必要
memory_limit=-1CVE-2026-109618のメモリ上限に関連する攻撃経路を減らすが、メモリ消費が増える危険がある
POSTやアップロードサイズの制限CVE-2026-109618の攻撃経路を減らすが、通常のフォームやアップロード機能に影響する場合がある
WAF・アクセス制限不審な通信の遮断に役立つ場合があるが、効果は製品や設定によって異なり、すべての攻撃を防止できるわけではない

Session Upload Progressは、PHPがファイルアップロードの進行状況をセッションに記録する機能です。無効化すると、その機能を利用するアプリケーションに影響が出る場合があります。

また、session.upload_progress.enabled は、ini_set() やPHP-FPMの .user.ini による設定だけでは今回の緩和策として不十分です。PHP公式は、php.ini やサーバー側の設定など、リクエストの解析より前に適用される方法を使用し、すべてのPHPワーカーを再起動するよう案内しています。

memory_limit=-1 はメモリ上限を無制限にする設定であり、安易に全環境へ適用すべきではありません。暫定対策を行う場合は、アプリケーションへの影響とサーバーのリソース制限を確認してください。

更新後の動作確認とセキュリティチェック

PHPを更新した後は、Webサイトが実際に修正済みPHPで動いていることを確認してください。サーバー内に複数のPHPがある場合、コマンドラインとWebサイトで使用するバージョンが異なることがあります。

更新後は、ページの表示、ログイン、フォーム送信、ファイルアップロードなどの主要機能を確認します。あわせてPHPやWebサーバーのログを調査し、不審なアクセスやファイル変更がないか確認してください。

すでに侵害されている場合、PHPを更新するだけでは被害は解消されません。不正な変更や情報漏えいが疑われる場合には、別途調査と復旧が必要です。

PHP2Shellの対策前に確認すること

対策を進める前に、現在のPHPのバージョンと運用環境を把握しましょう。自分でPHPを更新できるかどうかは、レンタルサーバー・VPS・専用サーバーなどの契約形態によって異なります。

確認事項を整理しておくと、更新作業やホスティング事業者への問い合わせがスムーズになります。

現在のPHPバージョンを確認する

WordPressでは、管理画面の「ツール」から「サイトヘルス」を開き、「情報」内の「サーバー」でPHPのバージョンを確認できます。

コマンドラインを使える環境では、次のコマンドでも確認できます。

php -v

ただし、これはコマンドラインで起動されるPHPの情報です。Webサイトで使用するPHPが別に設定されている場合があるため、サーバーの管理画面や実際のWeb実行環境も確認してください。

利用中のサーバーで更新できるか確認する

共用レンタルサーバーでは、利用者が管理画面でPHPのバージョンを選択できる場合と、サービス提供会社が一括して更新する場合があります。更新ができない場合は、修正版の提供状況と対応予定を事業者に問い合わせてください。

VPSや専用サーバーでは、利用者がPHPの更新を担当することが一般的ですが、マネージドサービスでは提供会社が対応する場合もあります。Windows Server・IIS環境では、PHPの実行ファイルやFastCGIの設定など、Webサイトが参照するPHPの実体も確認する必要があります。

更新前にバックアップを取得する

PHPのバージョンアップにより、古いプログラムや拡張機能が動作しなくなることがあります。更新前にWebサイトのファイル・データベース・設定情報をバックアップしてください。

可能であればテスト環境で更新を試し、問題が発生した場合の復旧方法も確認してから本番環境を更新しましょう。PHPの更新手順は「PHPのバージョンアップ方法と注意点」でも詳しく解説しています。

PHP2Shellに関するよくある質問

PHP2Shellについては、WordPressの利用有無や、PHPの設定変更だけで対応できるのかという疑問もあります。ここではサイト管理者から想定される質問をまとめます。

実際の影響や対応方法は環境ごとに異なるため、利用している製品やホスティング事業者の案内も確認してください。

WordPressを利用している場合も影響を受ける?

はい。WordPress自体ではなく、サーバー側のPHPの脆弱性であるため、WordPressを最新にしていてもPHPが修正されていなければ影響を受ける可能性があります。

WordPressの管理画面からPHPバージョンを確認し、必要に応じてサーバー側のPHPを更新してください。

PHPのバージョン番号が古ければ必ず未対策?

必ずしもそうとは限りません。Linuxディストリビューションなどでは、古いバージョン番号を維持したまま脆弱性の修正だけを取り込む「バックポート」が行われることがあります。

バージョン番号だけで判断せず、OSやパッケージの提供元が公開するセキュリティ情報も確認してください。

設定変更だけでPHP2Shellを防げる?

いいえ。Session Upload Progressの無効化やメモリ設定の変更は、一部の攻撃経路への暫定的な緩和策です。今回の脆弱性に対する完全な対策ではありません。

修正済みのPHPへの更新を優先し、更新が難しい場合はホスティング事業者やシステム管理者に相談してください。

まとめ

PHP2Shellは、2026年10月21日に公表された2件の重大なPHP脆弱性です。条件によっては、認証されていない攻撃者がサーバー上で不正なコードを実行できるおそれがあります。

まず利用中のPHPバージョンと修正の適用状況を確認し、修正済みバージョンへの更新を進めてください。更新できない場合の設定変更は暫定策にとどまり、根本的な対策にはなりません。

PHPの更新方法を詳しく確認したい方は、関連記事「PHPのバージョンアップについて。手順や注意点を解説!」も参考にしてください。

参考資料


※この記事は2026年10月時点の情報に基づいて執筆されています。掲載内容は将来的に変更される可能性があります。
※本記事の情報は、各ソフトウェアの公式サイトおよび開発元のドキュメントに基づいて作成しています。
最終更新日:2026年10月23日

この記事の執筆者について:
本記事は、Windows専門レンタルサーバーを20年以上提供する「Winserver(株式会社アシストアップ)」が運営する公式コラムです。
当社はMicrosoft SPLAパートナーとして、法人・個人を問わず多数の顧客に対し、Windows Server環境の導入・運用支援を行ってまいりました。
執筆・構成は、技術サポートとマーケティングチームが共同で担当。実際に社内導入やお客様からのフィードバックに基づいた情報をもとに執筆しています。

 

VPS紹介資料

VPS紹介資料

Winserverで一番人気のVPSの概要、特徴、料金プランをまとめた資料です。
Windows VPSの他、オンラインセラー向けの「物販特化VPS」や、会計専用ソフトをインストールした「VPS for 会計ソフト」などについても紹介しています。

資料をダウンロードする

NVIDIA製GPU搭載
高性能・高火力の専用サーバー!
「Tesla V100」「RTX-5000」「RTX-4000」

▶ プランを見る

サーバーの基礎知識

TOP
CLOSE