# AIが発見したPHPコアの10年放置ゼロデイ「PHP2Shell」緊急パッチ

> OpenAIとセキュリティ研究チームが最先端AIモデルを使い、PHPコアに10年以上潜んでいたRCE脆弱性2件（CVE-2026-109618・109619）を発見した。PHP 8.2〜8.5への緊急アップデートが必要だ。

- URL: https://roobrief.com/ja/posts/php2shell-zero-day-rce
- Language: ja
- Published: 2026-10-26T05:30:00.000Z
- Tags: dev
- Source: https://thephp.foundation/blog/2026/10/21/php-security-update/

**最先端AIモデルがPHPコアエンジン内に10年以上放置されていたリモートコード実行ゼロデイ2件を発見し、アプリ側の防御策に関係なくランタイム自体の即時更新が求められている。**

PHP開発チームとThe PHP Foundationは10月21日、PHPランタイムに存在する致命的なリモートコード実行（RCE）の脆弱性2件を修正する緊急セキュリティパッチをリリースした。「PHP2Shell」と名付けられた今回の脆弱性はCVE-2026-109618とCVE-2026-109619で、いずれも深刻度を示すCVSS v4.0スコアで最高水準の9.2（Critical）と評価されている。認証を受けていない遠隔の攻撃者が細工したHTTPリクエストを送るだけで、Webサーバーの実行権限を奪える状態だ。

今回の欠陥は人間による監査ではなく、セキュリティ研究者が最先端AIモデルを低レイヤーのC言語コード解析に投入して発掘した。最先端AI（Frontier AI）は最も高性能なAIモデルを指す。

## 最先端AIが暴いた10年前からのPHPコア欠陥

今回の脆弱性は、セキュリティ企業のCalifとクラウドセキュリティ会社のWizがそれぞれ独自に発見し、2026年8月に非公開で報告していた。Califの研究チームは、OpenAIの最新モデルであるGPT-5.6 Solを静的コード解析とメモリ安全性検証に活用して欠陥を突き止めた。

OpenAIはこの発見を機に、インフラ防衛プロジェクト「Patch the Planet」を本格始動させた。AIによる脆弱性検知能力が悪意ある攻撃者の悪用速度を上回るよう、発見直後からThe PHP Foundationや主要クラウド事業者と事前調整を進めて防衛網を敷く取り組みだ。

2件の欠陥は、PHP 5.4の時代から最新のPHP 8.5に至るまで10年以上にわたりコアコード内に潜んでいた。複雑なエラー処理やグローバル状態の管理ロジックの奥深くに存在していたため、従来のファジングツールや人間のレビューでは長年見逃され続けてきた。

## OOM破壊とグローバル状態の残存：2つの脆弱性の仕組み

公表された2件の脆弱性は、いずれもPHPインタープリターのメモリ管理とエラー復旧機構の弱点を突いている。

1つ目の**CVE-2026-109618**は、メモリ上限超過（OOM）処理に起因する。PHPはスクリプト実行中にメモリ制限（`memory_limit`）に達すると、`longjmp()`を呼び出して処理を中断しリクエストの破棄に進む。しかし、マルチパートフォームやファイルアップロードの解析処理の途中でメモリ不足が発生すると、内部データ構造が中途半端に初期化された状態で終了処理に渡ってしまう。終了ロジックが未初期化の無効なポインターを正常なメモリ領域と誤認して操作することでヒープ破壊が生じ、攻撃者はこれを利用して実行フローを奪うことができる。

2つ目の**CVE-2026-109619**は、リクエスト間でのグローバル状態の汚染に関わる。PHPコアは高速化のため、一部のグローバルポインターがリクエスト固有のメモリ領域を一時的に参照する設計になっている。しかし致命的なエラーが発生した際にこのポインターが適切に破棄されず、すでに解放されたメモリを指し続けるUse-After-Free（解放後メモリ参照）の欠陥が生じる。同じワーカープロセスが次のリクエストを処理する際、この残存ポインターを参照することでメモリ破壊が引き起こされ、リモートコード実行やプロセスメモリの漏えいにつながる。

## サーバー環境別の影響とEOLバージョンの深刻なリスク

