
PHPは、企業のWebサイトや業務システム、WordPressを利用したコーポレートサイトなど、幅広いサービスで使用されています。そのため、PHPを利用している企業は、自社のシステムが影響を受けるかどうかを確認し、必要な対策を速やかに実施することが重要です。
本記事では、PHP2Shellの概要から、現在使用しているPHPのバージョン確認、修正パッチの適用、システムの動作検証まで、実務で必要となる対応手順を解説します。
1. PHP2Shellとは?企業が早急に対応すべき理由
PHP2Shellは、PHPの処理系に存在する2つの重大な脆弱性の通称です。適切な修正が行われていない環境では、攻撃者が細工したHTTPリクエストを送信することで、サーバー上で任意のコードを実行される可能性があります。
このような攻撃は、一般にリモートコード実行(RCE:Remote Code Execution)と呼ばれます。
攻撃が成功した場合、システムの構成や実行権限によっては、次のような被害につながるおそれがあります。
-
顧客情報や社内データなどの機密情報の漏えい
-
Webサイトの改ざんや不正なプログラムの設置
-
サーバー内のファイルやデータベースへの不正アクセス
-
サーバーを起点とした、ほかのシステムへの侵害拡大
-
サービス停止による業務への影響
また、影響は特定のWebアプリケーションだけに限定されません。Apacheのmod_phpやPHP-FPMなど、PHPをWebリクエストの処理に使用するさまざまな構成が対象となり得ます。
WordPress、Laravel、Symfonyなどを利用している場合も、アプリケーション本体の更新だけで対策が完了するとは限りません。PHPの実行環境そのものを確認する必要があります。
2. PHP2Shellの影響を受けるバージョンを確認する
最初に、自社のシステムで稼働しているPHPのバージョンを確認します。
2026年10月21日に公開された修正済みバージョンは、次のとおりです。
上記はPHPプロジェクトが公開した修正済みリリースを基準としています。Linuxディストリビューションやホスティング事業者が独自に修正をバックポートしている場合は、表示されるバージョン番号が異なっていても修正済みの可能性があります。必ず利用している提供元のセキュリティ情報も確認してください。
なお、PHP 8.1以前はPHPプロジェクトによる通常のサポートが終了しています。修正パッケージの提供状況を確認するとともに、サポート対象のバージョンへの移行を計画することが推奨されます。
2-1. コマンドでPHPのバージョンを確認する
Linuxサーバーなど、コマンドラインを利用できる環境では、次のコマンドを実行します。
php -v
実行結果には、PHPのバージョンやビルド情報などが表示されます。
ただし、このコマンドで確認できるのは、基本的にコマンドラインで使用されるPHPです。Webサイトが実際に利用しているPHPと異なる場合があるため、これだけで判断しないようにしましょう。
Ubuntu環境では、インストール済みのPHP関連パッケージを次のコマンドで確認できます。
apt list '?installed ?name(^php[0-9.]+$)'
PHP-FPMを利用している場合は、稼働中のサービスやバージョンも確認します。
systemctl list-units --type=service | grep php
コンテナ環境では、Dockerイメージに含まれるPHPも確認が必要です。ホスト側のPHPを更新しても、コンテナ内の実行環境が自動的に更新されるとは限りません。
2-2. PHPを利用しているシステムを洗い出す
バージョンの確認と並行して、PHPを利用しているシステムを一覧化します。
確認対象には、次のようなものがあります。
-
企業のコーポレートサイトやサービスサイト
-
WordPressなどのCMS
-
LaravelやSymfonyを利用した業務アプリケーション
-
ECサイトや会員管理システム
-
PHP-FPMやApacheのmod_phpを使用するサーバー
-
PHPを内蔵する製品やアプライアンス
特に、インターネットから直接アクセスできるシステムは優先して確認してください。複数のサーバーやクラウド環境を運用している企業では、担当者が把握していないPHP環境が残っている可能性にも注意が必要です。
3. PHP2Shellの修正パッチを適用する手順
対象となる環境を確認したら、修正パッチを適用します。ここでは、代表的なLinux環境を例に説明します。
3-1. アップデート前の準備を行う
本番環境を更新する前に、次の項目を確認します。
-
データベースや必要なファイルのバックアップ
-
現在のPHPバージョンとインストール済みパッケージ
-
使用しているPHP拡張モジュールと依存関係
-
メンテナンス時間やサービス停止の必要性
-
ロールバック手順と担当者への連絡体制
可能であれば、先に検証環境でアップデートを実施し、主要機能への影響を確認します。ただし、深刻な脆弱性が確認された場合は、検証に時間をかけすぎず、リスクに応じて本番環境の対応を優先する判断も必要です。
3-2. Ubuntu環境でPHPを更新する
Ubuntuのパッケージ管理機能を使用している場合、まずパッケージ情報を更新します。
sudo apt update
その後、システム全体の更新方針や依存関係を確認したうえで、更新を実施します。
sudo apt upgrade
PHP関連パッケージだけを更新する必要がある場合は、次のコマンドも選択肢となります。
sudo apt install --only-upgrade '?name(^php[0-9.]+$)'
実際に適用されるパッケージや修正内容は、Ubuntuのリリース、サポート契約、利用しているリポジトリによって異なります。更新前に提供元のセキュリティ情報を確認してください。
3-3. PHPの実行環境を再起動する
パッケージの更新後は、実行中のプロセスが古いPHPのままになっていないか確認します。必要に応じてPHP-FPMやWebサーバーを再起動します。
Apacheを利用している環境の例は次のとおりです。
sudo systemctl restart apache2
PHP-FPMを利用している場合は、実際のサービス名を確認してから再起動してください。
systemctl list-units --type=service | grep php
例えば、PHP 8.3のFPMサービスを利用している環境では、次のようになります。
sudo systemctl restart php8.3-fpm
上記は実行例です。サービス名は環境によって異なります。
再起動によって一時的な接続切断が発生する可能性があるため、本番環境では影響範囲を把握し、適切なタイミングで実施します。
4. 修正パッチ適用後の動作検証
アップデートが完了したら、PHPのバージョンを確認するだけでなく、Webサイトや業務システムが正常に動作しているかを検証します。
4-1. PHPのバージョンを再確認する
まず、更新後のバージョンを確認します。
php -v
パッケージ管理ツールの情報も確認し、修正済みパッケージが適用されていることを確認します。
ただし、コマンドラインのPHPとWebサーバーが使用するPHPが異なる場合があります。PHP-FPMの稼働状態、Webサーバーの設定、コンテナのイメージなども併せて確認してください。
4-2. 主要な機能をテストする
次に、システムの主要機能を実際に操作して確認します。
特に、ログインやセッション管理、ファイルアップロードなどは重点的に確認しましょう。PHPの設定変更や拡張モジュールの差異によって、これまで正常だった機能に影響が出る可能性があるためです。
可能であれば、テストケースを事前に用意し、更新前後の結果を比較すると、問題の早期発見につながります。
4-3. サーバーのログを確認する
動作検証と並行して、PHP、Webサーバー、アプリケーションのログを確認します。
例えば、次のような事象がないかを調べます。
-
PHPの致命的エラーやメモリ関連エラーの急増
-
PHP-FPMやApacheの異常終了
-
通常とは異なるリクエストやアクセスの集中
-
不審なファイルや設定変更
-
見覚えのないプロセスやアカウントの作成
異常が見つかった場合は、単なる更新後の不具合と決めつけず、セキュリティ侵害の可能性も考慮してください。
重要なのは、パッチを適用したことと、すでに侵害されていないことは別の問題であるという点です。更新前に攻撃を受けていた場合、不正なファイルや設定が残っている可能性があります。
侵害が疑われる場合は、ログを保全し、必要に応じてサーバーをネットワークから隔離したうえで、専門家による調査を実施します。
5. すぐにパッチを適用できない場合の暫定対策
業務システムの都合などで、直ちにPHPを更新できない場合もあるでしょう。その場合は、影響を受けるシステムを特定し、リスクを低減する暫定措置を検討します。
例えば、PHPのSession Upload Progress機能を無効化する設定は、攻撃経路の一部を抑制するための対策として案内されています。
session.upload_progress.enabled=0
ただし、この設定だけでPHP2Shellのすべての攻撃を防げるわけではありません。リクエストサイズの制限やアクセス制御など、環境に応じた追加対策が必要となる場合があります。
また、設定変更によって既存機能に影響が出る可能性もあるため、変更内容を記録し、動作検証を実施してください。
修正済みバージョンへの更新が完了するまでは、インターネットからのアクセスを制限することや、必要に応じて対象システムを一時停止することも検討します。
暫定対策は、あくまでもリスクを低減するための措置です。根本的な対策として、提供元が公開する修正済みパッケージを適用することが重要です。
6. PHP2Shell対策を継続的なセキュリティ管理につなげる
今回の対応を一時的なアップデート作業で終わらせず、継続的なセキュリティ管理につなげることも大切です。
具体的には、次のような取り組みが有効です。
1. PHPのバージョンを定期的に棚卸しする
管理対象のサーバー、コンテナ、CMS、業務システムを一覧化し、バージョンやサポート期限を把握します。
2. セキュリティ情報を継続的に確認する
PHP公式サイト、OSベンダー、クラウド事業者などのセキュリティ情報を定期的に確認し、重要な更新を見逃さない体制を整えます。
3. 更新と検証の手順を標準化する
バックアップ、更新、再起動、動作確認、ログ確認までの手順を文書化し、担当者が変わっても対応できるようにします。
4. システムの権限とデータを最小化する
Webサーバーが必要以上の権限を持たないようにし、重要なデータへのアクセスを適切に制限します。万が一侵害された場合も、被害の拡大を抑えやすくなります。
まとめ
PHP2Shellは、PHPの実行環境に関わる重大な脆弱性です。企業が安全にシステムを運用するためには、現在のPHPバージョンを確認し、修正済みパッケージを適用したうえで、アプリケーションの動作とセキュリティ状態を検証する必要があります。
対応のポイントは、次の4つです。
-
PHPを利用しているシステムとバージョンを洗い出す
-
提供元の情報を確認し、修正済みパッケージへ更新する
-
更新後に主要機能の動作確認とログ調査を行う
-
更新前の侵害の可能性も考慮し、必要に応じて追加調査を実施する
PHPの更新は、単にバージョン番号を変更するだけではありません。システムの安定稼働とセキュリティを両立するために、計画的な更新と検証を行うことが重要です。
Hatonetでは、企業の既存システムの保守・運用やレガシーシステムの刷新、開発体制の見直しなど、ITシステムに関する課題解決を支援しています。PHPの脆弱性対応やシステムの更新方針についてお困りの場合は、専門家への相談を通じて、自社の環境に適した対応計画を検討してみてはいかがでしょうか。
ハトネット は、全国の IT 企業間の現場の IT 担当者を結び付け、雇用主が効果的かつ専門的な方法でリソースを最大限に活用し、コストを節約できるよう支援します。
IT 業界で最大 500,000 人の人々を接続します。
パートナーを見つけるコストを節約します。
小さなご要望でも、いつでもオンラインでお申し込みください。
※お問い合わせ:
メール: hello@hatonet.com
アカウントを登録する
どこでも企業 コミュニティから高品質エンジニアリング リソースに接近することができます。
- レガシーモダナイゼーション 20
- AIモダナイゼーション 30
- ベトナムの文化 13
- IT人材市場 280
- お知らせ 13
- 会員紹介 13



