AIが暴いたPHPの重大脆弱性!各地でサイト停止『PHP2Shell』はどう防ぐ?

AIを使った研究がPHPの重大脆弱性『PHP2Shell』を実証。各地でサイトが止まった理由、認証不要RCEのリスク、修正版とWAFの違い、運営者がやるべき対策をスタークとゆなが解説。

Stark
AI生成のイメージイラスト。赤い警告が並ぶモニターの前で、スタークが頭を抱えて驚き、白衣のゆなが端末で解析している。「PHP緊急停止!?」「AIが暴いた重大脆弱性」の文字入り(画面のコードは演出で、PHP2Shellの実際の攻撃コードではありません)

2026年10月、Web開発で広く使われるプログラミング言語「PHP」に、認証なしの遠隔コード実行につながる重大な脆弱性が公表された。2件の問題は「PHP2Shell(PHPツーシェル)」と呼ばれ、日本でもWebサービスの一時停止や緊急メンテナンスが相次いだ。

そのうえ、この問題の一部は2024年から兆候が知られていたという。AIを活用した調査で危険性が実証され、修正の直前には情報公開をめぐる混乱も発生した。

なぜログインしなくても攻撃できるのか。PHPを使っているサイトはすべて危険なのか。そして、運営者は何をすべきなのか。今回は騒動の全体像から現実的な対策まで整理していこう。

🚨 ログイン不要でサーバー上のコードを実行?

今回の中心となったのは、CVE-2026-109618とCVE-2026-109619という2つの脆弱性だ。PHP Foundationの解説によると、前者はメモリ不足(OOM)のタイミングで内部データが不完全な状態のまま扱われ得る問題、後者は前のリクエストに関係する解放済みメモリの状態が残り得る問題だ。

条件がそろうと、遠隔からサーバー上で不正なコードを実行される「RCE(Remote Code Execution)」につながる。深刻度を示すCVSSスコアは、2件とも9.2(CVSS v4.0)とされている。

特に危険とされたのが、Apacheのmod_phpを利用する構成だ。PHP公式のセキュリティ告知は、mod_phpのリスクを最も高く見ており、アプリケーションのコードが動く前に、ログインしていない相手からのリクエストで攻撃が成立する例が実証されたと説明している。

とはいえ、mod_phpだけの問題ではない。公式はPHP-FPM、php-cgi、FrankenPHP、LiteSpeedなど、Webリクエストを処理するPHP全般を対象にしている。PHP Foundationによれば、PHP-FPMでもアプリケーション側の処理を経由したRCEが確認された。

ただし、PHPが入っていれば、どんなサイトでも無条件に侵入されるという意味ではない。攻撃の成立条件は、PHPのバージョンや実行方式、アプリケーションの動きによって異なる。Wizの研究チームは、WordPress、Drupal、Joomlaの公式コンテナイメージを使った検証環境で、認証なしのRCEを実証したと報告している。

mod_phpで実証された例をもとに流れを単純化すると、外から届いた通信はまずPHP本体の処理を通り、そのあとでWordPressなどのアプリがログインを確かめる。今回の欠陥はその手前、PHP内部のメモリやエラー処理にあった。だからアプリ側の認証を強めるだけでは足りず、PHP本体を直す必要があるのだ。

Web通信がPHP内部の処理に到達し、アプリ側の認証では防げない場合があることを示した模式図

🌐 なぜ世界中が慌てたの?「約7割」の本当の意味

PHPはWordPressやDrupalなど、さまざまなサイトやサービスの基盤になっている。Web技術の利用統計を集めるW3Techsによると、2026年10月24日時点で、サーバー側のプログラミング言語を判別できたWebサイトのうち69.3%がPHPを使用していた。

ただし、この「約7割」は全企業の7割でも、世界中のサイトの7割が今回の脆弱性で侵害されたという意味でもない。あくまで特定の調査対象におけるPHP利用率だ。

それでも、基盤技術への影響が広がれば社会的な波紋は大きい。日本でも、ソフトバンクが法人向けの一部Webサイト・サービスを緊急メンテナンスとして一時停止していると発表した。

滋賀県は、10月23日15時時点で把握している公開系Webシステム143件のうち、県立学校19校を含む31件を、セキュリティ確保の観点から一時停止中だと公表している。前回公表時の停止69件からは減り、公開中(対応済みのほか、一部機能を止めての運用やPHPを使っていないシステムも含む)は60件から112件に増えた。

世界各地のWebサイトで停止警告と緊急メンテナンスが表示されるサーバー運用のイメージ

🧠 2024年から兆候があった問題を、AIが実証

今回の出来事をさらに興味深くしているのが、脆弱性の発見に至る経緯だ。

PHP Foundationによれば、2024年に行われた外部セキュリティ監査をきっかけに、今回のCVE-2026-109618につながるOOM問題の兆候は把握されていた。しかし、当時は具体的な遠隔攻撃の経路が見つかっていなかった。

修正案にも難題があった。互換性が壊れる、新たなサービス停止につながる、多くの拡張機能への変更が必要になる。限られた開発人員と合意形成の難しさもあり、修正作業は長期化していたという。

状況が変わったのは2026年夏。OpenAIの「Patch the Planet」に参加したセキュリティ企業Califは、GPT-5.6 Solを使って重大な欠陥を特定し、8月11日に、2024年のOOM問題と同じ根本原因を持つ遠隔コード実行をPHPへ報告した。OpenAIも同じ根本原因を独立して報告している。

