緊急PHPに致命的な脆弱性(CVSS 9.2)。Ubuntu が修正パッケージを公開(USN-8948-1)。番号は 8.5.12 などにならない点に注意最新情報 ›
無料で相談する

PHP 8.1以前(サポート終了)を使い続けるリスクと、バージョンアップの進め方

公開:10/21 21:20更新 10/21 23:05(日本時間)Webセキュリティ診断センター 編集部
#PHP#WordPress#サポート終了
この記事の要点
  • PHP 8.1は2025年12月31日にサポートが終わりました。8.1以前のバージョンには、脆弱性が見つかっても公式の修正版が出ません。
  • 8.2も2026年12月31日に終わります。いま切り替えるなら、8.4か8.5が目安です。
  • バージョンを上げると、古いテーマ・プラグイン・独自のプログラムが動かなくなることがあります。検証環境で確かめてから本番を切り替え、戻し方も決めておきます。
  • 今のサーバーで新しいPHPを選べないときは、サーバーの引っ越しが必要です。

PHPのサポート期限

PHPは、バージョン(8.4、8.5などの系列)ごとにサポート期間が決まっています。php.netによると、最初のリリースから2年間は「アクティブサポート」で、報告されたバグとセキュリティの問題が定期的に修正されます。その後の2年間は、重大なセキュリティの問題だけを必要に応じて修正します[php.net]。合わせて約4年でサポートが終わります。

PHP 8.2から8.5のサポート期間と、7.4・8.0・8.1のサポート終了日を示すタイムライン
図1 PHPのサポート期限(php.netのSupported VersionsとUnsupported Branchesより)
バージョン最初のリリースアクティブサポート終了セキュリティサポート終了
8.52025年11月20日2027年12月31日2029年12月31日
8.42024年11月21日2026年12月31日2028年12月31日
8.32023年11月23日2025年12月31日2027年12月31日
8.22022年12月8日2024年12月31日2026年12月31日
8.12025年12月31日に終了(最終版8.1.34)
8.02023年11月26日に終了(最終版8.0.30)
7.42022年11月28日に終了(最終版7.4.33)

7.3以前もすべてサポートが終わっています(7.3は2021年12月6日、5.6は2018年12月31日に終了)[php.net]。自社サイトのバージョンが分からない場合は、「PHPのバージョンを確認する方法」を参考に確かめてください。

8.1以前を使い続けるリスク

脆弱性が見つかっても直らない

サポートが終わったバージョンには、セキュリティの修正もバグの修正も出ません。php.netは、終了したバージョンを使っている人に対し、新しいバージョンへの更新を強く勧めています。古いバージョンのままだと、新しいバージョンでは修正済みの脆弱性やバグにさらされるおそれがあるためです[php.net]。

サイトの見た目や動きに変化がないので、気づかないうちに危険な状態が続きます。WordPressやプラグインを最新にしていても、サーバーのPHPが古ければ、PHP本体の脆弱性は残ったままです。

今回のphp2shellでも、8.1以前は修正版の対象外

2026年10月21日、PHP公式は、認証なしで外部からプログラムを実行される(RCE)おそれのある脆弱性2件(CVE-2026-109618 / CVE-2026-109619)を直した修正版を公開しました。修正版はPHP 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35の4つです[php.net]。深刻度は、前日の予告で2件ともCVSS 4.0の9.2とされていました[php.net]。

8.1以前の修正版は出ていません。PHP公式は、8.1以前はPHPプロジェクトからの更新を受けられないと明記し、Linuxディストリビューションや長期サポートの事業者に問い合わせるか、サポート中のバージョンに上げるよう求めています。深刻度を考えて、7.4・8.0・8.1向けに最小限の修正(ソースのバックポート)も公開しましたが、これはソースから自分でビルドする人向けで、正式なリリースではありません[php.net]。海外の調査では、バージョンが分かる公開サーバーの59%が8.1以前だったと報じられています[abgeo.dev(Shodanのデータをもとにした調査の紹介)]。詳しくはphp2shellの解説記事をご覧ください。

WordPressも古いPHPを推奨していない

WordPressは、動作環境としてPHP 8.3以上を推奨しています。PHP 7.4以上の古い環境でも動きますが、公式のサポートが終わったPHPを使うと、セキュリティ上のリスクがあるとしています[WordPress.org]。

8.2も年内にサポート終了
8.2のセキュリティサポートは2026年12月31日で終わります[php.net]。8.1以前から上げるなら、8.2で止めずに8.4か8.5まで上げると、次の切り替えまでの期間を長く取れます。

バージョンアップで壊れやすいところ

PHPは、新しいバージョンで動きが変わったり、古い書き方が使えなくなったりします。php.netの移行ガイド(Migration Guide)には、バージョンごとの非互換(前のバージョンと同じようには動かない変更)と、非推奨(今は動くが警告が出て、将来は使えなくなる機能)が載っています。次の図は、その中から影響が出やすいものを抜き出したものです。

PHP 7.4から8.0、8.0から8.1、8.1から8.2、8.3から8.4で引っかかりやすい変更の例
図2 バージョンを上げると引っかかりやすい変更の例(php.netの移行ガイドより)