今回の脆弱性の最大の落とし穴は、Webアプリケーション側ではなく**PHPインタープリターそのものの欠陥**である点だ。WordPressやLaravelなどのフレームワークを採用し、どれほど入力検証を徹底してSQLインジェクション対策を講じていても、WebサーバーがリクエストをPHPエンジンに渡した瞬間に攻撃が成立してしまう。

運用環境によってリスクの現れ方は異なる。
* **Apache mod_php**：最も危険な構成だ。プロセスの隔離なしにWebサーバーのメモリ空間内でPHPが動作するため、外部からのリクエストだけで即座にデーモン権限を奪われる恐れがある。
* **PHP-FPMおよびFastCGI**：通常、ワーカープロセスを複数のリクエストで再利用する。攻撃者が意図的にメモリ枯渇を起こしてワーカーを汚染し、続くリクエストでシェルを奪う多段攻撃の標的となる。

さらに深刻なのがバージョンごとのサポート状況だ。

| ブランチ | 状態 | パッチ適用済みバージョン |
|---|---|---|
| PHP 8.5 | アクティブ | **8.5.12** |
| PHP 8.4 | アクティブ | **8.4.27** |
| PHP 8.3 | セキュリティ対応のみ | **8.3.36** |
| PHP 8.2 | セキュリティ対応のみ | **8.2.35** |
| PHP 8.1以前 | サポート終了（EOL） | **公式パッチなし** |

世界中のWebサイトのかなりの割合が、すでに公式サポートが終了したPHP 7.xや8.0、8.1を稼働させている。これらの古い環境には公式のアップストリームパッチが提供されないため、現在サポートされているバージョンへ移行しない限り、恒久的な攻撃対象として残り続ける。

## パッチ適用の優先順位と運用時の対策

米国土安全保障省のCISAをはじめとする各国のセキュリティ機関は、インターネットに公開されたすべてのPHPサーバーへの即時パッチ適用を強く呼びかけている。インフラ管理者とエンジニアは次の3点に直ちに取り組む必要がある。

1. **ランタイムパッケージの即時更新**：OSのパッケージ管理ツールやDockerベースイメージを通じて、各ブランチの修正版（8.5.12、8.4.27、8.3.36、8.2.35）へ早急にアップデートする。
2. **EOLバージョンの隔離と移行**：PHP 8.1以前を使用しているシステムは、計画を前倒ししてバージョン移行に着手する。即時更新が難しい場合は、WAFで不審なマルチパートリクエストや過大なファイルアップロードを厳格にブロックし、外部からの到達経路を絞り込む。
3. **ワーカー再利用の制限**：PHP-FPMの暫定策として、設定ファイルで`pm.max_requests`を1または極めて小さい値に設定する。リクエスト処理ごとにワーカーを強制再起動させることで、グローバルポインター汚染（CVE-2026-109619）による2次被害のリスクを回避できる。ただし、プロセスの再生成負荷による性能低下には留意が必要だ。

## 今後の注目点

今回の事例は、最先端AIを用いた脆弱性探索が研究室の枠を飛び越え、基盤ソフトウェアのセキュリティ防衛を大きく塗り替え始めたことを物語る。何十年にもわたり多くの監査担当者が見落としてきたC言語のメモリ欠陥をAIが洗い出し、ソフトウェアサプライチェーンが一丸となって緊急パッチを打つ体制が整った。

しかし同時に、攻撃側も同等のAIモデルを武器にオープンソースのゼロデイを大量に発掘し始めるリスクが現実のものとなっている。AIによって急加速する脆弱性発見のスピードに対し、オープンソースコミュニティが防衛のペースを維持できるかどうかが、今後のソフトウェアエコシステムの正念場となる。

## 出典

- [Security Update: Remote Code Execution Vulnerabilities Fixed](https://thephp.foundation/blog/2026/10/21/php-security-update/) (The PHP Foundation)
- [Patch the Planet: Securing Critical Open-Source Infrastructure with Frontier AI](https://openai.com/index/patch-the-planet/) (OpenAI)
- [PHP2Shell: Technical Deep-Dive into CVE-2026-109618 and CVE-2026-109619](https://calif.io/blog/php2shell-cve-2026-109618) (Calif)
