PHPの脆弱性「PHP2shell」とは:影響バージョンと対策

セキュリティ(最新情報) / 2026年11月7日公開 / 読了目安 約4分

PHPの脆弱性「PHP2shell」とは:影響バージョンと対策

2026年10月21日、PHPの開発チームは、認証なしで遠隔からコードを実行される可能性がある2件の脆弱性を修正したバージョンを公開しました。
2件を組み合わせたものは「PHP2shell」と呼ばれています。
米国CISAは10月26日(現地時間)に、両方の脆弱性を悪用が確認された脆弱性のカタログ(KEV)に追加しました。
この記事では、最初に対策を示し、続けて、脆弱性の内容、影響を受けるバージョン、PHP管理者が実施すべきことを、一次情報に基づいてまとめます。

対策

修正版へ更新する

修正版は、PHP 8.2.35、8.3.36、8.4.27、8.5.12 です。
影響を受けるバージョンの詳細は、後述の表を参照してください。
公式発表は、完全な対策は更新だけだとしています。
Linuxディストリビューションには事前にパッチが提供されているため、OSのパッケージで使っている場合は、提供元の更新を確認します。
更新後は、PHP-FPMやApacheを再起動し、すべてのワーカーが新しいバージョンで動いていることを確かめます。

すぐに更新できない場合の緩和策

次の設定は、確認された攻撃経路の一部を減らすだけで、安全になるわけではないと明記されています。

  • CVE-2026-109618向けに、memory_limit=-1 をアプリケーションから上書きできない方法(FPMプールやApacheの php_admin_value など)で設定する。
  • post_max_size を小さくし(アップロードがなければ 8M、あれば 32M)、upload_max_filesize はそれより小さくする。
  • RLIMIT_AS や RLIMIT_DATA での制限は、脆弱な処理を引き起こす原因になるため使わない。
  • CVE-2026-109619向けに、php.ini などで session.upload_progress.enabled=0 を設定し、全ワーカーを再起動する(ini_set() や .user.ini では効果がない)。
  • PHP 8.5では、fatal_error_backtraces=0 を設定し、全ワーカーを再起動する。

IPAは、更新や移行までの間はアクセス制限などの暫定対策をとり、必要に応じて外部からのアクセス遮断やサービスの一時停止を判断するよう求めています。

何が起きたか

公表された脆弱性は次の2件です。
深刻度は、どちらもCritical(CVSS v4.0 基本スコア 9.2)とされています。

CVE 名称 内容(アドバイザリの要旨)
CVE-2026-109618 RCE via OOM corruption メモリ不足の処理で、リクエストの内部データが初期化の途中のまま後処理に使われる
CVE-2026-109619 RCE via stale global state 解放済みのメモリを指す内部状態が残り、同じワーカーが処理する後続のリクエストで使われる

PHPの公式発表では、Webリクエストを処理するすべてのPHP環境が対象とされています。
PHP-FPM、Apacheのmod_php、php-cgi、FrankenPHP、LiteSpeedが例として挙げられています。
中でもmod_phpの危険度が最も高く、アプリケーションのコードが動く前に攻撃が成立する例が示されたと書かれています。
IPAは、国内での被害事例は把握していないとしています。

影響を受けるバージョンと修正版

系列 影響を受けるバージョン 修正版
PHP 8.2 8.2.35 より前 8.2.35
PHP 8.3 8.3.36 より前 8.3.36
PHP 8.4 8.4.27 より前 8.4.27
PHP 8.5 8.5.12 より前 8.5.12

PHP 8.1以前は、PHPプロジェクトからの更新が終わっています。
ディストリビューションやLTSベンダーが修正を移植している場合があるため、提供元に確認するよう案内されています。
ソースからビルドする利用者向けに、PHP 7.4、8.0、8.1への最小限の修正も公開されています。
なお、PHP 8.2は2026年12月31日にサポートが終了すると、8.2.35の告知に書かれています。

PHP管理者が実施すべきこと

  • 本番・検証環境で動いているPHPのバージョンを php -v やパッケージ管理で確認し、CLIとWebサーバーで別のPHPが動いていないかも見る。
  • コンテナイメージの基になるPHPイメージを更新し、イメージを作り直してデプロイする。
  • レンタルサーバーやマネージドサービスでは、提供元の対応状況を確認する。
  • PHP 8.1以前の環境は、サポートされた系列への移行を計画する。
  • VPN機器やセキュリティ機器の管理画面など、PHPを内部で使う製品について、各製品の開発元の情報を確認する(IPAが11月2日に追記)。

情報は 2026-11-06 時点のものです。

参考資料・出典

この記事は、公開時点の情報に基づいています。最新の情報は、出典の公式サイトでご確認ください。