PHP2Shellとは?PHPの重大な脆弱性の概要と対策をわかりやすく解説

2026年10月21日、PHPに存在していた2件の重大な脆弱性について、修正版が公開されました。
これらは「PHP2Shell」と呼ばれており、条件がそろうと、ログインしていない第三者からWebサーバー上で任意のコードを実行されるおそれがあります。

セキュリティ

2026年10月21日 発生
PHP2Shell

PHPは、WordPressをはじめとする多くのWebサイトで使われています。
そのため、PHPを意識していないサイト運営者も無関係とは限りません。
この記事では、PHP2Shellの概要、影響範囲、確認方法、対策を順番に解説します。

項目詳細
通称PHP2Shell
CVE番号CVE-2026-109618、CVE-2026-109619
深刻度CVSS v4.0 スコア: 9.2 (Critical / 緊急)
原因メモリ不足(OOM)のエラー処理、およびリクエスト処理(主にファイル送信などに使われる multipart 処理)に起因するメモリ破壊
影響攻撃者が認証を必要とせずに遠隔から不正なコードを実行可能。サーバーの乗っ取り、サイト改ざん、情報窃取につながる

この記事の情報は2026年10月23日時点で確認できる内容です。
脆弱性への攻撃状況や、各レンタルサーバーの対応は変わる可能性があります。

PHP2Shellで何が起きるのか

PHP2Shellは、PHP本体のメモリ処理に関係する2件の脆弱性の総称です。
WebアプリケーションやWordPressのプラグインだけにある問題ではありません。
PHPという実行環境そのものにあるため、対象となるバージョンを使っていれば、環境上で動くアプリケーションの種類にかかわらず、影響を受ける可能性があります。

脆弱性には、次のCVE番号が割り当てられています。(CVEは、公開された脆弱性を識別するための番号です。)

識別番号概要深刻度
CVE-2026-109618メモリ不足が起きた際の処理に関する問題CVSS v4.0で9.2
CVE-2026-109619解放済みのメモリを参照する可能性がある問題CVSS v4.0で9.2

2件とも、悪意ある者(ハッカーなど)によって認証なしで対象システムを攻撃できる可能性があるものです。
悪用によって、情報の漏えい、サイトの改ざん、サービス停止、サーバー上でのコード実行につながるおそれがあります。
(実際の悪用しやすさは、PHPの構成やWebサーバーの種類、処理内容などによって変わります。)

専門的な内容ですが、どちらも通常のサイト更新だけでは直らず、PHP本体の更新が必要です。

CVE-2026-109618(概要)

CVE-2026-109618は、PHPがメモリ不足を処理する途中で、まだ正しく準備されていないデータを後続の処理が有効なものとして扱う問題です。
攻撃者が細工したHTTPリクエストを送ることで、異常な状態を引き起こされる可能性があります。

CVE-2026-109619(概要)

CVE-2026-109619は、リクエスト処理が終わった後も、解放されたメモリに関する情報が残る問題です。
同じPHPワーカーが次のリクエストを処理したときに、古い情報を参照してしまう可能性があります。

影響を受けるPHPのバージョン

PHP公式は、Webリクエストを処理するPHP環境を対象として注意を促しています。
PHP-FPM、Apacheのmod_php、php-cgi、FrankenPHP、LiteSpeedなどが含まれます。
特にmod_phpについては、アプリケーションのコードが動く前に攻撃を受ける実証例が示されており、優先して確認すべき構成とされています。

2026年10月21日に公開された修正版は、次のとおりです。
表にある番号より前のバージョンは、PHP公式の修正対象を確認してください。
(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プロジェクトによる通常のサポートが終了しています。

利用しているLinuxディストリビューションや長期サポートの提供元が修正を配布している場合もあるため、単純にバージョン番号だけで判断しないことが大切です。
一方で、提供元の修正版を確認できない場合は、サポート対象のPHPへ移行する必要があります。

WordPressやCMSも影響を受けるのか

WordPress、Drupal、JoomlaなどのCMSは、PHP上で動作します。
今回の脆弱性はPHP本体にあるため、CMSやプラグインを最新版にするだけでは解決しません。
PHPが動いているサーバー側で、修正版が適用されているかを確認する必要があります。

ちなみに、WordPressの管理画面からPHPの修正版へ更新すればよいという意味ではありません。
レンタルサーバーを利用している場合は、サーバー運営会社が更新していることがあります。
自分でPHP実行環境を管理している場合は、PHPの実行方式とバージョンを確認し、更新後にPHP-FPMやWebサーバーのプロセスを再起動することになります。

公開後の攻撃状況

攻撃の動きは公開前から報告されていました。
Cloudflareは、2026年10月21日の公表前から攻撃を狙った通信を観測し、公表後には試行数が数千件から数万件、数十万件、さらに数百万件へ増えたと説明しています。

Reutersも、Cloudflareが公表後に数百万件の攻撃試行を確認したと報じています。
一方で、観測された攻撃試行が、そのまま被害の発生を意味するわけではありません。
現時点で特定のサイトが侵害されたかどうかは、個別のログやファイルを調査しなければ判断できません。

IPAは修正版の公開前に、今回の脆弱性を悪用した攻撃を確認したわけではないと説明していました。

PHPの修正版が公開され、どこをどう攻撃できるのか、手法が明らかになっています。
基本的にはすべて危険と捉えて、更新とログ確認を進めてください。

PHP2Shellへの対策

PHPの最新化が唯一の対策です。

早急に修正版を適用してください。
一応、暫定対策も考えられますが、あまりおすすめはできません。

まずはPHPの修正版を適用する

PHPを修正版へ更新してください。
PHP公式も、一時的な設定変更では完全な解決にならず、更新が唯一の完全な対策だと説明しています。

対応するときは、次の順番で確認すると進めやすくなります。

  1. PHPが動いているサーバーやサービスを洗い出す
  2. PHPの実際のバージョンを確認する
  3. 修正版、または提供元が配布する修正済みパッケージを適用する
  4. PHP-FPMやWebサーバーを再起動する
  5. Webサイトの表示、ログイン、フォーム、ファイルアップロードを確認する
  6. 更新後のバージョンをもう一度確認する

Linuxのパッケージ管理機能を使っている場合は、バージョン番号が変わらない形で修正が提供されることがあります。
提供元の更新情報や変更履歴でCVE番号を確認してください。

すぐに更新できない場合の暫定対応

メンテナンスや検証の都合で、すぐに更新できないことがあるかもしれません。
PHP公式は、メモリ設定の見直し、アップロードサイズの制限、session.upload_progress.enabled の無効化などを案内しています。
これらは特定の攻撃経路を狭める対策であり、脆弱性を完全に解消するものではありません。

必要に応じて、次の対応を検討します。

  • 不要なファイルアップロードを停止する
  • アップロード容量やリクエストサイズを小さくする
  • WAFで不審なリクエストを遮断する
  • 外部からのアクセスを一時的に制限する
  • 更新できない公開サイトをメンテナンス画面に切り替える

WAFは追加の防御として役立ちますが、PHPの更新の代わりにはなりません。
Cloudflareも保護ルールを提供しながら、利用者にPHPの更新を求めています。

WordPress利用者が確認したいこと

WordPressを使っている場合は、WordPress本体やプラグインの更新に加えて、次の点を確認してください。
サーバー会社が対応済みでも、念のため管理画面や公式のお知らせで対象サイトの状態を確認しておくと安心です。

  • サーバーパネルでPHPのバージョンを確認する
  • サーバー会社の脆弱性対応のお知らせを確認する
  • PHPの変更後にサイトの表示と管理画面を確認する
  • 不審な管理者ユーザーや見慣れないファイルがないか確認する
  • 更新前後のバックアップを確保する
  • 異常があれば、アクセスログとエラーログを保存する

攻撃を受けた可能性がある場合は、PHPを更新するだけでなく、管理者パスワード、データベースの認証情報、APIキーなどの変更も検討します。
PHPワーカーが扱うメモリの内容が漏えいした可能性を否定できないためです。
被害の有無が分からない場合は、ログを保存したうえで、サーバー会社やセキュリティ事業者に相談してもよいでしょう。

当ブログ(WordPress)で確認したこと

このブログもWordPressで運用しており、バックエンドではPHPが動いています。
今回の情報を見たとき、最初に気になったのは、PHPの更新を自分で行う必要があるのかという点でした。

確認したところ、利用しているエックスサーバーでは、すでに対応が行われていることをサーバー管理画面で確認できました。
脆弱性の確認直後は、管理画面のアクセスを制限するなどの対策が取られていました。
対応が速くて助かりました。

PHPの内部処理を詳しく知らなくても、レンタルサーバー側の対応によって守られております。
サービス会社や契約プランによって対応方法は異なるため、自身のサイトは自身で確認してください。

自前のサーバーを使っていたら、PHPのバージョン確認から修正版の適用、プロセスの再起動、動作確認まで、自分で対応しなければなりません。
今回の件をきっかけに、レンタルサーバーを利用することでサーバー管理の負担を減らせていることを実感できました。

AIが脆弱性の発見に関わった背景

今回の脆弱性は、AIを使ったセキュリティ調査が注目されるきっかけにもなりました。
OpenAIは、CalifがGPT-5.6 Solを使って重大な欠陥を見つけ、Wizも独自に2件の脆弱性を発見して報告したと説明しています。

Wizは、Wiz Atlas、Gemini 4 Argon、GPT-5.6 Solを調査に利用したと公表しています。
報告によると、最初の脆弱性は2026年8月19日に発見され、8月24日にPHPのセキュリティチームへ報告されました。

AIによって調査スピードや難易度の高い調査が可能になり、長い間見つかっていなかった複雑な問題を見つけられるようになりました。
今後も、AIによって防御側の調査が進むことでしょう。
一方で、攻撃側も同じ技術を利用する可能性があります。

脆弱性が発見されたら、早急に対策を講じるようにしましょう。

バージョン確認と対策を!

PHP2Shellは、PHP本体にある2件の重大な脆弱性です。
PHPを使うWebサーバーでは、認証なしのリモートコード実行や情報漏えいにつながる可能性があります。

PHP 8.2から8.5を利用している場合は、次の修正版を基準に確認してください。

  • PHP 8.5.12
  • PHP 8.4.27
  • PHP 8.3.36
  • PHP 8.2.35

PHP 8.1以前を利用している場合は、提供元の修正版の有無を確認し、できるだけサポート対象のPHPへ移行することをおすすめします。
WordPress利用者は、サーバー側のPHPが対応済みかを確認しましょう。

今回のような緊急対応では、専門的な知識がないと不安になります。
まずはサーバー会社の公式情報と管理画面を確認し、対応状況が分からなければサポート窓口へ問い合わせるところから始めてください。

ご意見やご感想などお聞かせください! コメント機能です。

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