PHP2Shell脆弱性(CVE-2026-109618/109619)の対策|各社対応まとめ

スポンサーリンク
PHP2Shell脆弱性とサーバーのセキュリティ更新を表すイラスト PHP
スポンサーリンク

2026年10月22日時点の情報です。対応状況は変わる可能性があります。作業前にPHP公式と各サーバー会社の最新のお知らせを確認してください。

2026年10月21日、PHPに認証なしでリモートコード実行(RCE)につながる可能性がある2件の重大な脆弱性、CVE-2026-109618とCVE-2026-109619が公表されました。通称は「PHP2Shell」です。

WordPress、Laravel、EC-CUBEなど、PHPで動くWebサイトを公開している場合は確認が必要です。ただし、やることはサーバーの種類で異なります。

  • 共用レンタルサーバー:PHP本体の更新はサーバー会社が実施。利用者は使用中のPHPバージョンと公式告知を確認する
  • VPS・クラウド:OS内のPHP更新、サービス再起動、動作確認を利用者が行う
  • Docker:修正版を含むベースイメージを取り直し、再ビルド・再デプロイする

この記事では、PHP2Shellの概要、Xserverレンタルサーバー・XServer VPS・ConoHa WING・さくらインターネットの対応状況、そして実際に筆者が確認した手順をまとめます。

スポンサーリンク

PHP2Shell脆弱性とは

PHP公式は、今回の2件をいずれもCVSS v4.0で9.2(Critical)と評価しています。条件がそろうと、ログインしていない外部の攻撃者にWebサーバー上でコードを実行されるおそれがあります。

CVE概要主な注意点
CVE-2026-109618メモリ不足(OOM)処理に起因するRCEmod_phpで認証不要のRCEが実証済み。PHP-FPMも影響を受ける可能性がある
CVE-2026-109619リクエストをまたいで残る内部状態に起因するRCEmod_phpと、条件付きでPHP-FPMでもRCEが実証済み

PHP-FPM、Apacheのmod_php、php-cgi、FrankenPHP、LiteSpeedなど、Webリクエストを処理するPHP環境が対象です。PHP公式は特にmod_phpのリスクが高いと説明しています。

根本対策はPHPの更新です。設定変更やWAFは一部の攻撃経路を減らすための補助であり、更新の代わりにはなりません。

修正版PHPと確認するバージョン

PHP系列修正版
PHP 8.58.5.12
PHP 8.48.4.27
PHP 8.38.3.36
PHP 8.28.2.35

PHP 8.1以前はPHPプロジェクトのサポート対象外で、通常の修正版リリースはありません。今回は例外的に7.4・8.0・8.1向けの最小限のソースバックポートが提供されましたが、実際に利用できるかはOSやホスティング事業者によって異なります。可能であれば、サポート中のPHPへ移行してください。

レンタルサーバー・VPS各社の対応状況

2026年10月22日時点で確認できた内容です。「メンテナンス実施」と「PHP修正版の適用完了」は同じ意味ではないため、公式発表に書かれている範囲だけを整理しています。

サービス確認できた状況利用者が行うこと
Xserverレンタルサーバー10月22日6時45分、PHP 8.2〜8.5の全対象サーバーへ修正パッチ適用完了と案内。旧版は順次対応中選択中のPHP系列を確認。旧版なら公式の進捗を確認し、対応中の版への移行を検討
XServer VPS管理画面は10月22日9時30分から順次再開。ただしVPS内のPHP更新は利用者の管理範囲OSパッケージまたはDockerイメージを更新し、PHPプロセス・コンテナを再起動
ConoHa WING10月21日19時〜22日10時に「システムの保守作業」を実施。公式告知はPHP対応とは明記していない。10月22日午前にはファイルマネージャーとWebメールの一時停止案内も確認PHP設定画面と最新告知を確認。メンテナンスだけを根拠に修正済みと判断しない
さくらのレンタルサーバコントロールパネルで選択できる全PHPバージョンへの対応完了を案内。緊急の利用者作業は不要サポート中の最新版PHPへの移行を検討。phpMyAdmin・Webメールの進捗は別途確認
さくらのVPS同日に案内されたVPSのホストメンテナンスは別の脆弱性への対応で、PHP更新完了の案内ではないVPS内のPHP・OS・Dockerを利用者側で更新

