高市首相がXで「今夜」の対応を呼びかけたPHPの脆弱性は、AIを使った研究で8月に見つかり、2か月あまりかけて修正の準備が進められていました。PHPが公開日を1日早めた理由は、予定より早く出回ったCVE番号でした。AIが脆弱性を見つける速さに、情報を伏せて直す仕組みは追いつけるのでしょうか。
PHPの開発チームは2026年10月21日、Webのリクエストを処理するほぼすべてのPHPに影響する2件の脆弱性(CVE-2026-109618、CVE-2026-109619、通称PHP2Shell)を修正した。深刻度はCVSS v4.0で9.2で、認証なしで遠隔からコードを実行される恐れがある。修正版は8.5.12、8.4.27、8.3.36、8.2.35。発見にはOpenAIの取り組み「Patch the Planet」に参加したCalifなどがAIを使い、2か月あまりにわたって公開の準備が進められた。しかし公開の前日にCVE番号が流出し、公開日は1日前倒しされた。
国内では10月21日、国家サイバー統括室と高市早苗首相がXで、修正版の公開に備えるよう呼びかけました。修正をすぐ適用できない場合は、Webサイトを一時的に止めることも有効だとしています。コドモンは、PHPの脆弱性への予防措置として全サービスの停止を告知しました。個人ブログ「piyolog」は、BASEやホスティング事業者なども含め、22日未明までに確認できた停止や緊急メンテナンスの告知を、国の機関や金融機関を含む211組織分として集計しています。
この脆弱性は、突然現れたものではありません。OpenAIが6月に始めた「Patch the Planet」と、AIで見つかった脆弱性が非公開の連絡を経て塞がれていく過程は、innovaTopiaでも個別の記事として伝えてきました。今回のPHP2Shellは、その仕組みが世界規模の事案に向き合った例です。公表された資料をつなぎ直し、AIが見つけた重大な欠陥の協調開示が、当初の公開予定日の2日前からなぜ崩れたのかを読み解きます。
PHP2Shellの時系列:2004年の発見から2026年10月の修正まで
| 時期 | 出来事 | 関連記事・出典 |
|---|---|---|
| 2004年 | Califによれば、シュテファン・エッサー氏が、メモリ上限に関わるPHPの初期の遠隔脆弱性を発見 | Calif |
| 2019〜2020年 | 長い変数でメモリ不足を起こすバグ(#78876)が2019年11月に報告され、2020年5月に修正される | PHPのバグ票、Calif |
| 2024年 | OSTIFとQuarkslabによる外部監査の指摘を直す過程で、今回のメモリ不足の問題の兆候が見つかる。攻撃できることが示されず、修正は進まなかった | PHP Foundation、Calif |
| 2026年6月22日 | OpenAIがPatch the Planetを発表 | innovaTopia(OpenAI、GPT-5.5-CyberとPatch the Planet始動—脆弱性は発見から修正の時代へ) |
| 7月30日 | CalifがPatch the Planetに参加 | Calif |
| 8月1日 | CalifがAIを使った調査で、遠隔実行につながる経路を発見 | Calif |
| 8月11日 | CalifがPHPに最初のバグを報告。同じ日にOpenAIも独立して報告 | PHP Foundation |
| 8月17日 | OpenAIが論考「防御側に開かれた好機」を公表 | OpenAI |
| 8月下旬 | Califが2件目を報告。Wizも独立して報告 | Calif、PHP Foundation |
| 9月18日 | OpenAIが別の攻撃経路を報告 | PHP Foundation |
| 10月20日 15:00ごろ | CVE番号がSNSなどに流出(誤った深刻度「10.0」つき) | PHP Foundation |
| 10月20日 19:30 | PHPが事前告知を前倒しし、修正版の公開を22日から21日に繰り上げ | php.net |
| 10月20日 20:00ごろ | Califが攻撃の実演動画を誤って公開。削除後も拡散 | PHP Foundation |
| 10月21日 03:02 | CloudflareがWAFのルールを稼働 | Cloudflare |
| 10月21日 07:41 | Chainguardが修正入りのイメージを先に公開 | PHP Foundation |
| 10月21日 12:44〜12:55 | 国家サイバー統括室と高市首相が、一時停止も有効策だと投稿 | X |
| 10月21日 14:00ごろ | 修正版を公開 | php.net |
※時刻はUTC。日本時間は9時間後。
2件の脆弱性は何が危ないのか
PHPは、Webサイトを動かすために広く使われているプログラミング言語です。調査会社W3Techsによれば、サーバー側の言語が判明しているWebサイトのうち69.3%がPHPを使っています(10月21日時点)。
今回の2件は、WordPressのようなアプリではなく、PHPという言語の処理系そのものにあります。そのため、アプリやプラグインを最新にしても塞がりません。PHPの本体を修正版に入れ替える必要があります。
メモリ不足で処理が止まったときの「後片付け」が狙われる
1件目のCVE-2026-109618は、メモリ不足の扱いに関わります。PHPは、使えるメモリの上限に達すると処理を途中で打ち切ります。その瞬間に準備途中だった内部のデータを、後片付けの処理が正しいデータとして扱ってしまうことがあります。攻撃者は、ファイルを送るときの形式(マルチパート)を細工したリクエストで、狙ったタイミングでメモリ不足を起こせます。
2件目のCVE-2026-109619は、前のリクエストの痕跡が残る問題です。解放済みのメモリを指したままの内部状態が残り、同じ作業プロセスが次のリクエストでそれを使ってしまいます。
とくに深刻なのは、Apacheに組み込んで動かす方式(mod_php)です。サイトのプログラムが動き始める前の段階で攻撃が成立し、初期設定のまま、認証なしで遠隔からコードを実行できることが確認されています。PHP-FPMなど、ほかの動かし方も影響を受けます。Califは、WordPress、Drupal、Joomla、Magento、phpMyAdmin、Nextcloud、Laravelなど11種類のアプリで、ログイン前の遠隔実行を確認したと公表しています。Califによれば、攻撃の経路はPHP 5.4.0までさかのぼります。
設定の変更で一部の経路を塞ぐ方法も示されていますが、PHPのセキュリティ勧告は、完全な対策は修正版への更新だけだと明記しています。8.1以前の版は開発元のサポートが終わっており、7.4、8.0、8.1にはソースコードでの修正だけが用意されました。8.2も2026年12月31日にサポートが終わります。
AIが見つけ、人が直す:2か月あまりの協調開示
20年以上前の研究を手がかりに、AIとの対話が掘り起こした
発見の経緯は、Califのライアン・オースティン(Ryan Austin)氏の解説記事に詳しく書かれています。オースティン氏は、2004年にエッサー氏が見つけたメモリ上限の脆弱性を覚えていて、その「生き残り」がまだあるという仮説を立てました。AIに問いを重ねるうちに、数日で最初の経路にたどり着いたといいます。
同氏は、最初の発見には、特別な仕組みや一般に使えないモデルは使っていないと書き、標的を知ることの大切さは今も変わらないと結んでいます。AIは古い文献に自分からはさかのぼりにくいため、人が攻撃の歴史を覚えていて、その方向へ問いを向けたことが発見につながった、という見立てです。
メモリ不足に関わるバグは2019年にも報告され、その個別の問題は2020年に修正されています。今回の脆弱性につながる根本の問題は、2024年、外部監査の指摘を直していた開発者がその兆候に気づいたことで、すでに人の目に触れていました。当時は、互換性が崩れる、別の停止攻撃の余地が生まれる、多くの拡張機能に手を入れる必要がある、といった懸念から修正の方針がまとまらず、作業は中断と再開を繰り返しました。PHP Foundationはこの遅れを、意思決定の仕組みと人手不足による「構造的な失敗」だったと自ら認めています。
2026年にAIが果たした役割は、埋もれていた問題が実際に攻撃に使えることを示し、修正を動かしたことだと読めます。
Patch the Planetが向き合った世界規模の事案
Patch the Planetは、AIで見つかった脆弱性を発見で終わらせず、修正まで届けるための取り組みとして6月に始まりました。innovaTopiaでは発表時に、「脆弱性をより多く見つける世界」ではなく「見つけたら速やかに塞がれている世界」を目指す試みとして紹介しています(OpenAI、GPT-5.5-CyberとPatch the Planet始動—脆弱性は発見から修正の時代へ)。
今回、修正と公開を主導したのはPHPのメンテナーです。OpenAIとその協力企業は、検証の支援や、Cloudflareなどの防御事業者、米国政府機関との調整を担いました。PHP Foundationは、8月11日から修正を最優先とし、財団の資金で複数の人が専任で取り組めるようにしたと説明しています。終盤には、週末も昼夜も関係者との調整と連絡にあたりました。修正は、メモリ不足時に処理を打ち切る仕組みそのものを作り替える内容でした。
AIで見つかった脆弱性が修正まで届いた例には、10月に公表されたLinuxカーネルの「PwnEscape」もあります。GPT-5.6 Solを使って見つかったこの欠陥は、9月4日に保守担当者へ非公開で伝えられ、公開の場でのパッチの議論を経て、10月14日に修正が本流へ統合されました(Linuxカーネルに仮想マシン脱出の脆弱性「PwnEscape」、Vercel Sandboxの100万ドルチャレンジで発見)。PHP2Shellも10月20日までは、非公開の報告から修正へという同じ道筋をたどっていました。
公開予定日の2日前から起きたこと
協調開示が揺らぎ始めたのは、公開予定の2日前でした。
10月20日、2件のCVE番号が掲示板やSNSに出回りました。技術的な詳細は含まれていませんでしたが、深刻度を「10.0」とする誤った数字と、誤った公開時刻が添えられていました。PHPは同日19時30分(UTC、日本時間21日4時30分)、事前告知を前倒しで出し、修正版の公開を1日繰り上げました。
その直後、発見者の一社であるCalifが、攻撃の実演動画を誤って公開しました。動画はすぐ削除されましたが、複製が出回り、PHP Foundationは攻撃コードの開発を早める一因になったとみています。重要インフラの事業者向けに送った緩和策が漏れた可能性もあるとしています。
21日7時41分(UTC、日本時間16時41分)には、コンテナイメージを配布するChainguardが、修正入りのイメージを公開予定の6時間以上前に公開しました。PHP Foundationは、修正の中身を攻撃者が先に解析できる状態になったとして、数週間にわたる協調開示の作業を顧みない行為だったと批判しています。ChainguardのCEOであるダン・ロレンツ(Dan Lorenc)氏は、ほかのセキュリティ企業から実際の攻撃を確認したとの報告があったことなどを挙げて判断を説明し、メンテナーにさらに負担をかけたことを謝罪しています。同氏は、問題の存在を事前に知らされた後、自社の調査用の仕組みとフロンティアモデルを使い、簡単な指示で同じ欠陥を独立に見つけられた、とも書いています。
各社の説明は、観測した対象と時点が異なります。PHPのセキュリティチームは、公開の時点で、調べた攻撃コードのなかに実際に動くものを確認できなかったとしています。Cloudflareは、流出のあと攻撃者がルールをすり抜けようと中身を変えて試す通信を観測しています。「攻撃の試み」と「侵入の成功」は別の段階です。PHPの説明は公開時点で調べた攻撃コードについてのもので、CISAも勧告の公表時点では悪用を観測していないとしています。これらは、侵入が起きていないことを意味するものではありません。
「防御側に開かれた好機」はどこまで開いていたか
OpenAIは修正版の公開直後、PHP2Shellを「防御側に開かれた好機」の実例だと位置づけました。知る限り、フロンティアAIが攻撃者より先にこの脆弱性を見つけ、防御側に準備の時間を与えた、という主張です。8月にグレッグ・ブロックマン氏が論考で示した考え方で、AIが攻撃にも防御にも使える時代に、防御側が先に動ける時間がいま開いている、という見立てです。
今回、その好機は確かに開いていました。発見から公開まで2か月あまり、PHPのメンテナーは根本からの修正を仕上げ、Cloudflareは公開前にWAFのルールを用意し、各国の政府機関は公開に合わせて呼びかけを出しました。
一方で、PHPが公開日を早めた理由として挙げたのは、攻撃者による発見の報告ではなく、CVE番号などが予定より早く出回ったことでした。最初の流出元は公表されていません。その後も、誤って公開された実演動画、漏れた可能性が指摘された緩和策、先に公開された修正入りのイメージと、情報が外に出る出来事が続きました。協調開示の輪を広げるほど、守れる組織は増えますが、情報が外に出る経路も増えます。Califが最初の発見に一般に使えるモデルを使ったことや、Chainguardが同じ欠陥を独立に見つけたと述べていることは、同様の調査を攻撃者も行えた可能性を示しています。好機がどれだけ続くかは、AIの性能差だけでなく、輪の運び方にも左右されます。
OpenAI自身も、この問いを宿題として掲げています。同社はPHP2Shellの発表とあわせて、AI時代の重大な脆弱性への対応の枠組みを提案しました。流出や公開された修正から内容が読み取られた場合には日程を見直すこと、誰に事前に知らせるかを、守れる範囲の広さと流出の危険の兼ね合いで考えることを挙げ、どれだけの準備期間が必要か、段階的な通知はいつ有効かについて、セキュリティ業界に意見を求めています。今回の経緯は、その問いが机上のものではないことを示しました。
日本はサイトを止め、各国も止めた
国内の動きの速さは際立っていました。国家サイバー統括室は日本時間21日13時ごろに準備を呼びかけ、夜には、修正をすぐ適用できない場合の一時停止も有効策の一つだと投稿しました。高市首相も同じ趣旨を自身のアカウントで発信しています。IPAは同日、PHPを使っている環境の洗い出しと、サポートが終わった版の確認を求めました。
止める判断は日本だけのものではありません。米国のCISAは、すぐ更新できない場合やPHP 8.1以前を使っている場合は、修正するまでオフラインにするよう勧告しました。英国のNCSCも、緩和策をすぐ適用できない場合は切り離しを検討するよう求めています。オランダでは、行政手続きのログイン基盤DigiDなどのサイトが予防的に止められたと現地メディアが報じています。
首相みずからが、ソフトウェアの更新への備えとサイトの一時停止を呼びかけました。PHPが社会の基盤として、どれだけ深く入り込んでいるかを示した一日でした。
更新を終えた運営者が次に確かめたいのは、自社のサーバーだけではありません。CISAやIPAは、PHPがほかの製品に組み込まれていて外から見えにくい場合があると注意を促しています。ネットワーク機器や業務システムなど、PHPを内側に抱えた製品は、それぞれの提供元の更新情報を確かめる必要があります。自社で管理するコンテナのイメージは、PHPを更新したうえで作り直すことになります。
AIが脆弱性を見つける速さに、直す側の体制を合わせる
PHP Foundationは今回の振り返りで、これからの体制も示しました。5月にエコシステムのセキュリティチームを立ち上げ、AIのセキュリティ担当者を含む人員を順に加えています。セキュリティチームの意思決定は、合意を重んじる形から多数決も使える形へ改めつつあり、複雑な修正が必要な重大案件には早い段階で幹部が加わるとしています。
7月1日以降、PHPは15件のCVEを公表し、無効や重複、再現できない報告を100件以上処理してきました。報告の検証や、同じ原因の報告をまとめる作業にはAIを使っていますが、すべての判断を人が行い、どの修正にも人が関わるとしています。報告の数はこれからも増える見込みです。
研究者が20年以上前の攻撃研究を手がかりに問いを立てれば、AIとともに数日で新たな攻撃経路にたどり着けるところまで来ました。残る課題は、見つかった欠陥を、限られた人数のメンテナーが確実に直し、漏らさずに届ける仕組みのほうにあります。PHP Foundationは、PHPに頼る企業や事業者、政府に、継続的な資金の支援を呼びかけています。
innovaTopiaがPatch the Planetの目指す姿として描いた「見つけたら速やかに塞がれている世界」は、AIの性能だけでは実現しません。今回の2か月あまりの準備と公開直前の混乱は、その世界に必要なものが、発見の速さに見合った直す側の体力と、情報を共有する輪の作法であることを、はっきり示しました。
【関連記事】
OpenAI、GPT-5.5-CyberとPatch the Planet始動—脆弱性は発見から修正の時代へ
6月に始まったPatch the Planetの仕組みと、AIによる脆弱性対策が発見から修正へと軸足を移す流れを解説した。
Linuxカーネルに仮想マシン脱出の脆弱性「PwnEscape」、Vercel Sandboxの100万ドルチャレンジで発見
AIを使って見つかったLinuxカーネルの欠陥が、非公開の報告と公開の場でのパッチの議論を経て、修正されるまでを伝えた。
【編集部後記】
ChainguardのCEOの投稿には、本文に入れなかった一文があります。同社はこの3か月、自社の発見と協力先の分を合わせて、今回のような脆弱性の開示を毎日数百件扱っているというのです。
PHP2Shellは特別な一件ではなく、これから日常になる一件なのかもしれません。次の呼びかけを待たずに、自分のサイトがどの版のPHPで動いているか、管理画面やホスティング事業者の案内で今日のうちに確かめておきたいところです。
【用語解説】
CVE(Common Vulnerabilities and Exposures)
公開された脆弱性に付けられる世界共通の識別番号。「CVE-年-番号」の形で表し、今回はCVE-2026-109618とCVE-2026-109619の2件である。
CVSS(Common Vulnerability Scoring System)
脆弱性の深刻度を0〜10の数値などで評価する仕組み。最新のv4.0では、9.0以上が最も深刻な「Critical」に当たる。今回の2件はいずれも9.2である。
協調開示
脆弱性の発見者と開発元、配布事業者などが情報を関係者の内側にとどめ、修正の準備が整う時期に合わせて公開する慣行。英語ではCoordinated Vulnerability Disclosure。流出や悪用の状況によって、公開日が見直されることもある。
遠隔実行(RCE:Remote Code Execution)
ネットワーク越しに、攻撃者が標的のサーバー上で任意のプログラムを動かせてしまうこと。認証なしで成立する場合は、とくに深刻度が高い。
処理系
プログラミング言語で書かれたプログラムを解釈して動かすソフトウェア。PHPの場合は、Zend Engineを中心とする本体を指す。今回の欠陥はここにあるため、アプリやプラグインの更新では塞がらない。
mod_php
Webサーバー「Apache」の中に組み込んでPHPを動かす方式。今回、アプリのプログラムが動く前の段階で攻撃が成立することが確認され、最も危険な構成とされた。
PHP-FPM
PHPを、Webサーバーとは別の常駐プロセスとして動かす方式。現在の主流の構成の一つで、今回の脆弱性の影響を受ける。
マルチパート
Webのフォームからファイルなどを送るときに使う、データを複数の部分に区切って送る形式。今回の1件目は、この形式の解析中にメモリ不足を起こさせることで誘発できる。
WAF(Web Application Firewall)
Webサイトへの通信を調べ、攻撃とみられるリクエストを遮断する仕組み。修正版を適用するまでのつなぎにはなるが、根本の対策にはならない。
フロンティアモデル
その時点で最も高い性能を持つ、最先端の大規模AIモデルを指す呼び方。OpenAIは、今回の脆弱性をフロンティアAIが攻撃者より先に見つけたと説明している。
メンテナー
オープンソースのソフトウェアを継続的に保守し、修正や新しい版の公開に責任を持つ人。PHPの場合、修正と公開を主導したのはPHPのメンテナーである。
【参考リンク】
PHP: News Archive – 2026(外部)
PHP公式のニュース一覧。10月20日の事前告知と、21日のセキュリティ勧告、8.5.12など各修正版の公開告知を掲載している。
RCE via OOM corruption(GHSA-w8hw-w9fx-j79w)(外部)
CVE-2026-109618のセキュリティ勧告。影響する版と修正版、CVSS v4.0による評価、一時的な緩和策とその限界を記載している。
RCE via stale global state(GHSA-6wmf-4rv5-p3rp)(外部)
CVE-2026-109619のセキュリティ勧告。前のリクエストの状態が残る仕組みと、確認された攻撃の経路、一時的な緩和策を説明している。
Today’s PHP Security Release, and How We’re Strengthening PHP Security(外部)
PHP Foundationの振り返り。2024年に修正が止まった経緯、流出から公開までの時系列、セキュリティ体制の見直しを公表した。
php2shell by Calif Research(外部)
発見者であるCalifの解説記事。2004年からの経緯、8月の発見と報告の時系列、AIを使った調査の進め方を詳しく記録している。
PHP2Shell — AI uncovers critical vulnerabilities in the backbone of the web(外部)
Wizによる解説ページ。2件を独自に発見した研究チームと使ったAIモデル、WordPressなど主要なCMSでの実証を紹介している。
Patch the Planet: global response coordination as agents uncover critical vulnerabilities(外部)
OpenAIの発表。PHP2Shellへの対応の経緯と、AI時代の重大な脆弱性に対応する枠組みの案を示し、意見を求めた。
防御側に開かれた好機(外部)
OpenAIのグレッグ・ブロックマン氏が8月に公表した論考。AIの時代に、防御側が先に動ける時間がいま開いていると説いている。
Cloudflare deploys protections against php2shell vulnerability(外部)
Cloudflareの発表。公開前の10月21日3時2分(UTC)に稼働させたWAFのルールと、流出後に観測した攻撃の試みを説明している。
Dan Lorenc氏のLinkedIn投稿(外部)
ChainguardのCEOによる説明。修正入りのイメージを先に公開した判断の理由と経緯、PHPのメンテナーへの謝罪を記している。
Critical Vulnerabilities in PHP Require Immediate Patching(外部)
米CISAの勧告。PHPの即時の更新を求め、すぐ更新できない場合やPHP 8.1以前を使う場合は、オフラインにするよう呼びかけた。
Critical security issue affecting PHP(外部)
英NCSCの注意喚起。PHPを使うシステムの洗い出しと更新を求め、緩和策を講じられない場合は切り離しの検討を勧めている。
【事前準備のお願い】PHPのセキュリティリリース公開予定について(外部)
IPAの注意喚起。PHPを使う環境や製品の棚卸しと、修正版の公開後すぐに適用できるよう準備することを、事前に呼びかけた。
国家サイバー統括室(注意・警戒情報)の投稿(外部)
国家サイバー統括室の10月21日の投稿。修正版の適用が難しい場合は、サイトの一時停止もリスクを減らす有効策の一つだとした。
高市早苗首相の投稿(外部)
高市首相の10月21日の投稿。PHPを使うサイトの確認と、当日夜に公開される修正版の適用に向けた準備を、大至急と呼びかけた。
Usage Statistics and Market Share of PHP for Websites(外部)
W3Techsの統計ページ。サーバー側の言語が判明しているWebサイトのうち、PHPを使う割合を日々更新して公表している。
【参考記事】
PHP says AI review of critical bugs first sparked alarm in August, but signs surfaced in 2024(外部)
The Record。2024年の監査で問題の兆候をつかみながら修正できなかった経緯と、Chainguardをめぐる対立を報じた。
PHP Foundation Says Chainguard Broke Security Embargo Ahead of Emergency Patches(外部)
Socket。Chainguardが修正入りイメージを先に公開した件で、PHP Foundationの批判とCEOの反論を整理した。
修正予告されたPHPの2件の深刻な脆弱性についてまとめてみた(外部)
piyolog。国内で停止や緊急メンテナンスに入った211組織を業種別に集計し、国の機関などの発信もあわせてまとめている。
Veel websites offline vanwege kwetsbaarheid in PHP: ook MijnOverheid en DigiD(外部)
Bright(オランダ)。DigiDやMijnOverheidなど、行政のサイトが予防のために一時的に止められたことを報じた。


















