PHPの脆弱性の確認方法:自分のサイトがPHP2Shellの対象か安全に調べる

WindowsMac更新

2026年10月21日のPHPのセキュリティアドバイザリは、PHP2Shellを修正したバージョンとして8.5.12、8.4.27、8.3.36、8.2.35を挙げています。確認の基準はこの一覧です。サイトのPHPのバージョンが、自分の系列の修正版以上であれば、アドバイザリが求めている更新は済んでいます。この記事は2026年10月23日時点の情報です。

要点

サイトのPHPのバージョンを修正版の一覧と比べ、サーバー会社や使っているソフトウェアの提供元の案内を読み、PHPを組み込んだ製品はGitHubのNCSC-NLのリストで調べます。チェックツールはその代わりになりません。対策は更新です。調べるのは、自分のサイトか、許可を得たサイトだけにしてください。

公式の発表は、何を確認するよう言っていますか?

PHP2Shellについての公式の発表のどれも、個人にチェックツールを使うようには勧めていません。PHPのアドバイザリは、ウェブのリクエストを処理しているすべてのPHPが対象で、完全な解決策は更新だけだとしています。JPCERT/CCは、PHPを使う製品やLinuxディストリビューションが提供するPHPも影響を受ける可能性があるので、利用している製品やOSの提供元の情報もあわせて確認するよう求めています。IPAも、自分が利用している製品の影響は、開発者やサービス提供元からの情報で確認するよう書いています。アメリカのCISAは、PHPのバージョンを問わず、PHPが動いているシステムを洗い出し、修正版に更新するよう求めています。

ブログや小さなネットショップ、団体のサイトなら、確認することは2つです。サイトが動いているPHPのバージョンと、頼っているソフトウェアやレンタルサーバーの会社からの案内です。

PHPのバージョンはどう確認しますか?

「PHP 8」ではなく、8.3.36のような正確な番号が必要です。WordPressやレンタルサーバーの管理画面での見つけ方と、見つからないときにサーバー会社に聞くことは、PHPのバージョン確認方法で説明しています。

イギリスのNCSCは、ここで大事な注意を書いています。すべてのバージョンが影響を受ける可能性があるので、調べる対象を古いバージョンだけに絞らないように、というものです。比較的新しそうなバージョンでも、修正版の一覧と比べる必要があります。

サーバー会社や製品の提供元の案内はどう見ればよいですか?

サーバーを動かしているのはサーバー会社なので、多くの場合、その案内がいちばんはっきりした答えになります。10月21日のPHPのアドバイザリについてのメール、障害・メンテナンス情報のページ、サポート記事などを探し、自分のサイトの系列の修正版の番号が書かれているかを確認してください。何もなければ問い合わせます。

PHPは、ほかの製品の中に組み込まれていることもあります。CISAは、PHPは他のソフトウェアの部品として組み込まれていることが多く、使われていても直接はわからない場合があるとしています。NCSCも、PHPを組み込んでいる機器やサービスを含め、提供元のセキュリティ更新を継続して確認するよう求めています。NASやルーターなど、ウェブの管理画面がある機器を使っているなら、メーカー自身のセキュリティアドバイザリを確認してください。SynologyとQNAPの発表内容はNASとPHP2Shell(Synology、QNAP)にまとめています。

GitHubのNCSC-NLのリストとは何ですか?

オランダの国家サイバーセキュリティセンター(NCSC-NL)が、github.com/NCSC-NL/php2shellで公開しているリポジトリです。イギリスのNCSCのPHP2Shellのページも、NCSC-NLが、影響を受ける可能性のあるPHPに依存したソフトウェア製品の一覧を公開していると紹介しています。

リポジトリは、CVE-2026-109618とCVE-2026-109619についての運用情報だと説明しています。中身は、影響を受ける可能性のあるPHP依存のソフトウェア製品の一覧、検知と緩和のための資料、リポジトリ内のファイルを使ったり作ったりするためのツールです。最新の更新状況の表には、日付、提供元、製品、バージョン、2件の脆弱性についての状態、リンクが並んでいます。状態には「Fix」(修正済み)、「Vulnerable」(脆弱)、「Investigation」(調査中)などがあります。READMEには、状況の変化に合わせて更新していると書かれています。

