kensaurus

フィールドノート · セキュリティ

PHPの重大な脆弱性 php2shell:対象と今日やること、そして年末の期限

2026年10月21日に修正版が出たPHPの脆弱性(CVE-2026-109618、CVE-2026-109619)。対象のバージョン、今日やること、すぐ更新できないときの暫定策、12月31日に終わるPHP 8.2のサポートをまとめました。

櫻元賢次 · kensaurus合同会社 ·

2026年10月22日時点の情報です。新しい公表があれば、このページを更新します。

何が起きたか

2026年10月21日、PHPの開発チームが、重大な脆弱性2件(CVE-2026-109618 と CVE-2026-109619)を直した修正版を公開しました。通称は「php2shell」です。深刻度はどちらも CVSS v4.0 で 9.2。ログインしていない第三者が、外からサーバー上で任意のコードを動かせるおそれがあります。

修正版の公開前、10月20日に情報が外に漏れ、PHPは同じ日の夜に予告を出しました。修正版は日本時間の21日22時40分ごろに出ています。

対象になるバージョン

今日やること

  1. 本番で動いているバージョンを確かめる。サーバーで php -v を打って出るのはコマンドライン用のPHPで、ウェブで動いているPHPと違うことがあります。レンタルサーバーなら管理画面、自社サーバーなら PHP-FPM や Apache の設定で、ウェブ側のバージョンを確認してください。
  2. 8.2〜8.5なら、修正版へ上げる。Linuxディストリビューションや延長サポートの提供元には事前に修正が渡されています。使っているパッケージの更新を確認してください。
  3. すぐ上げられないときは、暫定策を入れる。PHPの公式の案内では、session.upload_progress.enabled=0 を php.ini か FPM のプール設定に書いてワーカーをすべて再起動すること、memory_limit=-1 をアプリから上書きできない形(php_admin_value)で設定すること、post_max_size を小さくすること、8.5では fatal_error_backtraces=0 にすることなどが挙がっています。ini_set() や .user.ini では効きません。PHPは、暫定策は一部の経路を塞ぐだけで、完全な対策は更新だけだとしています。
  4. 8.1以前なら、今をしのぎつつ移行の計画を立てる。バックポートや提供元の修正で穴をふさぎ、そのうえでサポート中のバージョンへ移る順番を決めます。
  5. 入られていないかを確かめる。修正前に情報が出回っていたため、アクセスログ、見覚えのないファイル、サーバーに与えている権限を確認してください。

もうひとつの期限:PHP 8.2 は年末で終わる

PHP 8.2 のセキュリティサポートは 2026年12月31日で終わります。今日 8.2.35 に上げても、年明けからは次の脆弱性が見つかっても修正版は出ません。8.3(2027年末まで)か 8.4(2028年末まで)へ上げる準備を、いまから始める必要があります。

古いPHPはまだ多く使われています。W3Techs の集計(2026年8月22日時点、世界のウェブサイト)では、PHPを使うサイトのうち PHP 7 が 28.9%、PHP 5 が 7.9% でした。

kensaurus がお手伝いできること

古いPHPのシステムを、止めずに一段ずつ新しくする仕事を引き受けています。今のバージョンと構成の確認、修正版の適用や暫定策の設定、サポート中のバージョンへのアップグレード、必要な部分だけ新しい構成へ移す作業です。進め方はこちらのページに書きました。

攻撃の手順や検証用のコードは、このページでもご相談の中でも扱いません。

出典(2026年10月22日に確認)

kensaurus について