Xserverレンタルサーバー

Xserverは予防的な安全対策として、10月21日16時から公式サイトや管理画面などを一時停止しました。利用者のWebサイトとメールサーバーは稼働を継続しながら、安全対策が進められました。

10月22日6時45分の更新では、PHP 8.2〜8.5について全対象サーバーへの修正パッチ適用完了を案内しています。筆者の共用サーバーでもSSHからPHP 8.4を明示して確認し、PHP 8.4.27へ更新されていました。

php8.4 -v

ここで注意したいのは、単にphp -vを実行すると、サイトが実際に使用しているものとは別の古いCLI版が表示される場合があることです。サーバーパネルの「PHP Ver.切替」と、使用中の系列を指定したコマンドの両方を確認してください。

XServer VPS

XServerの公式FAQでは、VPS環境のセキュリティ対策は利用者自身で行う必要があると案内されています。XServer側のサービスサイトやVPSパネルが復旧しても、自分のVPS内にあるPHPやDockerコンテナが自動更新されるわけではありません。

OSパッケージでPHPを入れている場合は、利用しているLinuxディストリビューションのセキュリティ情報を確認し、修正済みパッケージを適用します。Dockerの場合は、次の手順でベースイメージを取り直してコンテナを作り直します。

docker compose build --pull --no-cache app
docker compose up -d --force-recreate app worker scheduler
docker compose exec app php -v

--pull --no-cacheを付けないと、同じタグの古いキャッシュを再利用してしまうことがあります。構成によってサービス名は異なるため、そのままコピーせず、自分のCompose設定に合わせて実行してください。

Dockerの基本操作は「【Docker】よく使うコマンド」でもまとめています。

ConoHa WING

ConoHa WINGは、10月21日19時から22日10時まで一部サーバーの緊急メンテナンスを案内しています。公開されている告知の作業内容は「システムの保守作業」で、PHP2Shellへのパッチ適用完了とは明記されていません。

ConoHa WINGでは、コントロールパネルの「サイト管理」→「サイト設定」→「応用設定」→「PHP設定」から、ドメインごとのPHPバージョンを確認できます。公式の続報とあわせて確認し、修正済みか不明な場合はサポートへ問い合わせるのが安全です。

さくらインターネット

さくらインターネットは10月22日、さくらのレンタルサーバで選択できるすべてのPHPバージョンに対して対応を完了し、利用者が行う緊急対応はないと発表しました。一方で、サポート期間中の最新版PHPへの移行は引き続き推奨されています。

なお、一部サービスのphpMyAdminとWebメールは対応中とされています。また、同じ日に行われた「さくらのVPS」のホストメンテナンスは別の脆弱性に関するもので、VPS内のPHPを更新してくれるという案内ではありません。VPS利用者は自分の環境を更新してください。

実際に行った確認と更新の流れ

筆者は、共用レンタルサーバー上のWebアプリと、VPS上のDocker環境を確認しました。

共用レンタルサーバーの場合

  1. サーバーパネルで、対象ドメインが使用するPHP系列を確認
  2. SSHから系列を指定してphp8.4 -vを実行
  3. PHP 8.4.27とビルド日時を確認
  4. Webサイトの表示、ログイン、主要機能、エラーログを確認

PHP本体はサーバー会社側で更新されていたため、利用者側でインストール作業はしていません。

VPS上のDockerの場合

  1. データベースのバックアップを取得し、完了を確認
  2. 更新前のPHPバージョンと主要データ件数を記録
  3. --pull --no-cache付きでPHPイメージを再ビルド
  4. 同じイメージを使うapp・worker・schedulerを再作成
  5. コンテナ内でPHP 8.4.27を確認
  6. ヘルスチェック、データ件数、ログイン、公開画面を確認

