緊急PHP2Shell(CVE-2026-109618 / 109619)公表から1日。PHP 8.1 以前は修正版なし今すぐ診断
  1. ホーム
  2. ブログ
  3. PHP2Shell

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-FPMFPM のプールの設定(php_admin_value)
mod_php(Apache)Apache の設定(php_admin_value)
どちらでもphp.ini
効かない設定の仕方

ini_set() や FPM の .user.ini では効かない。エラーを隠す設定(error_reporting・display_errors・@)も効かない。設定を変えたら、すべてのワーカーを再起動する。

応急処置のあとにやること

  1. 修正版(8.5.12・8.4.27・8.3.36・8.2.35)への更新を計画する
  2. PHP 8.1 以前なら、8.4 か 8.5 への移行を計画する
  3. 更新が済んだら、応急処置の設定を元に戻すか見直す

よくある質問

応急処置だけで大丈夫?

大丈夫ではない。php.net も、完全に防げるのは更新だけとしている。応急処置は更新までのつなぎ。

`.user.ini` に書いたのに効かない

.user.ini や ini_set() では効かない。php.ini・FPM のプール・サーバーの設定に書き、すべてのワーカーを再起動する。

レンタルサーバーでも設定できる?

利用者が変えられないことが多い。その場合はサーバー会社の対応を待つか、修正の入った版に切り替える。

無料ツールPHP2Shell 脆弱性チェッカーPHP のバージョンとサーバー会社を選ぶだけで、危険度と今やることが分かります。

参考にした情報

この記事の情報

2026年10月22日時点の公開情報にもとづく。最新は php.net と、利用中のサーバー会社の告知を確認すること。

PHP のバージョンとサーバー会社を選ぶだけで、危険度と今やることが分かる。移行の相談もできる。

無料で診断する

この記事の著者

編集部