PHPは2026年10月23日、特定のセッション設定とアプリのコードが重なると、リモートコード実行(RCE)につながる可能性があると告知しました。識別番号はCVE-2026-115560です。
10月21日に緊急修正された、通称PHP2Shellの問題とは別の問題です。PHPはまれな構成で起きるとして、次回の通常バグ修正リリースで詳しい告知を出す方針です。影響する版と修正版の具体的な番号は、まだ示されていません。
影響するのは3つの条件が重なる場合
PHPが示した成立条件は、次の組み合わせです。
- 設定上の
session.serialize_handlerがphp_binaryまたはphp_serializeになっている。 - アプリが
ini_set()でこの設定をphpに変えてから、session_start()を呼び出す。 session.upload_progress.enabledが有効になっている。
実行中にシリアライザーを変更しないアプリは、この告知を理由に進捗追跡機能を無効にする必要はないとPHPは説明しています。該当するか調べるには、設定ファイルに加え、session_start()の前にシリアライザーを変更するコードがあるかを確認します。
回避策はアップロード進捗の追跡を無効にすること
PHPは次回の通常バグ修正リリースまで、次の設定でアップロード進捗の追跡を無効にするよう勧めています。
session.upload_progress.enabled=0
同じ設定は、PHP2ShellのうちCVE-2026-109619への回避策にも含まれていました。PHPは、すでに適用していれば維持するだけで追加操作は不要としています。
同じ回避策を示した10月21日の告知では、設定がリクエストの解析より前に反映されるよう、php.ini、PHP-FPMのプール設定、Webサーバー設定のいずれかで変更し、全ワーカーを再起動するよう案内しています。ini_set()やFPMの.user.iniには頼らないとしています。無効化すると、セッションを使うアップロード進捗表示は動作しなくなります。

コメント