ビルドは約3分半、バックアップと確認を含む全体の作業は約10分でした。同じVPSに複数サービスがある場合は、PHPを使うコンテナがほかにないかも確認します。

確認時に注意したい4つのポイント

1. php -vはCLI版の確認

php -vで表示されるのは、ターミナルで動くCLI版です。Webサイトを処理するPHP-FPMやFastCGIが別バージョンの場合があります。WordPressなら「ツール」→「サイトヘルス」→「情報」→「サーバー」でも、Web側のPHPバージョンを確認できます。

2. バックポートでは版番号が変わらないことがある

OSやホスティング事業者が修正部分だけを古いPHPへ取り込む場合、画面上のバージョン番号が同じでも対策済みのことがあります。旧版を使っている場合は番号だけで判断せず、事業者やOSベンダーの告知でCVE対応状況を確認してください。

3. WordPressやEC-CUBEの更新とは別

今回の問題はPHP本体の脆弱性です。WordPressやEC-CUBEの更新ボタンだけではPHPは更新されません。ただし、侵害リスクを減らすため、CMS本体・テーマ・プラグインも別途最新版へ更新しておきましょう。

4. 更新後は動作とログを確認

トップページだけでなく、管理画面、ログイン、問い合わせフォーム、ファイルアップロード、決済など主要な操作を確認します。あわせて、身に覚えのないファイル、管理者アカウント、設定変更、エラーログの急増がないかを確認してください。

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

PHP公式は、更新までの一時的な緩和策として、session.upload_progress.enabled=0の設定と全PHPワーカーの再起動などを案内しています。これはCVE-2026-109619で確認されたセッション関連の攻撃経路を防ぐためのもので、ほかの経路までは防げません。

CVE-2026-109618にはmemory_limit=-1などの一時策も示されていますが、可用性やメモリ消費への影響があり、完全な対策ではありません。設定だけで安心せず、修正版PHPへの更新を優先してください。共用レンタルサーバーでは独自に変更せず、事業者の案内に従います。

PHP2Shell対応チェックリスト

  1. 公開中のサイト・API・管理画面と、その稼働場所を洗い出す
  2. サイトが実際に使うPHP系列と実行方式を確認する
  3. 共用サーバーか、VPS・Dockerかを確認し、更新担当を決める
  4. 8.5.12・8.4.27・8.3.36・8.2.35、またはベンダーの修正済みパッケージへ更新する
  5. PHP-FPM、Apache、コンテナなど実行中のプロセスを再起動する
  6. CLIとWeb側の両方で更新結果を確認する
  7. 主要機能、ログ、不審なファイルやアカウントを確認する
  8. CMS・テーマ・プラグインも最新版へ更新する

よくある質問

WordPressを使っているだけでも対象ですか?

WordPressはPHPで動くため、Web側のPHPが未修正なら対象になり得ます。WordPress本体のバージョンだけでなく、サーバーのPHPを確認してください。

レンタルサーバーのメンテナンスが終われば安全ですか?

メンテナンス完了だけでは判断できません。PHP修正版または修正パッチの適用完了が明記されているか、選択中のPHP系列が対応済みかを確認してください。

WAFを有効にすれば更新しなくてもよいですか?

いいえ。WAFは一部の通信を遮断する補助策であり、PHP公式も更新だけが完全な対策と説明しています。

まとめ

PHP2Shellは深刻度の高い脆弱性ですが、まず落ち着いて「PHPを誰が更新する環境か」を確認することが重要です。

  • 共用レンタルサーバーは、事業者の対応状況と選択中のPHPを確認する
  • VPS・Dockerは、自分で更新・再起動・動作確認まで行う
  • CLI版とWeb版を取り違えない
  • 暫定設定やWAFだけで完了と考えない

今回の対応を一度きりで終わらせず、重大なPHPリリースを知る方法、バックアップ、更新手順、担当者を運用手順書に残しておくと、次回はさらに早く対応できます。

参考情報

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