PHP2Shell: AIがインターネットの70%に影響する重大なRCE脆弱性を発見
Wiz Researchは、コアPHPにおける複数の重大なメモリ安全性の脆弱性を発見しました。これは世界中の全ウェブサイトの約70%に影響し、認証されていない攻撃者がリモートコード実行(RCE)を達成したり、機密性の高いプロセスメモリを開示したりすることを可能にします。
これらの脆弱性は、2つのCVE(CVE-2026-109618およびCVE-2026-109619)にまとめられており、PHPが致命的なエラーとメモリ割り当てを処理する方法における深いアーキテクチャ上の欠陥に起因し、その発見はフロンティアAIモデルの適用によって大幅に加速されました。
脆弱性の概要と影響
開示されたすべてのPHP2Shell脆弱性は、コアエンジンが致命的なエラー、特にメモリ不足状態を管理する方法に根ざしたメモリ安全性の問題です。これらのバグは、破損したまたは古い内部PHP状態を残し、同じワーカープロセスによって処理される後続のリクエストによって悪用される可能性があります。
これらの欠陥はPHPエンジン自体に存在するため、影響は深刻であり、悪用はアプリケーションに依存しません。脆弱なPHPバージョンは、その上で実行されているアプリケーション(WordPress、Drupal、Joomlaなど)が完全に安全であっても悪用される可能性があります。
- リモートコード実行(RCE): 攻撃者は、影響を受けるサーバー上で認証前のRCEを達成できます。これは、WordPress、Drupal、Joomlaの最新のコンテナイメージを使用して実証されました。
- メモリ開示: 攻撃者は、RCEを達成することなく、PHPプロセスのメモリから機密データを読み取ることができます。このメモリには、他のリクエストまたはサーバー自体に属するパスワード、認証トークン、APIキー、証明書が含まれる可能性があります。
PHP2Shellバグの技術的な詳細
これらの脆弱性は、PHPランタイム内の特定のタイミングと状態管理の問題を悪用します。PHPに報告された4つの悪用可能なバグのインスタンスは、エンジンがリクエストの終了とメモリの再利用を処理する方法に関連する問題のあるパターンに従っています。
アップロード進行状況アンシリアライザーのuse-after-free
このバグは、PHPのSessionモジュールがアップロード進行状況の処理中にセッションデータをデコードするときに発生します。致命的な割り当て失敗がこのプロセスを中断し、リクエストヒープを破壊して、アンシリアライザーのグローバル状態を公開したままにする可能性があります。後続のリクエストは、この攻撃者によって再利用されたメモリを消費し、古い状態をメモリ破損プリミティブに変え、メモリ開示と組み合わせて認証なしのRCEを達成しました。
リモートプロセスメモリ開示
リクエストの開始時に、PHPはRFC1867マルチパートリクエストを解析します。クリーンアップが完了する前にメモリ不足エラーがリクエストを中止した場合、PHPは解放されたメモリを指すセッションIDポインタを残す可能性があります。同じワーカーによって処理される後続のマルチパートリクエストは、この古いポインタにアクセスし、PHPが再利用されたヒープコンテンツを信頼して、それをPHPSESSID応答CookieにURLエンコードし、認証なしのメモリ開示につながる可能性があります。
致命的なエラーバックトレースのuse-after-free
影響を受けるバージョンでは、PHPは最新の致命的なエラーのバックトレースを保持します。致命的なメモリ不足エラーは、このエグゼキュータグローバル値を未定義のままにせずに、リクエストヒープを破壊する可能性があります。同じワーカーが次のリクエストの早い段階で診断を発行すると、ぶら下がっているバックトレースポインタにアクセスする可能性があり、攻撃者によって再利用されたメモリを指す可能性があり、制御されたメモリ破損とRCEを可能にします。
OPcache型混乱
OPcacheは、コンパイルされたPHP構造を共有メモリに永続化します。永続化プロセス中の割り当て失敗により、プロセスローカル状態が進行したまま、共有状態がメモリスロットをまだ利用可能と見なす可能性があります。別のワーカーがこれらのスロットの1つを再利用すると、古い共有メタデータが間違った型のポインタに解決され、ワーカー間の型混乱が作成され、共有OPcache状態が破損し、WordPressに対する認証なしのRCEチェーンを構築するために使用されました。
脆弱性発見におけるAIの変曲点
フロンティアAIモデルは、長年にわたる複雑な欠陥を実用的でスケーラブルなエクスプロイトに変換する上で重要でした。基礎となるコードの欠陥は10年以上存在していましたが、それらを機能するエクスプロイトに変えるには、複数のバグを連鎖させ、各ターゲット展開の独自のメモリレイアウトに適応する必要がありました。
AI以前は、この手動の作業(さまざまな構成にわたる広範な分析、テスト、デバッグを伴う)は、実装とスケーリングが非常に困難でした。AIを使用すると、大規模言語モデル(LLM)は、エクスプロイトをさまざまなPHPバージョン、構成、メモリレイアウトに適応させることができます。これにより、多様な展開全体で攻撃をスケーリングするための障壁が大幅に低くなります。
この開発は、脆弱性の発見と悪用の両方の経済性を変えます。AIが複雑なエクスプロイトの開発と適応に必要な労力を削減するにつれて、以前は実用的でないターゲットと見なされていた脆弱性が実行可能になります。
Gemini 4 Argonを使用して、Wizのチームは、フロンティアAIがサイバー防御にとってゲームチェンジャーである理由を示しました。10年以上にわたり、これらの重大な脆弱性は、脆弱性の発見と悪用が非常に複雑であったため、対処されないままでした。Gemini 4 Argonが防御側のギャップを埋め、脆弱性を発見し、パッチ適用を支援することを嬉しく思います。(Raluca Ada Popa、Gemini Security責任者、Google DeepMind)
責任ある開示と業界の対応
Wiz Researchは、PHPチーム、Calif、OpenAIと開示プロセスを調整しました。PHP2Shell開示のタイムラインは次のとおりです。
- 2026年8月19日: Wiz Researchは、Wiz Atlas、Gemini 4 Argon、GPT-5.6 Solを使用して最初のPHP脆弱性を発見しました。
- 2026年8月24日: Wiz Researchは、脆弱性をPHPセキュリティチームに報告しました。
- 2026年10月21日: パッチ適用済みのPHPリリースが利用可能になり、公開開示が行われました。
広範な影響を考慮して、Cloudflare、AWS、Microsoft、Googleなどの業界パートナーは、パッチをすぐに適用できない顧客向けにガイダンスとすぐに使える緩和策の準備を支援しました。
緩和策と防御
PHP2Shellに対する唯一の完全な修復策は、2026年10月21日にPHPチームによってリリースされたセキュリティアップデートを適用することです。システムにパッチが適用されるまで、防御側は悪用の試みを示す特定の侵害指標(IOC)を監視する必要があります。
- メモリ制限エラーまたは繰り返されるHTTP 500応答が続く異常なマルチパートリクエスト。
- 異常に大きい、または不正な形式の
PHPSESSID応答Cookie。 - 説明のつかないPHPワーカーのチャーン。
防御側は、Wiz DefendおよびSensorによるエージェントレスおよびランタイムの脆弱性検出と悪用検出のための組み込みカバレッジについて、Wiz Threat Intel Centerアドバイザリを参照する必要があります。
Sources
関連
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch