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

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