使い方は、自分が使っている製品を提供元名と製品名で探し、リンクから提供元自身のアドバイザリを開いて詳細を確認する、という流れです。READMEはこの一覧が完全だとは書いていないので、載っていないからといって影響がないとは限りません。

ネットのPHP脆弱性チェックツールで安全かどうかわかりますか?

ある程度はわかりますが、限界があります。NCSCの脆弱性スキャンについての一般的な指針によると、スキャナーは「フィンガープリンティング」や「バナーグラビング」と呼ばれる方法で、ソフトウェアの提供元やバージョン番号などを集め、既知の脆弱な製品と照らし合わせます。指針は、自動のスキャンは、テストの範囲の広さと深さでペネトレーションテストのような人の手による検査には及ばないこと、そしてスキャナーには、存在しない脆弱性を報告する誤検知(フォールスポジティブ)と、実在する脆弱性を見逃す検知漏れ(フォールスネガティブ)があることを書いています。

PHP2Shellについては、PHPの開発元の助言にチェックツールは含まれておらず、アドバイザリの対策は更新です。チェックツールの結果がどうであっても、知る必要があるのは、サーバーのPHPの正確なバージョンと、それが修正版になっているかです。ツールの結果とサーバー会社の説明が食い違う場合は、サーバー会社にバージョンを文書で確認してもらってください。

PHP2Shellのテストをするのは法律上問題ありませんか?

調べるのは、自分のサイトか、はっきり許可を得たサイトだけにしてください。他人のサイトに攻撃コードを試すことは絶対にしないでください。関係する法律の条文は次のとおりです。

日本の不正アクセス禁止法(不正アクセス行為の禁止等に関する法律)は、第3条で「何人も、不正アクセス行為をしてはならない。」と定めています。第2条第4項第2号は、不正アクセス行為の一つとして、アクセス制御機能のあるコンピューターに、ネットワークを通じて、その制限を免れることができる情報や指令を入力し、制限されている利用をできる状態にする行為を挙げています。アクセス管理者自身がするものや、その承諾を得てするものは除かれます。第11条によると、第3条に違反した者は、3年以下の拘禁刑または100万円以下の罰金に処せられます。

サイトがレンタルサーバー会社のサーバーにある場合は、バージョンの確認より踏み込んだことをする前に、サーバー会社に相談してください。

よくある質問

PHP2Shellの公式のチェックツールはありますか?

下の出典にある公式のページには、個人向けのチェックツールはありません。NCSC-NLのリポジトリには検知と緩和のための資料がありますが、READMEにはチェックツールについての説明はありません。PHPのアドバイザリが示す答えは、8.5.12、8.4.27、8.3.36、8.2.35への更新です。

PHP2Shellは悪用されていますか?

2026年10月23日時点で、CISAは10月21日の注意喚起(10月23日改訂)で、公開した時点ではこれらの脆弱性が実環境で悪用に成功した例を観測していないとしています。CERT-EUは、初期の実証コード(PoC)が出回り始めたとしています。QNAPのアドバイザリには、PHPを狙った攻撃の試みが公に報告されていると書かれています。

チェックツールで「脆弱」と出ました。どうすればよいですか?

PHPのバージョンを修正版の一覧と比べ、サーバー会社にも確認してもらいます。修正版でなければ、更新するか、サーバー会社に更新を依頼します。JPCERT/CCは、修正版の適用とあわせて、攻撃を受けた形跡がないかの調査も求めています。サイト自体におかしな点があれば、ホームページが改ざんされたときの対処をご覧ください。

サーバー会社は対応済みと言うのに、ツールでは脆弱と出ます。どちらが正しいですか?

NCSCのスキャンの指針によると、スキャナーには誤検知があります。アドバイザリの対策で決め手になるのは、サーバーのPHPのバージョンです。サーバー会社に、サイトが動いている正確なバージョンを聞き、修正版の一覧と自分で比べてください。対応済みと言われた後にやることはレンタルサーバーがPHPの脆弱性に対応済みと言っている場合にまとめています。

ファイアウォールでPHP2Shellは防げますか?

CISAは、システムを更新するまでの間、ウェブアプリケーションファイアウォール(WAF)がある程度の防御になる可能性があるとしています。PHPのアドバイザリは、一時的な対策は攻撃されにくくするものの、それで安全な状態にはならないとしています。対策は更新です。

出典