PHP脆弱性チェック(PHP2Shell影響確認)

PHPの脆弱性PHP2Shell(CVE-2026-109618/109619)の影響を、サイトのURLを入れるだけで確かめる無料ツール。PHPを使っている手がかりと外から見える版番号を読み、修正版と比べて「更新が必要・版の確認が必要・修正済み」を判定。

  • 登録・ログイン不要
  • 無料
  • URLをサーバーに保存しません
判定結果
PHP2Shell(CVE-2026-109618 / 109619)の影響

URLを入れて「確認する」を押すと、PHPの手がかりと外から見える版番号を読み取って判定します。

サイトのURLを入れて確認する
例で試す

例は実在しない「.example」のサイトの固定データです(通信なし)。

1
2サイトの管理は?(次にやることが変わります)

ふつうにページを開くのと同じ方法で1回だけ読み込み、サーバーの名乗りとページの中身から手がかりを探します。脆弱性を試す通信はしません。ログインが必要なページは入れないでください。

入力したURLを当サイトの診断プログラムへ送り、対象の公開ページをふつうに開くのと同じ方法で1回読み込み、サーバーの名乗りとページの中身からPHPの手がかりを探します。脆弱性を試す通信はしません。入力URLと取得内容をサーバーに保存・ログ記録せず、GA4等のアクセス解析にも送信しません。サイトがブラウザに預ける目印(Cookie)は名前だけを読み、中身は捨てます。URLの入った条件のURLを開くと、そのURLを自動で確認します。「条件のURL」には入力値が#以降に載るため、URLを共有した相手は入力値を見られます。

USE CASESこんな場面で使える

  • ニュースを見て自社サイトが心配になったとき自分でサーバーを触れなくても、URLだけでPHPの手がかりと版番号を確かめる
  • 制作会社・サーバー会社への問い合わせ確認結果と聞くべき4点(PHPの有無・版・更新日・旧版の移行)が入ったメールをそのまま送る
  • 複数サイトの棚卸しコーポレートサイト・採用サイト・キャンペーンサイトなど、会社が持つサイトを1つずつ確かめて対応の優先順位を付ける
  • 更新後の確認「更新しました」の連絡を受けたら同じURLを確認し、版番号が修正版以上か、版番号が隠れたかを見る

FORMULA計算式・仕組みと根拠

  • 取得: 入力したURLへ通常の閲覧と同じGETを1回送り(転送は最大5回たどる)、応答ヘッダーとHTMLを読む。攻撃や探索の通信はしない
  • 手がかり: X-Powered-By・Serverヘッダーの「PHP/版番号」、PHPSESSID等のCookieの名前、WordPress・EC-CUBE等の痕跡、.phpで終わるURL・リンク
  • 判定: 版番号が見えれば修正版(8.5.12 / 8.4.27 / 8.3.36 / 8.2.35、8.6.0はRC4以降)と比べる。8.1以前は公式サポート終了。版番号が見えずPHPの手がかりがあれば「版の確認が必要」
  • 根拠: PHP公式のセキュリティ告知「Security advisory: Critical remote code execution vulnerabilities, update now」(2026年10月21日)・米CISAの注意喚起(2026年10月21日)。2026年10月23日に確認

EXAMPLE入力例と結果の読み方

「古いPHPの版番号が見えている会社」の例(old-php.example)では、X-Powered-By ヘッダーに PHP/7.4.3 が出ていて、判定は「更新が必要」です。7.4は公式のサポートが終わった版で、Serverヘッダーからは公式が最も危険度が高いとしたApache組み込み型(mod_php)の可能性も読み取れます。確認メールには、PHPを使っているか・PHPの版・修正版への更新状況と予定日・8.1以前からの移行予定・版番号を隠す設定(expose_php = Off)の5点の質問が入ります。

PITFALLSよくある間違い

  • 「版の確認が必要」を安全と読み違える(多くのサイトは版番号を隠しているため、外からは判断できません。管理者に版を確かめます)
  • トップページだけ見て終える(トップが静的でも、問い合わせフォームや管理画面だけPHPで動いていることがあります。フォームのURLでも確かめます)
  • 被害を減らす設定だけで済ませる(PHP公式は完全な回避策はないとし、修正版への更新を求めています)

NOTES境界条件・注意点

  • 外から見える手がかりだけで判定します。サーバーの中のPHPの版や設定は見えないため、最終確認は管理者が php -v などで行います
  • OS付属のPHPは、版番号を変えずに修正だけを取り込むことがあります(Ubuntu等)。版番号に「ubuntu」「deb」等の印があるときは「OSの修正確認が必要」と表示し、OSのセキュリティ告知で確かめるよう案内します
  • Bot対策で取得を拒むサイトでも、応答ヘッダーが読めれば判定に使います。応答がない・タイムアウトしたときは「確認できません」と表示します

PHP2Shellとは(2026年10月の重大な脆弱性)

PHP2Shellは、PHPの公式が2026年10月21日に修正版を出した2件の脆弱性(CVE-2026-109618とCVE-2026-109619)の通称です。どちらも、ログインなしで外からサーバー上のプログラムを動かされるおそれがあります。PHPで動くWebサイトが広く対象になり、サイト自体のつくりに問題がなくても、PHP本体が古ければ影響を受けます。公式は「完全な回避策はなく、更新だけが安全」としています。

