PHPの開発におけるセキュリティ担当チームは10月21日、認証を必要としないリモートコード実行(RCE)につながる可能性がある2件の重大な脆弱性を修正したセキュリティリリースを公開した。対象となる脆弱性は「CVE-2026-109618」と「CVE-2026-109619」で、同チームはすべての利用者に対しただちに更新するよう強く呼び掛けている。
修正版は4バージョン
今回公開された修正版は以下の4バージョン。
- PHP 8.5.12
- PHP 8.4.27
- PHP 8.3.36
- PHP 8.2.35
いずれも同じ脆弱性に対応したセキュリティリリースとなる。
影響を受ける環境と深刻度
PHP開発チームによると、影響を受けるのはWebリクエストを処理するすべてのPHP環境で、PHP-FPM、Apacheのmod_php、php-cgi、FrankenPHP、LiteSpeedなどが含まれる。特にmod_php環境については、認証されていないリクエストによってアプリケーションコードが実行される前に攻撃を成立させる実証済みのエクスプロイトが確認されており、最も高いリスクがあるとしている。
メモリ管理に起因する2件の重大脆弱性
1件目の「CVE-2026-109618」は、メモリ不足(Out of Memory:OOM)発生時の処理に起因する脆弱性。PHPの内部リクエストデータが完全に初期化される前にメモリ不足が発生すると、要求終了時のクリーンアップ処理が不正なデータを有効なものとして扱う可能性があり、結果としてリモートコード実行につながる恐れがある。
もう1件の「CVE-2026-109619」は、リクエスト処理後に残存するグローバル状態に起因するもの。本来解放されるべきメモリに紐付いた内部状態が残存し、同じワーカープロセスで後続リクエストが処理された際に初期化前の古い状態が参照されることで、リモートコード実行につながる可能性がある。
唯一の対策は更新のみ
PHPの開発チームは、これらの脆弱性に対する完全な緩和策は存在せず、安全性を確保する方法は更新のみだと説明している。Linuxディストリビューションおよび長期サポート(LTS)ベンダーには事前に修正パッチを提供済みとしており、パッケージ利用者は各ベンダーが提供する最新版パッケージを確認するよう求めている。
また、PHP 8.1以前はプロジェクトによる公式サポートを終了しているが、今回の脆弱性の深刻さを考慮し、PHP 7.4、PHP 8.0、PHP 8.1向けに最小限のバックポート修正コードも公開した。ソースコードからビルドする利用者やLTSベンダーを利用できない環境向けの措置としている。
即時更新できない場合の暫定対策も提示
開発チームは、更新できない場合の暫定的なリスク低減策も公表している。CVE-2026-109618については、memory_limitやpost_max_sizeの設定見直し、コンテナやcgroupを活用したリソース制限などを挙げている。一方、CVE-2026-109619については、session.upload_progress.enabled=0の設定やPHP 8.5環境でのfatal_error_backtraces=0設定などを推奨している。
ただし同チームは、これらは特定の攻撃経路に対する露出を減らすための対症療法に過ぎず、システムを安全な状態にはできないと強調している。なお、PHP 8.2系は2026年12月31日にサポート終了(EOL)を迎える予定で、PHP 8.2.35が最後のセキュリティアップデートの1つとなる見込みだ。開発チームは併せてサポート対象バージョンへの移行計画を進めるよう呼び掛けている。