PHP脆弱性チェック(PHP2Shell影響確認)
PHPの脆弱性PHP2Shell(CVE-2026-109618/109619)の影響を、サイトのURLを入れるだけで確かめる無料ツール。PHPを使っている手がかりと外から見える版番号を読み、修正版と比べて「更新が必要・版の確認が必要・修正済み」を判定。
- 登録・ログイン不要
- 無料
- URLをサーバーに保存しません
URLを入れて「確認する」を押すと、PHPの手がかりと外から見える版番号を読み取って判定します。
| 系列 | この版以上なら修正済み | このサイト |
|---|---|---|
| PHP 8.5 | 8.5.12 | |
| PHP 8.4 | 8.4.27 | |
| PHP 8.3 | 8.3.36 | |
| PHP 8.2 | 8.2.35 | |
| PHP 8.1 以前 | 公式サポート終了(8.2以上へ移行) |
例は実在しない「.example」のサイトの固定データです(通信なし)。
ふつうにページを開くのと同じ方法で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 8.5 | 8.5.12 | 最新の系列 |
| PHP 8.4 | 8.4.27 | |
| PHP 8.3 | 8.3.36 | |
| PHP 8.2 | 8.2.35 | |
| PHP 8.6(開発中) | 8.6.0 RC4 | それより前の8.6.0の試験版は入れ替える |
| PHP 7.4・8.0・8.1 | 8.2以上へ移行 | 公式サポート終了。OSや延長サポートの提供元が修正を取り込む場合あり |
対象になる動かし方として、公式はPHP-FPM、Apacheに組み込む方式(mod_php)、php-cgi、FrankenPHP、LiteSpeedを挙げています。中でもmod_phpは、サイトのプログラムが動く前に攻撃が成立する例が示されていて、危険度が最も高い構成です。
外から分かること・分からないこと
このチェックは、ふだんの閲覧と同じ取得で返ってくる情報だけを読みます。分かるのは「PHPを使っていそうか」と「版番号を外に出しているか」までで、サーバーの中の版や設定は分かりません。
| 判定 | どういう状態か | 次にやること |
|---|---|---|
| 更新が必要 | 外から見える版番号が修正前、または公式サポート終了の版 | 管理者に更新の予定日を確かめる。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 にします。版番号が見えていると、攻撃する側が古いサーバーを探しやすくなります。
出典
- PHP公式「Security advisory: Critical remote code execution vulnerabilities, update now」(2026年10月21日。修正版・対象構成・被害を減らす設定)
- 米CISA「Critical Vulnerabilities in PHP Require Immediate Patching」(2026年10月21日)
メールのなりすまし対策はなりすまし対策診断(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は名前だけを読み、値は捨てます。