PHPの系列ごとの修正版(PHP公式のセキュリティ告知、2026年10月21日)
使っている系列更新先(この版以上)補足
PHP 8.58.5.12最新の系列
PHP 8.48.4.27
PHP 8.38.3.36
PHP 8.28.2.35
PHP 8.6(開発中)8.6.0 RC4それより前の8.6.0の試験版は入れ替える
PHP 7.4・8.0・8.18.2以上へ移行公式サポート終了。OSや延長サポートの提供元が修正を取り込む場合あり

対象になる動かし方として、公式はPHP-FPM、Apacheに組み込む方式(mod_php)、php-cgi、FrankenPHP、LiteSpeedを挙げています。中でもmod_phpは、サイトのプログラムが動く前に攻撃が成立する例が示されていて、危険度が最も高い構成です。

外から分かること・分からないこと

このチェックは、ふだんの閲覧と同じ取得で返ってくる情報だけを読みます。分かるのは「PHPを使っていそうか」と「版番号を外に出しているか」までで、サーバーの中の版や設定は分かりません。

判定の4段階と、その意味
判定どういう状態か次にやること
更新が必要外から見える版番号が修正前、または公式サポート終了の版管理者に更新の予定日を確かめる。OS付属のPHPならOSの告知も確認
版の確認が必要PHPを使う手がかりはあるが、版番号は隠れている管理者に版と更新状況を聞く(安全という意味ではない)
版番号上は修正済み外から見える版番号が修正版以上版番号を隠す設定(expose_php = Off)を検討する
PHPの手がかりなしこのページからはPHPの痕跡が見つからない問い合わせフォーム・管理画面など別のページでも確かめる

立場ごとの対処

制作会社・サーバー会社に任せている場合

自分でできることは「確認して記録する」ことです。結果の確認メールを送り、PHPの版と更新した日(または予定日)を返事でもらいます。更新の連絡が来たら、同じURLでもう一度確かめます。

レンタルサーバーを自分で契約している場合

管理画面でサイトに設定されているPHPの版を確認し、サーバー会社のお知らせで対応状況を確かめます。PHP本体の更新を会社が行うか、利用者が版を切り替えるかはサービスによって違います。8.1以前を選んでいるときは、バックアップを取ってから8.2以上へ切り替えます。

自社でサーバーを管理している場合

修正版へ更新し、PHP-FPMやApacheを再起動します。すぐに更新できない間、公式は被害を減らす設定として次を挙げています。どれも更新の代わりにはなりません。

session.upload_progress.enabled = 0   ; 設定後に全ワーカーを再起動
memory_limit = -1
post_max_size = 8M                    ; ファイルの受け付けが必要なら 32M
fatal_error_backtraces = 0            ; PHP 8.5 のみ

あわせて、応答ヘッダーに版番号を出さないよう php.ini の expose_php を Off にします。版番号が見えていると、攻撃する側が古いサーバーを探しやすくなります。

出典

メールのなりすまし対策はなりすまし対策診断(SPF・DKIM・DMARC)、取引先から求められるセキュリティ対策はSCS評価制度 ★3準備チェックで確かめられます。

FAQよくある質問

PHP2Shellとは何ですか?

2026年10月21日にPHPの公式が修正版を出した、2件の重大な脆弱性(CVE-2026-109618とCVE-2026-109619)の通称です。どちらもログインなしで外からサーバー上でプログラムを動かされる(リモートコード実行)おそれがあり、PHPで動くWebサイトが広く対象になります。サイト自体のつくりに問題がなくても、PHP本体が古ければ影響を受けます。

修正された版はどれですか?

PHP 8.5.12・8.4.27・8.3.36・8.2.35 です(開発中の8.6.0はRC4以降)。7.4・8.0・8.1は公式のサポートが終わっているため、8.2以上(できれば8.4か8.5)への移行が必要です。OS付属のPHPは、OS側の更新で修正が取り込まれる場合があります。

自分のサイトがPHPかどうか分からないときは?

このツールにURLを入れると、応答ヘッダーのPHPの名乗り、PHPが発行するCookie、WordPress等の痕跡からPHPを使っていそうかを判定します。WordPressで作ったサイトはPHPで動いています。最終的にはサイトを作った会社かサーバー会社に「PHPを使っているか」「版はいくつか」を聞くのが確実です。

「版の確認が必要」と出たら危ないのですか?

危ないとも安全とも言えない状態です。PHPを使っている手がかりはあるものの、版番号を隠しているため外からは判断できません。結果にある確認メールを制作会社・サーバー会社に送り、修正版へ更新済みかを確かめてください。

レンタルサーバーなら何もしなくていいですか?

サービスによって違います。PHP本体の更新をサーバー会社が行う場合もあれば、利用者が管理画面で版を切り替える必要がある場合もあります。サーバー会社のお知らせで対応状況を確かめ、管理画面でサイトに設定されている版を確認してください。8.1以前を選んでいる場合は切り替えが必要です。

すぐに更新できない場合の応急処置はありますか?

公式は被害を減らす設定として session.upload_progress.enabled=0 などを挙げていますが、「完全な回避策はなく、更新だけが安全」としています。応急の設定は更新までのつなぎとし、更新の日程を先に決めてください。

このチェックはサイトに負担や危険をかけますか?

負担はふつうのページ閲覧1回ぶんです。通常の閲覧と同じ取得を1回(転送があれば最大5回たどる)行い、返ってきた応答ヘッダーとHTMLを読むだけです。脆弱性を試す通信や、隠れたファイルを探す通信はしません。

入力したURLは保存されますか?

保存しません。URLは取得の代行のために当サイトの診断プログラムへ送りますが、URLと取得内容を保存・ログ記録せず、アクセス解析にも送りません。Cookieは名前だけを読み、値は捨てます。