PHP2Shellとは?PHPサイトの影響確認と修正手順
公開日

企業サイト、WordPress、ECサイトでPHPを使っている場合、PHP2Shellへの対応として実行環境の更新を優先してください。サイトが正常に表示され、管理者パスワードが強固でも、サーバーが保護されているとは限りません。
この記事では、実行環境の確認、パッチ適用、プロセス再起動、修正後の検証を順に説明します。情報の確認日は 2026年10月22日 です。その後の状況はPHPプロジェクトとOSベンダーの最新情報をご確認ください。
PHP2Shellとは
PHP2Shellは、PHP本体の2件の脆弱性 CVE-2026-109618 と CVE-2026-109619 の通称です。いずれもCVSS v4.0の評価は9.2(Critical)。影響を受ける環境では、認証されていない攻撃者がHTTPリクエストを通じて、Webワーカーの権限でコードを実行できる可能性があります。直ちにroot権限を得るという意味ではありませんが、サイトのファイルやアプリがアクセスできるデータに影響するおそれがあります。PHP公式セキュリティ告知
どちらも、PHPのリクエスト処理中に生じる異常な内部状態に関係しています。
- CVE-2026-109618:メモリ不足時の状態破損。 内部データの初期化途中でメモリ確保に失敗し、後続の終了処理が不正な状態を利用する可能性があります。公式技術情報
- CVE-2026-109619:古いグローバル状態の残存。 リクエスト用メモリを解放した後も内部状態が残り、同じワーカーの次のリクエストで参照される可能性があります。公式技術情報
テーマやプラグイン、アプリ本体だけを更新しても、PHP実行環境の修正にはなりません。
どのサイトを確認すべきか
公式告知では、Webリクエストを処理するすべてのPHP環境が確認対象です。PHP-FPM、Apache mod_php、php-cgi、FrankenPHP、LiteSpeedが含まれます。実行方式によって攻撃条件や検証状況は異なりますが、PHP-FPMなら安全とは判断できません。特にmod_phpでは、アプリのコードが動く前に攻撃が成立する実証が示されています。PHP公式告知
WordPress、Laravel、Drupalなどを使うサイトは、基盤となるPHPを確認してください。メインサイトが別の言語でも、旧サイト、管理ツール、テスト環境にPHPが残っていないか点検が必要です。
異常が見当たらないことと、脆弱性がないことは別です。一方、対象バージョンであることだけでは、侵害されたと断定できません。
修正済みバージョン
PHPは2026年10月21日に以下の修正版を公開しました。上流版を使う場合、該当ブランチの表記バージョン、または修正を含むそれ以降の版へ更新します。PHPリリース告知
| 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 |
OS配布パッケージは上流の番号だけで判定しないでください。 ベンダーは古い版にパッチをバックポートする場合があります。OSリリースと完全なパッケージ番号を公式情報と照合します。例えばUbuntu 24.04では、8.3.6-0ubuntu0.24.04.13 が修正済みです。Ubuntu公式修正情報
PHP 8.1以前はPHPプロジェクトの通常更新が終了しています。一部のOS・長期サポートベンダーは修正を提供し、PHP側も7.4、8.0、8.1向けの最小限のソース修正を公開していますが、サポート再開を意味しません。サポート中のブランチへの移行を優先し、旧版を継続する場合はベンダーに修正状況を確認してください。PHP公式告知
確認から修正までの手順
1. サイトが実際に使うPHPを確認する
まずコマンドラインで確認できます。
php -v
php --ini
ただし、表示されるのは CLI側の環境 です。WebサイトがFPM、Apacheモジュール、コンテナ経由で別の版を使っている場合があります。
サイト設定が参照するFPMプール、ホスティング管理画面、コンテナイメージ、ベンダーのパッケージ情報も照合します。マネージド環境では、2件のCVEへの対応とワーカー再起動を事業者に確認してください。完全な phpinfo() ページを公開したままにしないようにします。
2. バックアップを確認して更新する
ファイル、データベース、設定を復元できることを確認し、現状を記録して短いメンテナンス時間を確保します。まずはサポート中の同一ブランチ内でのセキュリティ更新を検討します。メジャー版を変更する場合は、拡張機能やアプリの互換性も検証してください。
以下は Ubuntu/Debian系でPHP 8.3とFPMを使う場合 の例です。実際のパッケージ名に合わせて変更し、他のOSでは各ベンダーの手順に従ってください。
sudo apt update
apt-cache policy php8.3-fpm php8.3-cli php8.3-common
sudo apt install --only-upgrade php8.3-fpm php8.3-cli php8.3-common
更新候補に2件の修正が含まれることを確認します。他にも利用中のPHPブランチや関連パッケージがあれば更新対象に含めてください。コマンドの成功だけでは、修正の有効化までは確認できません。
Dockerの場合は、修正済みベースイメージでアプリを再ビルドし、稼働中コンテナを置き換えます。古いイメージの再起動や、ホスト側だけのPHP更新ではコンテナ内のPHPは更新されません。
3. PHPを実行するプロセスを再起動する
ファイルを更新しても、古いワーカーが動き続ける場合があります。サービス名を確認して再起動します。FPMの例は次のとおりです。
sudo systemctl restart php8.3-fpm
sudo systemctl status php8.3-fpm --no-pager
mod_phpならApache、それ以外なら対応するサービスを再起動します。複数台構成では、待機系を含めて全インスタンスを確認してください。Ubuntuも、更新コンポーネントを使うにはアプリの再起動が通常必要だと説明しています。Ubuntu公式手順
4. 実行環境と業務機能を検証する
次の結果を記録しておくと、作業の完了を判断しやすくなります。
| 確認項目 | 完了の基準 |
|---|---|
| パッケージ・イメージ | ベンダー情報で2件の修正を確認できる |
| Web側のPHP | 実際にリクエストを処理するプロセスが修正済み |
| 更新範囲 | 全サイト・コンテナ・ノードを更新し再起動済み |
| 業務機能 | トップ、ログイン、問い合わせ、アップロード、注文などが正常 |
| ログと監視 | 異常終了、メモリエラー、5xx急増が継続していない |
通常の修正確認として、本番サイトに公開攻撃ツールを実行する必要はありません。パッチの出所、実行中の環境、業務機能の確認を優先します。
すぐに更新できない場合
公式は、修正を含む更新だけが完全な解決策だと明記しています。 更新までの間は、ネットワークやリバースプロキシでアクセス元を制限し、必要なら静的なメンテナンスページに切り替えるなど、公開範囲を縮小します。PHP公式の緩和策
確認済みのセッション関連経路については、リクエスト解析前に有効になる設定でアップロード進捗機能を無効にし、全ワーカーを再起動する方法が示されています。
session.upload_progress.enabled = 0
ただし、一部の経路を抑える対策にとどまり、もう一方のメモリ問題や全派生経路を修正するものではありません。アプリ内の ini_set() では、この目的には間に合いません。グローバル状態の公式技術情報
メモリ不足の経路に対する一時策には、メモリやフロントエンドのリクエスト制限が関係します。容量と可用性を評価せずに memory_limit=-1 をコピーしないでください。PHPの制限解除は可用性へのリスクを変え、基盤側のメモリ確保失敗でも脆弱性に到達する可能性があります。WAFやリクエスト制御も追加の防御であり、更新の代わりにはなりません。メモリ問題の公式緩和策
すでに侵害された疑いがある場合
以下はインシデント対応の推奨事項です。単独の兆候だけでPHP2Shellによる侵害と断定するものではありません。
- アクセスログ、PHPエラーログ、ホスト監査記録を保全し、不審な子プロセス、外部通信、ファイル変更を調査する。
- 不審なホストを業務トラフィックから隔離し、証拠を保全してから未知のスクリプト、定期実行、アカウントを調べる。
- 侵害が確認されたら、信頼できるイメージや検証済みの正常なバックアップから復旧する。漏えいのおそれがあるDB・デプロイ・外部サービスの認証情報は、正常な環境で更新する。
- パッチ適用後も監視を続ける。不審なファイルを1つ削除しただけで対応完了としない。
サイト担当者が依頼すべき確認事項
制作会社やホスティング事業者には、Web側のPHPバージョン、2件の修正根拠、再起動記録、主要機能の確認結果 を依頼してください。「ファイアウォールは有効」「プラグインは更新済み」という説明だけでは、今回の問題の解消を確認できません。
環境の棚卸し、更新計画、公開後の確認について相談したい場合は、ホスティング環境、利用システム、現在のPHPバージョンを添えて星源 Web Studioへお問い合わせください。