2026-10-25 更新(10月23日の PHP 公式の追加勧告を反映。初版は 2026-10-22、日本時間)

PHP の重大な脆弱性「php2shell」— あなたの PHP は該当しますか

2026年10月21日、PHP 本体に外からサーバーを乗っ取られるおそれのある脆弱性が2件公表され、修正版が出ました。お使いの PHP の版を下に貼ると、この2件に該当するかどうかと、上げるべき版をその場で表示します。

10月23日の追記: PHP 公式が追加の勧告(CVE-2026-115560)を出しました。条件に当てはまるアプリでは、修正版へ更新した後も session.upload_progress.enabled=0 を保つ必要があります。追加勧告の条件を確かめてください。

CVE-2026-109618 CVE-2026-109619 CVSS v4.0 9.2 リモートからのコード実行

技術者でない方へ — まずここをお読みください

版の数字が分からなくても大丈夫です。下の 1〜3 のうち、当てはまるものを1つ選んで読んでください。

1Shopify・Wix・STUDIO・BASE でサイトを作った方

ご自身で対応することはありません。

これらのサービスは、サイトを動かすサーバーをサービスの会社がまとめて管理しています。お使いの方がサーバーに PHP を置いて動かす仕組みではないため、今回の脆弱性への対応はサービスの会社が行います。対応のために、サービスが一時的に止まることがあります。

ただし、別のサイト(ブログやお問い合わせフォームなど)をレンタルサーバーに置いているときは、そちらについて 2 か 3 を読んでください。

2自分では分からない方(サイトを作った会社やサーバー会社に任せている方)

サイトを作った会社か、サーバー会社に、この文面を送ってください。メールでも、問い合わせのページでもかまいません。「(ここにサイトのアドレスを書いてください)」の所は書き換えてから送ってください。

文面はこの欄で書き直せます。このページは文面をどこにも送りません。

3レンタルサーバーの管理画面に自分で入れる方

管理画面に PHP のバージョンが出ています。主なレンタルサーバーでは、次の場所です。

  • さくらのレンタルサーバ: サーバーコントロールパネルの「スクリプト設定」→「言語バージョン設定」に出ています。(公式の説明)
  • ConoHa WING: コントロールパネルの上の「WING」→ 左の「サイト管理」→「サイト設定」→「応用設定」→「PHP設定」の「PHPバージョン」に出ています。(公式の説明)
  • エックスサーバー・ロリポップ: 管理画面の PHP の設定(PHP バージョン)を見てください。
  • そのほかのサーバー: 管理画面の PHP の設定(PHP バージョン)を見てください。見つからないときは、2 の文面をサーバー会社に送ってください。

出ている版の数字(例: 8.3.12)を、すぐ下の欄に貼ると、該当するかどうかが分かります。

今は、各社が緊急の点検のために管理画面を一時的に止めていることがあります。入れないときは、各社のお知らせを見てください。

ここから先は技術者・管理者向けです

上の 1〜3 で済んだ方は、ここから先は読まなくてかまいません。版の数字が分かった方は、すぐ下の欄に貼ってください。

入力した内容はこのページの中だけで判定し、どこにも送らず、保存もしません。php -v の結果、phpinfo() の「PHP Version」、サーバーの管理画面に出ている版、応答ヘッダーの X-Powered-By などをそのまま貼れます。

版を貼ると、ここに結果が出ます。 「PHP 8.3.12」のように PHP の語が付いた版か、版の数字だけの行(例: 8.3.12)が1つ以上あれば判定できます。

修正版の一覧(PHP 公式の発表)

系列この版より前が該当上げる先
8.58.5.12 より前8.5.12 以上
8.48.4.27 より前8.4.27 以上
8.38.3.36 より前8.3.36 以上
8.28.2.35 より前8.2.35 以上(8.2 は 2026-12-31 で公式のサポート終了)
8.1・8.0・7.4すべて(版の数字では、修正が入っているか見分けられません)PHP 公式の通常の保守リリースは終わっていて、新しい版は出ません。今回は例外として、PHP 公式がソースから組み立てる人向けに最小限の修正を公開しています。OS やサーバー会社・LTS ベンダーの修正があるかも確かめてください。基本は、サポートの続く 8.2 以降へ上げてください
7.3 以前すべてPHP 公式の通常の保守リリースは終わっていて、今回の最小限の修正の対象にも入っていません。OS やサーバー会社・LTS ベンダーの修正があるかを確かめるか、サポートの続く 8.2 以降へ上げてください