さらにWizの研究チームも、Gemini 4 Argon、GPT-5.6 Sol、Wiz Atlasなどを活用した調査で、PHPの問題を独自に発見・検証した。Wizは8月20日にDrupal、21日にWordPressでのRCEを確認し、24日にPHPのセキュリティチームへ報告している。

⚠️ 修正直前に情報流出。公開予定も前倒しへ

PHP Foundationの説明によれば、10月20日に2件のCVE識別子が掲示板やSNSで出回り始めた。この時点で技術的な詳細は漏れていなかったものの、修正版の公開は予定の10月22日から10月21日へ1日前倒しされた。

その後、Califが実証動画を誤って公開し、コピーがSNSで拡散。修正を含むソフトウェアイメージが、関係者で合わせた公開時刻より前に配布されたこともあり、開示をめぐる混乱は広がった。

AWSは、これより前の10月17日に、脆弱性の悪用を試みた通信を自社のハニーポット(おとりのシステム)で観測していたと報告している。ただし、それが実際のサービスへの侵入成功を示すわけではなく、攻撃者が情報をどう入手したのかも明らかになっていない。

🛡️ 結局どうすればいい? サイト運営者の対策

今回の対策でいちばん大切なのは、PHP本体の修正プログラムを適用すること。PHP公式は「完全な緩和策はなく、更新だけが安全な選択肢」として、すべての利用者にすぐ更新するよう求めている。IPAも注意喚起を出している。

2026年10月21日に公開された修正版は次のとおり。

PHPの系列 修正版
8.5系 8.5.12
8.4系 8.4.27
8.3系 8.3.36
8.2系 8.2.35

PHP 8.1以前は公式サポートが終了しており、8.2系も2026年12月31日でサポートが終わる予定だ。古い系列を使い続ける場合は、サポートされているPHPへの移行や、提供事業者が配布する修正済みパッケージの有無を確認する必要がある。

レンタルサーバーやWordPress利用者は、WordPress本体の更新だけで安心せず、サーバーで動いているPHPのバージョンと提供会社の対応状況を確かめたい。自社サーバーやコンテナを運用している場合は、修正済みパッケージ/イメージの適用に加えて、関連サービスの再起動や動作確認も必要だ。

また、CloudflareやAWSのWAFは、不正な通信を減らすための補助策として有効だが、PHP内部の欠陥そのものを直すものではない。両社とも、WAFはPHPの更新の代わりにはならないと明記している。

サイト運営者の対策は、3つに分けて考えると整理しやすい。根本対策になるPHP本体の更新、更新までのあいだ攻撃を減らすWAFでの緩和、そしてすでに侵入されていないかを確かめるログと侵害の調査だ。それぞれ役割が違うので、どれか1つで済ませないことが大切になる。

PHP2Shellへの対策はPHP本体の更新・WAFによる緩和・ログや侵害痕跡の調査の3段階で考える

すでに侵害の兆候がある場合は、証拠保全、被害範囲の確認、必要な認証情報の更新、安全な環境からの再構築などを専門家と検討する必要がある。AWSも、少なくとも10月17日以降のWebサーバーのログ確認や、予期しないプロセス実行・ファイル変更の調査を推奨している。

10月23日には別の注意喚起も

PHP公式は10月23日、CVE-2026-115560に関する追加の情報も公表した。これは主要な2件とは区別すべき、特定のセッション設定とアプリケーションの書き方が組み合わさる、珍しい条件で起こる問題だ。

公式は、次の通常の修正リリースまでsession.upload_progress.enabled=0に設定することを提案している。これはサイト運営者が影響を確認して判断すべき設定で、すべてのPHPサイトに同じ危険があるという意味ではない。CloudflareとAWSによれば、10月21日の修正版でもこの特殊条件下の問題は直っておらず、PHPの次の通常リリースで修正される予定だ。

🔮 AIの発見速度に、修正する側は追いつける?

ここからはYuna Orbitの考察だ。

今回、AIは既存のソフトウェアを調べ、危険性が十分に理解されていなかった問題を現実的な攻撃の可能性として示した。一方で、修正内容の決定、既存アプリとの互換性確認、パッケージの配布、現場での更新には人間の経験と判断が欠かせなかった。

もし今後、AIによって脆弱性の発見や検証がさらに速くなるなら、防御側もそれに見合うだけの対応速度を求められるだろう。AIで疑わしい箇所を洗い出し、修正候補を作り、テストを自動化し、最後は経験豊富な開発者がレビューして反映する。そんな仕組みを平時から整える必要がありそうだ。

PHP Foundationは、PHP本体のセキュリティ作業がいまも少人数の開発者に頼っていることを認め、担当者の増員や意思決定の見直しなど、セキュリティ体制の強化を進めている。

今回のPHP2Shellは、AIの発見能力だけでなく、インターネットを支えるソフトウェアの保守体制にも目を向けさせる事件だった。

AIが脆弱性を見つける速度に、私たちの修正能力は追いつけるのだろうか。

この問いは、PHPだけでなく、これからのソフトウェア開発全体に関わってくるはずだ。

※確認基準日:2026年10月24日。本記事はPHP公式、PHP Foundation、IPA、各研究機関・事業者の公開情報をもとに構成し、事実とYuna Orbit独自の考察(「AIの発見速度に修正する側は追いつけるか」)を分けて掲載しています。滋賀県の件数は10月23日15時時点の公表値です。影響範囲・悪用状況・修正版の情報は今後変わる可能性があるため、対応の際は必ず最新の公式情報を確認してください。サムネイルと記事内の画像はAIで生成したイメージで、図解は公開情報をもとに簡略化したものです。実際の事件現場や被害画面、PHP2Shellの攻撃コードではありません。

📚 参考資料・出典