【脆弱性PHP2shell】LinuxサーバーでPHPがインストール利用されているか、確認と対処方法

スポンサーリンク

2026年10月22日、IPAよりPHPの重大な脆弱性「PHP2shell(CVE-2026-109618、CVE-2026-109619)」に関する注意喚起が公開されました。PHPを利用するLinuxサーバーにも影響する可能性があるため、本記事ではLinuxサーバでの影響を受けるバージョン確認方法、対応方法についてまとめます。なお、全体の概要についてはこちらにまとめています。

確認

PHPのパッケージがインストールされているか確認する

# rpm -qa | grep '^php'
<出力例>
php-8.3.35-1.el9.x86_64
php-cli-8.3.35-1.el9.x86_64
php-common-8.3.35-1.el9.x86_64
php-fpm-8.3.35-1.el9.x86_64
php-mbstring-8.3.35-1.el9.x86_64
php-pdo-8.3.35-1.el9.x86_64
php-xml-8.3.35-1.el9.x86_64

の例では PHP 8.3.35 のため、PHP2shell の修正版である PHP 8.3.36 以降 未満に該当し、影響を受ける可能性があります。

下記のバージョン以下の場合は、最新版への更新要否を確認してください。今回の脆弱性では、修正版として以下のバージョンが公開されています。

PHP 8.2.35以降
PHP 8.3.36以降
PHP 8.4.27以降
PHP 8.5.12以降

PHPが実際に利用されているか確認する

PHPがインストールされていても、実際には使われていない場合があります。

Apacheの場合は以下で確認できます。

# apachectl -M | grep php
<出力例>
php5_module (shared)

上記のように表示される場合、Apacheにmod_phpが組み込まれており、PHPを実行できる状態となっています。

PHPファイルを処理する設定があるか確認

# grep -R "AddType.*php" /etc/httpd
<出力例>
/etc/httpd/conf.d/php.conf:AddType text/html .php

この設定が存在する場合、.php ファイルをPHPとして処理する設定が有効になっています。

実際にPHPファイルが配置されているか確認

# find /var/www -name "*.php"
<出力例>
/var/www/html/index.php
/var/www/html/info.php
/var/www/html/application/config.php

PHPファイルが存在する場合は、実際に利用されている可能性が高いです。

インストール、利用がある場合はアップデートを実施する

OSやディストリビューションがサポートしている最新版へ更新します。

# dnf update php*

※ 実際には利用しているリポジトリやアプリケーションとの互換性確認が必要です。

利用していない場合は無効化または削除を検討する

実際確認して、パッケージはインストールされているが、PHPを使用していないサーバーであれば、攻撃対象を減らすために無効化や削除を検討します。

Apacheのmod_phpを無効化

Apacheのmod_phpを無効化する。(php.conf はリネームして、読み込まないようにしておく。)

#mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php.conf.bak
#systemctl restart httpd

PHPをアンインストール

# rpm -qa | grep '^php'
# rpm -e $(rpm -qa | grep '^php')

削除前の確認のみであれば

# rpm -e --test $(rpm -qa | grep '^php')

古い環境の場合

IPAでは、PHP 8.1以前はサポート終了となっており、今回の脆弱性に対する修正版は提供されないため、サポート対象バージョンへの移行を推奨しています。

特に以下のような環境は要注意です。

PHP 5.x
PHP 7.x
PHP 8.0
PHP 8.1

これらを利用している場合は、単純なパッチ適用ではなく、システム更改やアプリケーション改修を含めた対応を検討する必要があります。

まとめ

Linuxサーバー管理者がまず行うべきことは次の3点です。

・PHPがインストールされているか確認する
・実際にWebサービスで利用されているか確認する
・利用している場合は修正版へ更新、利用していない場合は無効化または削除する

特に古いサーバーでは「PHPがインストールされたまま誰も利用状況を把握していない」ケースもあるため、まずは利用実態の把握から始めることが重要です。

コメント

タイトルとURLをコピーしました