アプリケーションをバイパスするPHPの欠陥
PHP2Shell、すなわちCVE-2026-109618およびCVE-2026-109619として特定された2つの重大な脆弱性が、インターネットを直撃しました。CVSSスコア9.2と報告されているこれらの脆弱性は、一般的なアプリケーションレベルのバグではなく、PHPインタープリタの核心を突くものです。
根本的なリスクは一見単純です。特別に細工されたリクエストが、リクエスト処理中にメモリ不足(OOM)状態を引き起こす可能性があります。これにより破損した状態や古い状態が残され、PHPのクリーンアップルーチンがそれを誤って処理してしまうことがあります。その結果、認証不要のリモートコード実行が可能となり、攻撃者がサーバーを完全に制御できるようになります。
これは単なるWordPressプラグインの欠陥ではありません。問題はアプリケーションコードのさらに下層、PHP自体の中に存在しています。Wizのセキュリティ研究者は、PHP2Shellが以下の新規インストール環境に与える壊滅的な影響を実証しました:
- WordPress
- Drupal
- Joomla
最小限の「Hello World」アプリケーションでさえ脆弱であることが判明しました。アプリを更新してもこの問題は解決しません。PHPを更新する必要があります。この区別は極めて重要であり、一般的なアプリケーション層の防御を回避し、言語エンジンを直接侵害するバグの深刻さを浮き彫りにしています。
なぜインターネットはキルスイッチを押したのか
インターネットの約70%を支えるPHPの広範な普及が、PHP2Shellの脅威を増幅させました。脆弱性であるCVE-2026-109618とCVE-2026-109619は、10年以上にわたるバージョンにまたがり、最新およびレガシーなPHP環境の両方に影響を及ぼしました。この広範囲にわたる露出は、プラグインやアプリケーションのバグではなく、言語の核心的な欠陥がウェブの大部分を危険にさらしたことを意味します。
NSA、CISA、FBI、英国NCSCを含むサイバーセキュリティ機関は、前例のないガイダンスを発行しました。それは「直ちにパッチを適用せよ」、あるいは「期限内に保護できない場合は、露出しているシステムをオフラインにせよ」というものです。これは推奨事項ではなく、CVSSスコア9.2という深刻さと、認証不要の「リモートコード実行」の可能性を反映した緊急指令でした。
インターネットは、予防的な停止という形で反応しました。Wikipediaの一部がダウンし、4chanは一時的に切断され、BreachForumsのようなハッカーフォーラムでさえ自発的に閉鎖しました。これらのシャットダウンは、大規模な侵害が確認されたためではなく、未知の脅威から身を守るための予防措置であり、事態の深刻さと業界の即時的かつ目に見える影響を物語っています。
あるRedditの管理者は、これが20年間で初めての意図的なウェブサイト停止だったと述べています。この集団的な行動は、PHP2Shellの深刻さと、一時的なサービス停止という代償を払ってでもセキュリティを優先するという業界の姿勢を強調しました。
秘密が漏れた後に到着したパッチ
PHP2Shellの調整された開示計画は急速に崩壊し、防御側の猶予期間を狭めました。火曜日の午後、CVEの詳細と誤ったCVSSスコア10.0がHacker Newsに掲載され、セキュリティコミュニティと潜在的な攻撃者に時期尚早な警告を与えてしまいました。このリークにより、PHP Foundationはリリーススケジュールを丸1日早めることを余儀なくされました。
同時に、このバグを発見した企業の一つであるCalifが、誤ってエクスプロイトの動作を実演する動画を公開してしまいました。動画はすぐに削除されましたが、コピーがソーシャルメディア上で拡散され、悪用のための危険な設計図を提供してしまいました。公式リリースの数時間前には、Chainguardが独自にパッチ適用済みのPHPコンテナイメージを公開し、事実上エンバーゴ(情報公開制限)を破る結果となりました。
リークが発生するたびに、防御側の優位性は少しずつ削られていきました。修正パッチやエクスプロイトの実証コードが公開されると、ホワイトハッカーと悪意のある攻撃者の双方がその変更をリバースエンジニアリングし、信頼性の高いエクスプロイトの開発を競い合うことになります。PHP Foundationとメンテナーは修正プログラムのリリースに奔走する一方、CloudflareやVercelといった企業は、事前通知を受けていたため、静かに保護用のファイアウォールルールを展開しました。財団の対応に関する詳細については、Today's PHP Security Release, and How We're Strengthening PHP Security を参照してください。
公式パッチがUTC午前2時にリリースされた時点で、秘密はすでに漏洩していました。この混乱した開示プロセスにより、修正プログラムが正式に利用可能になったときには、多くの人がすでに攻撃対象を正確に把握しており、計画的で落ち着いたリリースになるはずが、時間との戦いという公然のパニックへと変貌してしまいました。
この記事が気に入ったら、毎朝同じようなものをメールで受け取れます。
1日1通 · 2クリックで解除 · サードパーティのトラッキングなし
忘れ去られたすべてのPHPサーバーにパッチを適用する
運用者は今、困難ではあるものの明確な課題に直面しています。それは、すべてのPHPホストとコンテナを詳細に棚卸しし、正確なランタイムバージョンを確認した上で、公式の修正済みリリースまたは信頼できるベンダーのバックポートを適用することです。重要なのは、デプロイメントが実際に変更されたことを検証することです。サイレント障害やキャッシュの問題により、システムが脆弱なまま放置される可能性があるためです。
長期間放置されたレガシーインストールが最大の危険をもたらします。スキャンによると、サーバーの59%がPHP 8.1以前のバージョンを実行しており、PHP 7.4のような古いブランチでは、Ondrej Surý氏のようなコミュニティメンテナーが提供する個別のパッチが必要でした。こうした監視の行き届いていない忘れ去られたサーバーは、格好の標的となります。
PHP2Shellは、業界に厳しい教訓を与えました。AIを活用した発見手法は、脆弱性調査とエクスプロイト開発を加速させるということです。OpenAIのGPT-5.6 SolやGoogleのGemini 4 Argonが今回の発見に寄与したとされており、かつては数ヶ月かかっていた作業がわずか数週間に短縮されました。
このパラダイムシフトにより、開示プロセスとパッチ運用のタイムラインをより厳格にする必要があります。早期リークや偶発的なPoCの公開に象徴されるPHP2Shellの混乱した展開は、わずか数時間の情報の先行漏洩であっても、大混乱を引き起こす可能性があることを浮き彫りにしました。プロアクティブなパッチ適用と堅牢なインシデント対応は、もはや選択肢ではなく、AI時代のセキュリティにおける基盤なのです。
よくある質問 (FAQ)
PHP2Shellとは何ですか?
PHP2Shellは、リモートコード実行を可能にするPHPコアランタイムの2つの重大な脆弱性に付けられた名称です。
WordPressをアップデートしてもPHP2Shellを修正できないのはなぜですか?
この欠陥はPHP自体に存在しており、WordPressやプラグインの問題ではありません。アプリケーションをホストしているPHPランタイムにパッチを適用する必要があります。
PHPサイトの運用者は何をすべきですか?
すべてのPHPデプロイメントを特定し、修正済みのPHPリリースまたはベンダーのバックポートをインストールし、公式ガイダンスに従ってください。システムにパッチを適用できない、または適切に保護できない場合は、隔離するかオフラインにしてください。
攻撃者がPHP2Shellを悪用したことは確認されていますか?
情報源によると、悪用を試みる活動は報告されていますが、公開時点で悪用に成功したという確認は取れていません。