この表は10月21日の2件(CVE-2026-109618・CVE-2026-109619)の修正版です。上の版でも、10月23日の追加勧告の条件に当てはまるときは設定が必要です。

PHP 公式は、Web のリクエストを処理しているすべての PHP(PHP-FPM、Apache の mod_php、php-cgi、FrankenPHP、LiteSpeed)が対象としています。

自分のサイトで PHP を使っているかの見分け方

版の確かめ方

  1. レンタルサーバー・マネージドのサーバー: 管理画面の「PHP のバージョン」の設定を見て、事業者のお知らせ(緊急メンテナンス・PHP の更新)を確認してください。事業者が更新する場合が多いですが、8.1 以前を選んでいると、PHP 公式の通常の更新が終わっているため修正が届かないことがあります。
  2. 自分で管理しているサーバー: php -v で版を見ます。Web で動いている PHP とコマンドの PHP が違うことがあるので、phpinfo() でも確かめてください(確かめた後は、その画面を必ず消してください)。
  3. 動かし方: mod_php か PHP-FPM かを確かめてください。更新の後に再起動するもの(Apache か PHP-FPM か)が変わります。
  4. OS の版の印: 版に ubuntu・deb・el などが付くときは、OS が修正を取り込んでいて、数字が古く見えても直っている場合があります。OS の公式のお知らせで確かめてください。

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

根本の解決は修正版への更新だけです。PHP 公式は、更新までのあいだ特定の攻撃の道筋を減らす設定を示していますが、これで安全になるわけではありません。

  • session.upload_progress.enabled = 0 にして、PHP を動かしているすべての worker を再起動する。php.ini・PHP-FPM のプール設定・サーバーの設定など、リクエストの処理より前に効く場所で設定します。ini_set() や PHP-FPM の .user.ini に頼らないよう、PHP 公式は書いています。レンタルサーバーの管理画面で php.ini を変えられる場合も、その設定がどこに入るかはサーバー会社に確かめてください。
  • ほかに memory_limit・post_max_size などの設定も示されています。詳しくは PHP 公式の発表を見てください。
  • セキュリティ会社からは、WAF(Web アプリケーション ファイアウォール)を有効にすることも提案されています。

暫定策を入れても、修正版への更新は必ず行ってください。また session.upload_progress.enabled = 0 は、更新した後も外さないでください(次の項)。

10月23日の追加勧告: 修正版へ更新した後も設定を保つ

PHP 公式は10月23日、Session upload progress について追加の勧告を出しました(CVE-2026-115560。詳しい勧告は次の通常の更新と一緒に出る予定です)。8.5.12・8.4.27・8.3.36・8.2.35 は元の2件の修正版ですが、次の条件がすべてそろうアプリでは、起こりにくいもののリモートからのコード実行の道筋が残るとしています。

  • 設定で session.serialize_handler を php_binary か php_serialize にしている
  • アプリが実行中に ini_set() で session.serialize_handler を php に切り替えてから session_start() を呼ぶ
  • session.upload_progress.enabled が有効のまま

PHP 公式は、次の通常のバグ修正リリースまで session.upload_progress.enabled=0 にしておくよう勧めています。10月21日の暫定策でこの設定を入れた方は、修正版へ更新した後も戻さず、そのまま保ってください。この設定は「更新までのつなぎ」ではなく、追加勧告の修正が出るまで続けるものです。

有効に戻してよいのは、次のどちらかに当てはまる場合だけです。

  • アプリが実行中に serialize handler を切り替えないことを確かめた場合(PHP 公式は、切り替えないアプリは有効のままでよいとしています)
  • PHP 公式が CVE-2026-115560 を直した通常の更新を出し、その版へ更新した場合(PHP 公式の発表で確かめてください)

設定の場所と再起動は、上の暫定策と同じです(php.ini・PHP-FPM のプール設定・サーバーの設定で行い、すべての worker を再起動する)。

上の判定欄は版の数字を比べるだけなので、この条件に当てはまるかは判定しません。

LP-Patrol では、先着50組織に3か月無料で、サイトの外からの定期的な点検をお試しいただけます。無料で申し込む