ひとことで要点
2026年10月21日、PHPは修正を公開し、PHP2Shellと呼ばれる重大な脆弱性2件、CVE-2026-109618とCVE-2026-109619(CVEは脆弱性の国際的な識別番号)を修正しました。深刻度はいずれもCVSS 9.2(CVSSは深刻度のスコアで、最高は10)です。Cloudflare(多くのサイトが攻撃対策に使うネットワークサービス会社)とWizによると、PHP 5.4以降の未修正バージョンが影響を受けます。
最短でできること:PHP情報をChatGPTに貼る
WordPressを使っている場合は、「ツール > サイトヘルス > 情報 > サーバー」からPHP情報をコピーします。それ以外の場合は、ホスティング会社の管理画面で探してください。見つからなければホスティング会社に問い合わせます。パスワードやキーを削除してから、下の指示と一緒にChatGPTまたはClaudeに貼り付けてください。
以下は、私のサイトのWordPress「サイトヘルス > 情報 > サーバー」またはホスティング会社の管理画面から取得したPHP情報です。
PHPのバージョンを特定し、まず今回修正された上流の安定版と同じブランチで比較してください:8.5.12、8.4.27、8.3.36、8.2.35。8.1以前のブランチは上流サポートが終了しています。
「上流バージョンの基準を満たしているか」と「修正が適用済みか」を分けて説明してください。ホスティング会社やディストリビューションが古いバージョン番号のまま修正を適用している場合があります。完全なパッケージバージョンと、該当するセキュリティ告知またはホスティング会社の証明がなければ、修正状況は「確認できない」としてください。バージョン番号だけが古いという理由で、脆弱性ありと判断しないでください。バージョンがない、識別できない、またはプレリリース版の場合も、安全と判断しないでください。さらに、ホスティング会社への問い合わせ文も作ってください:「サイトのPHPには、2026年10月21日のPHP2Shellセキュリティ更新が適用されていますか?管理画面でバージョンを切り替える必要がありますか?」
(情報を貼り付け)
1分でわかること
攻撃者はログインせずに、サーバーでプログラムを実行できる可能性があります。セキュリティ会社Wizによると、攻撃に成功すると、サーバーの支配、機密データの窃取、サイトの改ざんにつながるおそれがあります。
脆弱性はPHP自体にあります。Cloudflareは、サイトのプログラムやプラグインだけを更新しても直らず、更新が必要なのはPHPだと注意を促しています。WordPress.orgも、今回WordPressの更新は不要で、提供もしないとしています。
AIにスキャンしてもらう
OpenAIはGitHubでphp2shell-checkerを公開しました。サイトやローカル環境のPHPバージョンを確認するツールで、攻撃リクエストは送らず、Node.jsを使い、追加パッケージのインストールも不要です。Codex向けの2つのskill、つまりAI向けの操作説明ファイルです。
URLだけの場合(自分が管理するサイトを確認)
Codexに1行目を入力して2つのskillをインストールし、次に2行目を使って確認します。URLは自分のサイトのものに置き換えてください。
$skill-installer install both skills from https://github.com/openai/php2shell-checker
$phpcheck-url check あなたのURL
結果は3種類あります。
OK:ツールに組み込まれた、2026年10月20日時点の同じブランチの基準を上回っています。バージョン番号だけを比較し、修正が適用済みかは別途確認しません。VULNERABLE:バージョン番号が基準を上回っていません。パッケージの告知を調べるか、ホスティング会社に問い合わせ、更新が必要か確認してください。UNKNOWN:バージョンが見えないか、識別できません。UNKNOWNは修正済みという意味ではありません。
このチェックではサイトの応答に含まれる X-Powered-By と Server ヘッダーだけを読み取ります。ヘッダーは非表示や書き換えが可能で、ディストリビューションの修正ではバージョン番号が変わらない場合もあります。自分が管理する複数のサイトを一度に調べるのに向いていますが、確実に確認するにはサーバー側を調べる必要があります。
サーバー権限がある場合(VPS、自分でログインするサーバー)
AIをサイトのサーバーに接続してから実行してください。ローカル環境のPHPではサイトの状態を確認できません。Codexにskillをインストールした後、次のように入力します。
$phpcheck-server check the PHP version serving my site
Claude Code(AnthropicのAIプログラミングアシスタント)またはCodexには、次の指示をそのまま貼り付けても確認できます。
私が所有または管理しているウェブサイト【URLを入力】がPHP2Shell(CVE-2026-109618、CVE-2026-109619)の影響を受けるか確認してください。
1. 対象サイトのサーバーに接続済みかを最初に確認してください。接続できない場合や、サイトに対応するPHPを特定できない場合は「確認できない」と報告してください。読み取り専用の確認だけを行い、検査用ページの作成、パッケージのインストール、サービスの変更や再起動はしないでください。また、パスワード、キー、証明書を読んだり返したりしないでください。
2. サイトで実際に稼働しているPHP(PHP-FPMまたはApache)を特定し、php -v の結果と照合してください。
3. PHPのバージョンと完全なパッケージバージョンを報告してください。確認できない場合は「確認できない」と報告してください。
4. 修正済みバージョンと同じブランチで比較してください:8.5.12、8.4.27、8.3.36、8.2.35。システムパッケージの場合は、ディストリビューションのセキュリティ告知を照合してください:Ubuntu USN-8948-1、USN-8948-2、Debian DSA-6574-1。設定を確認しただけでは、修正済みの証明になりません。
5. 更新とサービス再起動の手順を示し、作業は私の確認を待ってください。
6. 攻撃コードやPoCを実行しないでください。
OpenAIのskillにも、php -v の結果をサイトが実際に使うPHP-FPMまたはApacheと照合するよう注意書きがあります。ディストリビューションは古いバージョン番号のまま修正を適用する場合があります。
レンタルサーバー/WordPress管理画面の場合
上の指示を使ってください。
AIスキャン利用時の注意
- 自分が所有または管理するサイトだけを確認してください。他人のサイトはスキャンしないでください。
- 攻撃コードやPoC(概念実証の攻撃コード)でテストしないでください。OpenAIの2つのskillにも、攻撃を試すスキャンは実行しないと書かれています。
- AIの判定は確認の出発点です。作業前にホスティング会社またはディストリビューションのセキュリティ告知で確認してください。
修正済みバージョン
自分でサーバーを管理している場合:下表のバージョン、または利用しているパッケージソースのセキュリティ更新をインストールし、サイトで使うPHP-FPMやApacheなどのサービスを再起動します。その後、サイトが修正済みのPHPを使っていることを確認してください。
| PHPブランチ | 修正済みバージョン |
|---|---|
| 8.5 | 8.5.12 |
| 8.4 | 8.4.27 |
| 8.3 | 8.3.36 |
| 8.2 | 8.2.35 |
| 8.1以下 | 上流サポート終了。ディストリビューションのセキュリティ更新を適用するか、アップグレード |
バージョンは同じブランチ内で比べます。8.2.20は8.2.35より古く、未修正です。8.2.35以降なら修正済みです。UbuntuやDebianなどのシステムパッケージでは、この表ではなく、完全なパッケージバージョンが各システムのセキュリティ告知に合致するか確認してください。
PHP 8.1以下の場合:PHPプロジェクトのサポートは終了しています。7.4、8.0、8.1には別途ソースコードの修正があります。ディストリビューションのセキュリティ更新でも修正できます。完全なパッケージバージョンを照合してください。Ubuntu 20.04 LTSの修正にはUbuntu Proが必要です。自分でサーバーを管理し、PHPが8.2未満で、すぐに修正できない場合、WordPress.orgは一時的にサイトを停止することを検討するよう勧めています。
Cloudflareを使っている場合:Cloudflareによると、無料と有料のWAF(ウェブアプリケーションファイアウォール)は、日本時間10月21日12:02からデフォルトの保護を提供しています。有料プランでは、管理ルールが導入済みで、ブロックに設定されていることを確認してください。それでもPHPの更新は必要です。
事件の経緯:AIが先に発見し、情報が先に漏れた
OpenAIによると、同社が把握する限り、最先端のAIが攻撃者より先に脆弱性を発見し、防御側が先に修正する時間を確保しました。PHP Foundationが公表した経緯は次のとおりです。
- 8月11日:Califの研究者Ryan Aが条件なしで成立するRCE(リモートコード実行。攻撃者のプログラムをサーバー上で動かすこと)を報告しました。同じ日にOpenAIも独立して同じ根本原因を報告しました。OpenAIによると、CalifはPatch the Planet計画でGPT-5.6 Solを使用し、Wizも独自に発見して報告しました。
- 10月21日0:00ごろ(日本時間):2つのCVE番号がオンラインに流出しました。技術的な詳細はなく、誤ったCVSS 10.0が付いていました。PHPは公開予定を1日前倒ししました。
- 10月21日:情報漏えい後、Califが誤ってPoC動画を公開しました。削除後も転載され、攻撃コードの開発が加速しました。Chainguardは日本時間16:41に予定より早く修正済みイメージを公開し、embargo(合意した公開前の秘密保持)を破りました。PHPは当日、日本時間23:00に修正を公開する予定でした。
- 今年の初めごろ:PHP FoundationはClaude Mythosを使ってPHPもスキャンしました。
Cloudflareによると、情報が漏れていた期間中に攻撃トラフィックを観測しました。セキュリティ会社Huntressによると、日本時間10月21日23:00時点で、提携する顧客に対する実際の悪用は確認されていません。PHPのセキュリティチームは、公開時点で調査した公開PoCの中に、動作する攻撃コードは見つからなかったと説明しました。
OpenAIはさらに、Daybreak for Frontline Defendersを通じて、重要なサービスを守るセキュリティ資源の限られた組織に、10億ドル相当のDaybreak利用補助を提供すると約束しました。
小企鵝のまとめ
今回、脆弱性の発見にはAIも関わっていて、自分のサイトの確認にもAIを使えます。
今夜からできることがあります。サーバーを管理しているなら、CodexまたはClaude Codeに読み取り専用の確認を一度実行させましょう。レンタルサーバーを使っているなら、管理画面のPHP情報をAIに貼り、ホスティング会社に問い合わせましょう。AIに調査させ、更新や再起動は確認してから行ってください。