7.4 → 8.0:動きが変わる、使えなくなる関数がある

8.0 → 8.1:警告が増える、データベースまわりの動きが変わる

8.1 → 8.2:古いクラスの書き方に警告

8.3 → 8.4:引数の型の書き方に警告

非推奨の警告だけならサイトは動き続けますが、表示の設定によっては画面に警告が出ます。WordPress本体にも、新しいPHPに対応したバージョンが必要です。WordPressの開発チームの資料では、PHP 8.4にはWordPress 6.7から、8.5には6.9から対応しています[make.wordpress.org]。

サーバー会社のマニュアルにも、切り替え後のトラブルが載っています。ロリポップは、PHPの切り替え後にデータベースへの接続エラーが出た場合、データベースのパスワードの形式を変える必要があるとしています[ロリポップ!マニュアル]。KAGOYAは、PHP 5.6以降で既定の文字コードがUTF-8になったため、古いバージョンから変えると文字化けやレイアウトの崩れが起きることがあるとしています[KAGOYA FAQ]。

バージョンアップの進め方

いきなり本番のサイトで切り替えると、表示が崩れたり、フォームが送れなくなったりしたときに、すぐには直せません。次の順で進めます。

棚卸しとバックアップ、検証環境で切り替え、動作とログの確認、本番の切り替え、本番での確認の5段階と、切り戻し・引っ越しの流れ
図3 バージョンアップの進め方
  1. 棚卸しとバックアップ:今のPHPとWordPressのバージョン、使っているテーマとプラグインを書き出します。WordPressのサイトヘルスの「情報」タブで一覧を確認できます[WordPress.org]。ファイルとデータベースを丸ごとバックアップします。
  2. 検証環境で切り替える:本番と同じ内容のコピーを別の場所に作り、そちらでPHPを切り替えます。先にWordPress本体・テーマ・プラグインを新しいPHPに対応したバージョンに更新しておきます。
  3. 動作とログを確認する:トップページ、主要なページ、問い合わせフォームの送信、ログイン、管理画面、決済などを一通り試します。PHPのエラーログに、致命的エラーや非推奨の警告が出ていないかも見ます。不具合があれば、プラグインの入れ替えやプログラムの修正をして、もう一度確かめます。
  4. 本番を切り替える:アクセスの少ない時間帯に行います。サーバー会社によっては、切り替えのときにWebサーバーが数秒止まったり(KAGOYAは5秒ほど)、反映まで数分かかったり(ロリポップは5〜10分ほど)します[各社マニュアル]。
  5. 本番で同じ確認をする:検証環境で試した項目を、本番でもう一度確かめます。

切り戻しの方法を先に決めておく

本番で問題が出たときに戻す方法を、切り替える前に確かめておきます。さくらのレンタルサーバは、古いバージョンを選び直せば元の環境に戻せるとしています[さくらのサポート情報]。一方、ロリポップは、PHP 7.1未満から上げた場合は元に戻せないとしています[ロリポップ!マニュアル]。元に戻せない場合に備えて、バックアップと検証環境での確認がいっそう大切です。

ただし、サポートが終わったバージョンに戻すのは一時しのぎです。原因を直したら、改めて切り替えてください。

新しいPHPを選べないときは引っ越し

契約が古いサーバーやプランでは、新しいPHPを選べないことがあります。たとえばさくらのレンタルサーバでは、PHP 8.2を使うにはFreeBSD 11.1以降のサーバーである必要があります[さくらのサポート情報]。管理画面の選択肢に8.4や8.5がない場合は、まずサーバー会社に、新しいサーバーへの移行方法を確認します。

それでも難しい場合は、新しいサーバーに引っ越します。進め方はバージョンアップと同じです。新しいサーバーにPHP 8.4・8.5の環境を用意してサイトを移し、動作を確かめてから、DNS(ドメインとサーバーを結びつける設定)を切り替えます。古いサーバーは、新しいサーバーで問題がないと確かめるまで残しておくと、いざというときに戻せます。

よくある質問

8.1以前のままでも、今のところ問題なく動いています

見た目や動作に問題がなくても、新しく見つかった脆弱性は修正されません。今回のphp2shellのように、深刻な脆弱性が見つかっても公式の修正版が出ないので、打てる手がほとんどなくなります。

どのバージョンに上げればよいですか?

サポート期間が長い8.4(2028年12月31日まで)か8.5(2029年12月31日まで)が目安です。使っているプラグインやプログラムが対応しているかを確かめて選びます。

自社でプログラムを書いていないので、関係ありますか?

WordPressのテーマやプラグイン、制作会社が作った問い合わせフォームなどもPHPで書かれています。どれか一つでも新しいPHPに対応していないと、サイトの一部が動かなくなることがあります。

バージョンアップや引っ越しは、Webセキュリティ診断センターへ
検証環境での確認、プラグインやプログラムの修正、本番の切り替え、新しいサーバーへの引っ越しまでお受けします。無料相談はこちら

参考にした情報

貴社のサイトに合った対応をご案内します!
まずは、お気軽にご相談ください。

お問い合わせ・お見積りはこちら
無料で相談する最新情報を見る