PHPは2026年10月20日(現地時間)、認証不要なリモートコード実行(RCE)の2つの深刻な脆弱性「CVE-2026-109618」と「CVE-2026-109619」を修正したと発表した。これらの脆弱性はCVSS v4スコア9.2と評価され、PHP 8.5.12、8.4.27、8.3.36、8.2.35で対応が施された。リクエストライフサイクルにおけるメモリ安全性バグであり、mod_php環境ではアプリケーションコードが実行される前に細工されたmultipart POSTリクエストによって到達可能となる。PHPは、脆弱性の完全な緩和策はなく、更新が唯一安全な選択肢であるとの見解を示している。
PHPは、これら2つの脆弱性について、8.5.12、8.4.27、8.3.36、8.2.35の各バージョンで修正を施した。PHP 8.1およびそれ以前のバージョンは、アップストリームのPHPプロジェクトによってすでにサポートが終了しているため、修正は提供されない。両脆弱性はリクエストライフサイクルにおけるメモリ安全性バグであり、特にmod_php環境ではアプリケーションコードが実行される前でも細工されたmultipart POSTリクエストにより攻撃可能となる。このため、アプリケーションコードの健全性にかかわらず、PHPバイナリがHTTPリクエストに応答するすべての環境が影響を受ける可能性がある。
脆弱なコードはインタープリターに存在するため、PHP開発者が関与したかどうかにかかわらず、インタープリターが取り込まれたすべての場所が影響範囲となる。一般的な組織では、公式の php:* ベースイメージ、Dockerfileに埋め込まれた apt install php8.x-fpm の行、WordPressやMatomoのような既製アプリのHelmチャート、Composerを実行するCIイメージ、2019年に構築され忘れ去られた管理ツールなど、多岐にわたる環境にPHPランタイムが存在する。これらのバージョンピンはそれぞれ異なる場所にあり、その特定がパッチ適用よりも困難な課題とされている。Sourcegraphは、Deep Searchを使用してコードベース内のあらゆるPHPランタイムを特定し、Agentic Batch Changesを用いて複数のリポジトリにわたる一括更新を推奨している。
PHPは完全な緩和策はなく、更新が唯一安全な選択肢であると強調している。影響を受けるシステムに対しては、インターネットに接続されたmod_phpを最優先でパッチ適用し、FPM、FrankenPHP、LSAPIがこれに続く。更新後にはすべてのワーカーを再起動する必要がある。また、ウェブユーザーが読み取れるデータベース認証情報、APIキー、クラウド認証情報など、すべての資格情報のローテーションを推奨。脆弱なサービスはすべて侵害されたとみなし、フォレンジックを実行し、イメージの再構築を行うべきとしている。PHP 8.1以前のサポート終了バージョンについては、パッチが提供されないため、公開インターネットから隔離するか、サポートされているブランチへの移行が促されている。
参考: Sourcegraph Blog — 2026年10月21日 09:00 (JST)
原文ハイライト"PHP patched two critical unauthenticated RCE bugs, CVE-2026-109618 and CVE-2026-109619."