暫定対策は完全ではありません
すべての変体を解決するのは完全な修正です。設定変更はアップロード、性能、可用性に影響します。解析前に管理設定で適用し、全ワーカーを再起動します。両公式資料を確認してください。CDN や WAF は修正の証明になりません。
メモリ設定は慎重に
memory_limit=-1 は PHP 制限に起因する一部 OOM のみを軽減し、OS の割当失敗は残ります。独立したコンテナや cgroup 制限を用意し、RLIMIT_AS と RLIMIT_DATA は使わないでください。デコード後サイズ、multipart ヘッダー、パーツ、深さを制限します。post_max_size のみでは不十分です。
進捗とバックトレース
解析前に session.upload_progress.enabled=0 を適用し再起動します。PHP 8.5 の fatal_error_backtraces=0 は確認済み経路のみを除きます。早期診断を出す無効な INI 設定を除去します。display_errors、error_reporting、@ は問題を防ぎません。すべての変体には対応しません。
実行経路ごとの一時対策
パッチが優先です。それまで要求解析前の管理設定で session.upload_progress.enabled=0 を強制して再起動します。PHP 8.5 の fatal_error_backtraces=0 は別経路を減らします。復号後の要求サイズ、multipart 部品/ヘッダー、入力深度を早期に制限し、正常なアップロードを試験します。エラー表示やログを止めるだけでは診断経路を防げません。
PHP2Shell ツール →メモリー制限と再利用の限界
管理設定の memory_limit=-1 が除くのは一部の OOM 経路のみです。独立した cgroup/コンテナー制限、アプリによる有限値の復元禁止、再起動が必要です。RLIMIT_AS と RLIMIT_DATA は使わないでください。割当失敗が同じ脆弱経路に入ります。pm.max_requests=1 も一部の状態再利用を高い負荷で減らすだけで、両パッチの代わりにはなりません。
PHP2Shell ツール →コマンド例 / PHP INI
; Temporary measures only. Follow both PHP advisories.
; Apply administratively BEFORE request parsing, then restart workers.
session.upload_progress.enabled = 0
; PHP 8.5 only:
fatal_error_backtraces = 0
; memory_limit = -1 is NOT a complete fix.
; It needs independent OS/container resource containment.
; Never substitute RLIMIT_AS or RLIMIT_DATA.