Wiz Research、AIでPHPコアの未認証RCEを実証 最大CVSS 9.2

Wiz Researchは、PHPコアエンジンに10年以上存在した複数のメモリ安全性脆弱性(2 CVEにまとめた4事例、最大CVSS 9.2)を発見し、Wiz Atlas、Gemini 4 Argon、GPT-5.6 Solを使って未認証リモートコード実行(RCE)を実証しました。PHPチームは2026年10月21日に修正パッチを公開しています。

何が新しいか

脆弱性はアプリケーションではなくPHP自体にあり、アプリケーション側にコードの欠陥がなくても成立します。原文は「Hello World」程度のアプリでも脆弱になり得るとしています。根本原因は、リクエスト処理中に致命的エラー、特にメモリ不足(OOM)が起きたとき、壊れた内部状態がリクエスト終了後も残ることです。この状態を同じワーカーの後続リクエストが再利用します。Wiz Researchは複数の欠陥を連鎖させた単一のエクスプロイトスクリプト php2shell を作成しました。テスト時点の wordpress:latest、drupal:latest、joomla:latest コンテナで、認証前RCEを示しています。

脆弱性の内訳

ID バグ 実証内容
CVE-2026-109618 Upload-progress unserializer use-after-free、Remote process-memory disclosure 認証不要のPHPワーカーメモリ開示、WordPress・Drupal・Joomlaでの認証前RCE、アプリ非依存のリモートメモリ開示
CVE-2026-109619 Fatal-error backtrace use-after-free、OPcache type confusion Drupalでの認証前RCE、WordPressでの認証前RCE

メモリ開示の経路は次のとおりです。RFC1867 multipartリクエストの解析中にOOMでリクエストが中断されると、PS(id) が解放済み領域を指したまま残ります。後続リクエストでは、その領域の内容がURLエンコードされ、PHPSESSID レスポンスCookieとして返ります。session_start() を呼ばないアプリでも成立し、開示されるメモリには他リクエストのパスワード、認証トークン、APIキー、証明書が含まれ得ます。

影響範囲は、PHP 5.4以降を含む過去10年のほぼ全バージョンです。原文は、PHPが世界の全ウェブサイトの70%を支えているとしています。PHPのパッチは問題を根本で修正し、未追跡のものを含む同種のバリアントもパッチ適用済みリリースですべて解消するとされています。

対策と検知

  • 完全な対策は、PHPのセキュリティ更新の適用だけです。
  • 即時に適用できない組織向けに、Automattic、Akamai、AWS、Cloudflare、Fastly、Google、Imperva、Microsoft、Vercelなどがガイダンス、検知、標準の緩和策を用意しています。
  • 攻撃はアプリケーション層より下で発生するため、アプリのログには痕跡が残りにくくなります。調査の手がかりは次のとおりです。
  • 異常なmultipartリクエストに続くメモリ制限エラーや、繰り返すHTTP 500
  • 異常に大きい、または不正な PHPSESSID Cookie
  • 説明のつかないPHPワーカーの再起動

AIの役割

Wiz Researchによると、エクスプロイトはPHPのメモリ割り当てと再利用を踏まえ、標的ごとのメモリレイアウトに合わせて調整する必要があり、従来は人手の限界に近い作業でした。フロンティアモデルを使うことで、複数アプリ向けの動作するエクスプロイトを数時間で開発・適応できたと説明しています。中でもGemini 4 Argonは、発見、エクスプロイト開発、攻撃検知、パッチ検証に寄与したとしています。Google DeepMindはGoogleのAI研究開発組織で、Geminiモデル群を開発しています。発見、調整、パッチ検証には、PHPチーム、Calif、OpenAIも協力しました。

この記事の固有名詞

コメント (0)

まだコメントはありません。

コメントを書く

2000文字以内