LeakWatch

ブログ ・ 特集「脆弱性の解説」

PHPの深刻な脆弱性「PHP2Shell」とは|影響を受けるサイトと、利用者・運営者がやること

公開 2026年10月24日

要点

  • PHP 本体に、ログインなしで外部からサーバー上の任意のプログラムを実行されるおそれのある脆弱性が2件見つかり、2026年10月21日に修正版が公開されました。2件をあわせて「PHP2Shell」と呼ばれています。
  • 深刻度は CVSS v4.0 で 9.2(最も高い「緊急」の区分)。PHP 公式は「完全な緩和策はなく、更新が唯一の安全な選択肢」としています。
  • サイトを運営している人は、PHP をすぐに修正版へ更新してください。一般の利用者は、パスワードの使い回しをやめるなど、漏洩に備えた対策をしておくと安心です。

何が起きたのか

PHP は、ウェブサイトを動かすためのプログラミング言語です。WordPress などのよく使われるサイト作成ツールも PHP で動いているため、企業のサイトから個人のブログまで、多くのサイトが PHP を使っています。

2026年10月21日、PHP の開発チームは、PHP 本体の2件の脆弱性(CVE-2026-109618、CVE-2026-109619)を修正したセキュリティリリースを公開しました。どちらも、攻撃者がログインしないまま、外部から細工したリクエストを送ることで、サーバー上で好きなプログラムを実行できる可能性があるものです。この2件は、あわせて「PHP2Shell」と呼ばれています。

特定のアプリではなく PHP そのものの問題のため、古い PHP のまま動いているサイトは、使っているアプリやサイト作成ツールに関係なく影響を受けるおそれがあります。

2つの脆弱性の中身

CVE-2026-109618(メモリ不足のときの処理の不備)
メモリが足りなくなったときの処理の途中で、PHP がリクエストの内部データを中途半端に初期化した状態のまま処理を打ち切ってしまい、その後の後片付けで、その壊れたデータを正しいものとして扱ってしまう問題です。アドバイザリでは、フォームのデータ(マルチパート)の解析が関わるとされています。
CVE-2026-109619(前のリクエストの内部状態が残る問題)
あるリクエストで使った内部の状態が、メモリを解放した後も残ってしまい、同じプロセスが次に処理するリクエストで、その古い状態が使われてしまう問題です。アドバイザリでは、標準で有効になっているファイルアップロードの進み具合の機能(session.upload_progress)などが関わるとされています。

アドバイザリによると、Apache の mod_php で影響が確認されているほか、PHP-FPM などでも条件によって影響を受けます。

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

次の修正版より前のバージョンが影響を受けます。

系列修正版(このバージョン以降に更新)
PHP 8.58.5.12
PHP 8.48.4.27
PHP 8.38.3.36
PHP 8.28.2.35
PHP 8.1 以前修正版なし(サポートが終了しているため)

IPA は、PHP 5.4 以降のバージョンは何らかの影響を受ける可能性があるとしています。サポートが終了した PHP 8.1 以前を使っている場合は、修正版のある系列への移行が必要です。

悪用の状況

海外のセキュリティ企業 watchTowr は、この脆弱性を悪用しようとする攻撃を実際に観測したと報告しています。技術的な詳細が修正版の公開前に出回っていたこともあり、更新していないサイトは狙われるおそれが高い状態です。

サイトを運営している人がやること

  1. 使っている PHP のバージョンを確認する。サーバーで php -v を実行するか、レンタルサーバーの場合は管理画面で確認します。レンタルサーバーや CMS のサービスを使っている場合は、事業者からの案内も確認してください。
  2. 修正版に更新する。上の表の修正版以降に更新し、PHP-FPM や Web サーバーを再起動して、新しいバージョンで動いていることを確かめます。
  3. すぐに更新できない場合は、暫定的な対策を取る。IPA は、すぐに更新できない場合はアクセス制限などの暫定対策を検討し、それもできない場合は外部からのアクセスの遮断やサービスの一時停止も検討するよう呼びかけています。アドバイザリには、session.upload_progress.enabled=0 にするなどの設定による緩和策も書かれていますが、PHP 公式は「完全な緩和策はない」としており、更新までのつなぎにすぎません。
  4. サポートが終了した PHP を使い続けない。PHP 8.1 以前には修正版が出ません。サポート中の系列に移行してください。
  5. すでに攻撃されていないかを確認する。見覚えのないファイルが増えていないか、不審なアクセスの記録がないかを確認し、心当たりがあれば専門の事業者に相談してください。

一般の利用者がやること

この脆弱性は、サイトを運営する側が対策するものです。利用者がサイトの PHP を更新することはできません。ただ、対策が遅れたサイトが攻撃されると、そこに登録した個人情報が漏洩するおそれがあります。万一に備えて、次のことをしておくと安心です。

  • パスワードを使い回さない。どこか1つのサイトからパスワードが漏れても、ほかのサイトに不正ログインされないようにします。今のパスワードが過去の漏洩で出回っていないかは、パスワード確認で調べられます。
  • 2段階認証を設定する。パスワードが漏れても、それだけではログインできないようにします。
  • 漏洩の公表を確認する。使っているサービスから漏洩の公表があったときは、LeakWatch の事案一覧で、何が漏れて何をすればいいかを確認できます。
  • 漏洩をきっかけにした詐欺に注意する。「個人情報が漏洩したので確認してください」といったメールや SMS のリンクから、パスワードやカード番号を入力しないでください。

この脆弱性が原因と公表された漏洩があれば、LeakWatch の事案一覧に掲載します。

出典

この記事は2026年10月24日時点の公開情報をもとにしています。最新の情報は出典の公式情報で確認してください。

← ブログの記事一覧へ