PHP2Shell の応急処置|php.ini で今すぐできる設定(公式)
すぐに PHP を更新できないときに、php.net が公式に出している一時しのぎの設定をまとめた。効かない設定の仕方にも注意。
PHP をすぐに更新できないときのために、php.net は一時しのぎの設定を公開している。ただし公式も「完全に防げるのは更新だけ」としている。設定の中身と、効かない設定の仕方をまとめた。
この記事の要点
- 完全に防げるのは、修正版への更新だけ
- CVE-2026-109619 は
session.upload_progress.enabled=0が中心 ini_set()や.user.iniでは効かない。設定したら全ワーカーを再起動- レンタルサーバーでは、利用者が変えられないことが多い
CVE-2026-109619 への応急処置
session.upload_progress.enabled=0にして、すべてのワーカーを再起動- 設定は php.ini・FPM のプール・サーバーの設定で行う(
ini_set()や.user.iniでは効かない) - PHP 8.5 は
fatal_error_backtraces=0も設定して再起動 - エラーを隠す(
display_errorsや@)だけでは効かない
CVE-2026-109618 への応急処置
memory_limit=-1(FPM のプールか Apache の設定で。ほかの設定で上書きされないようにする)- アップロード不要なら
post_max_size = 8M、必要なら32M(upload_max_filesizeはそれより小さく) - Web サーバーやプロキシで、リクエストの大きさ・項目数・ヘッダー数・入れ子の深さを制限
- メモリの上限はコンテナや cgroup でかける(
RLIMIT_ASやRLIMIT_DATAは使わない)
設定する場所
| 動かし方 | 設定する場所 |
|---|---|
| PHP-FPM | FPM のプールの設定(php_admin_value) |
| mod_php(Apache) | Apache の設定(php_admin_value) |
| どちらでも | php.ini |
効かない設定の仕方
ini_set() や FPM の .user.ini では効かない。エラーを隠す設定(error_reporting・display_errors・@)も効かない。設定を変えたら、すべてのワーカーを再起動する。
応急処置のあとにやること
- 修正版(8.5.12・8.4.27・8.3.36・8.2.35)への更新を計画する
- PHP 8.1 以前なら、8.4 か 8.5 への移行を計画する
- 更新が済んだら、応急処置の設定を元に戻すか見直す
よくある質問
応急処置だけで大丈夫?
大丈夫ではない。php.net も、完全に防げるのは更新だけとしている。応急処置は更新までのつなぎ。
`.user.ini` に書いたのに効かない
.user.ini や ini_set() では効かない。php.ini・FPM のプール・サーバーの設定に書き、すべてのワーカーを再起動する。
レンタルサーバーでも設定できる?
利用者が変えられないことが多い。その場合はサーバー会社の対応を待つか、修正の入った版に切り替える。
無料ツールPHP2Shell 脆弱性チェッカーPHP のバージョンとサーバー会社を選ぶだけで、危険度と今やることが分かります。参考にした情報
- php.net(2026年10月21日のセキュリティ告知)
- php.net:Supported Versions
- php.net:Unsupported Branches
- php.net:付録(移行ガイド)
この記事の情報
2026年10月22日時点の公開情報にもとづく。最新は php.net と、利用中のサーバー会社の告知を確認すること。
PHP のバージョンとサーバー会社を選ぶだけで、危険度と今やることが分かる。移行の相談もできる。
無料で診断する