これまでの経緯
PHPに2つの重大脆弱性が発覚:AIが発見に貢献
2026年10月21日、PHPのコア言語ランタイムにおいて、CVE-2026-109618とCVE-2026-109619という2つの極めて重大な脆弱性がWiz ResearchとPHPプロジェクトによって開示されました(Google Cloud Blog)。これらの脆弱性は、認証不要でリモートコード実行(RCE)やメモリ情報漏洩を引き起こす可能性があり、Common Vulnerability Scoring System (CVSS) の基本スコアはそれぞれ9.2と「Critical」に分類されています。
今回の脆弱性発見には、Google DeepMindのGemini 4 Argonを含むAIモデルが大きく貢献したとされており、エクスプロイト開発、攻撃検知、パッチ検証においてもその価値が示されたとのことです。
これはかなり衝撃的なニュースですね。AIが脆弱性発見に貢献する時代になったというのは、セキュリティエンジニアとして非常に興味深い点だと感じます。多くのWebサイトがPHPで動いていることを考えると、この脆弱性の影響は甚大ではないでしょうか(TechCrunch – AI)。
脆弱性の詳細と影響範囲
今回発見された2つの脆弱性は、PHPの内部的なリクエスト処理におけるメモリ管理の不備に起因しています。具体的には以下の通りです。
- CVE-2026-109618:メモリ不足処理中にPHPの内部リクエストデータが部分的にしか初期化されず、リクエストクリーンアップ時に無効なデータが有効として扱われる可能性があります。
- CVE-2026-109619:リクエストに紐づく内部状態が、その裏付けとなるメモリが解放された後も残存し、同じワーカーが処理する後続のリクエストで古い状態が使用される可能性があります。
影響を受けるバージョンは、PHP 5.4から8.5.11までのすべてのバージョンです。パッチが適用されたのはPHP 8.5.12、8.4.27、8.3.36、8.2.35です。残念ながら、すでにサポートが終了しているPHP 8.1以前のバージョンに対しては、PHPプロジェクトから修正は提供されません(Google Cloud Blog)。
米国国家安全保障局(NSA)も、この脆弱性の深刻さを警告しており、直ちにパッチを適用できない場合はWebサイトをオフラインにするべきだと伝えています(TechCrunch – AI)。
多くの組織にとって、これまでのPHPのアップデートはバージョンアップに伴う機能変更への対応が中心でしたが、今回は緊急のセキュリティ対応となります。ウェブサイトがオフラインになる事態も発生しており、影響の大きさを物語っていると感じます(9to5Mac)。
Google Cloudユーザーへの対応とパッチ適用ガイド
Google Cloud自体は今回の脆弱性の影響を受けませんが、Google Cloud上でPHPを利用しているユーザーは影響を受ける可能性があります。Google Cloudは、ユーザーが即座に対応できるよう、以下のガイダンスを提供しています。
| サービス | 推奨される対応 |
|---|---|
| App Engine Standard | サポートされているランタイムは自動的にパッチが適用されます。PHP 8.1以前を使用している場合は、PHP 8.2以降にアップグレードし、再デプロイが必要です。 |
| App Engine Flexible | サポートされているランタイムを使用してPHPアプリケーションを再デプロイします。カスタムランタイムを使用している場合は、PHPの依存関係をパッチ適用済みバージョンに更新し、アプリケーションを再デプロイしてください。 |
| Cloud Run | 自動ベースイメージアップデートを有効にしていない場合、または独自のコンテナイメージをデプロイしている場合は、パッチ適用済みのPHPバージョンでイメージを再ビルドし、再デプロイが必要です。 |
| Google Kubernetes Engine (GKE) | コンテナイメージをパッチ適用済みのPHPバージョンで更新し、Podを再デプロイしてください。 |
| Google Cloud Marketplace | CMSやLAMPスタックなど、PHPを含むソリューションを実行している場合は、ソリューションプロバイダからのアップデートを適用するか、PHPを直接更新してください。 |
Google Cloudのサーバーレスプラットフォーム(App Engine Standard/Flexible、Cloud Run、Cloud Functions for Firebase)では、サポート対象のPHPバージョン向けに更新されたベースイメージが自動的にロールアウトされます(Google Cloud Blog)。これにより、一部のユーザーは自動的に保護されることになりますが、手動での対応が必要なケースも多いため、自身の環境を改めて確認することが重要です。
エンジニア目線で見ると:旧バージョン利用と移行コストの現実
今回のPHPの脆弱性問題は、開発者にとって非常に大きな影響があると感じます。特にPHP 8.1以前のバージョンを利用している環境では、公式なパッチが提供されないため、PHP 8.2以降へのメジャーバージョンアップが必須となります。これは単なるバージョンアップではなく、言語仕様の変更や非推奨機能への対応、依存ライブラリの更新など、それなりの移行コストが発生するでしょう。
私自身、過去のプロジェクトで古いPHPバージョンから新しいバージョンへの移行を経験していますが、デグレの発生リスクやテスト工数を考えると、一筋縄ではいかないケースも少なくありません。特に大規模なアプリケーションや長年運用されているレガシーシステムでは、すぐにアップデートできない事情も理解できます。しかし、認証なしでリモートコード実行が可能になるという「Critical」な脆弱性であることを考えると、システムの停止を含めてでも対応を急ぐべきだと強く感じます。
また、NASデバイスなどインターネットに公開されている一部のデバイスも影響を受ける可能性があるとのことなので(AppleInsider)、Webサーバーだけでなく、PHPが組み込まれた様々なシステムへの注意が必要です。GCPに限らず、AWSなどのクラウドベンダーも同様の警告を出しており(Hacker News (API))、広範囲での対応が求められています。Claude Codeに手元のスクリプトを投げて、バージョンアップ時の影響範囲を洗い出すといった使い方も有効ではないでしょうか。