PHPは安全ですか?言語そのものと、使っているバージョンの違い
PHPの開発元は、PHPの各バージョンを4年間サポートし、その後はセキュリティの問題を修正しません。そのため、自分のサイトにとってPHPが安全かどうかは、言語そのものよりも、サイトがどのバージョンで動いていて、それが修正済みかどうかで決まります。この記事は2026年10月23日時点の情報です。
要点
PHPは、開発元がまだサポートしているバージョンを最新のリリースに更新して使っていれば安全に使えます。2026年10月23日時点では、PHP 8.2、8.3、8.4、8.5のそれぞれ8.2.35、8.3.36、8.4.27、8.5.12以上です。サポートが終わったバージョンには、開発元のセキュリティ修正が出ません。 なお、関連するものの、ずっと小さな問題について、PHPの開発元は10月23日の情報提供のアドバイザリで、実際には起こりにくいとしたうえで、次の通常のバグ修正リリースまでの間、セッションのアップロード進捗機能を無効にするよう勧めています(詳しくはPHPの脆弱性「PHP2Shell」とは)。
PHPという言語そのものは安全ですか?
PHPマニュアルは、この点を率直に書いています。セキュリティの章の「はじめに」によると、PHPはファイルにアクセスしたり、コマンドを実行したり、ネットワーク接続を開いたりできるため、デフォルトではWebサーバー上でセキュリティ上の問題を生じる可能性があります。一方で、設定オプションを正しく選び、適切なコードを書けば、必要な自由度とセキュリティを両立できるとも書いています。
つまり、言語は道具で、サイトがどれだけ安全かは、設定と更新の状態によります。マニュアルは、環境の構築方法やセキュリティのレベルは「PHPの開発者に大きく依存しています」と書いています。個人のサイトなら、その作業はたいてい、自分、レンタルサーバー会社、WordPressなどサイトのソフトウェアを作っている側で分担しています。PHPがサイトで何をしているのかがよくわからない場合は、PHPとはから読んでみてください。
言語と「使っているバージョン」はどう違うのですか?
PHPには8.3や8.4といったブランチ(系列)があり、それぞれに8.3.36のような番号付きの小さなリリースが出て、修正が届けられます。「PHPは安全か」を考えるときに役立つのは、自分の系列がまだサポートされているか、そしてその系列の最新リリースを使っているか、という問いです。
PHPの「Supported Versions」ページによると、各系列は最初の安定版から2年間は全面的にサポートされ、その後2年間は重大なセキュリティ問題の修正だけが出ます。4年が過ぎるとサポート終了です。2026年10月23日時点で、このページは8.2、8.3、8.4、8.5をサポート中としていて、8.2のセキュリティ修正は2026年12月31日に終わります。一覧表はphp.netのSupported Versionsページにあります。
古い系列を使っている場合の選択肢は、PHPのサポート終了と8.1以前の選択肢にまとめています。
なぜセキュリティ更新がそれほど大事なのですか?
見つかって修正された弱点も、修正を入れていないサーバーでは開いたままだからです。PHPの「Supported Versions」ページは、サポートが終わったリリースの利用者は修正されていない脆弱性にさらされるおそれがあるので、できるだけ早くアップグレードするべきだとしています。
イギリスのNCSCも、ソフトウェア全般について同じことを言っています。個人向けの助言では、セキュリティ更新をすぐに適用することが、サイバー犯罪者から端末やアカウントを守るのに役立つとしています。組織向けの指針でも、更新はできるだけ早く、できれば自動で適用することを基本にしています。
ウェブサイトの場合、更新が必要なのはサーバーのPHP(レンタルサーバー会社が管理していることが多い)と、その上で動くサイトのソフトウェアやプラグインの両方です。片方を最新にしても、もう片方は最新になりません。
PHP2Shellからわかることは?
2026年10月21日、PHPの開発元は2件の重大な脆弱性を修正しました。アメリカのCISAやIPAによると、この2件は「php2shell」(PHP2shell)と呼ばれています。修正版が出たのは、サポート中の4つの系列だけです。アドバイザリには、PHP 8.1以前には開発元からの更新はもう提供されないと書かれていて、古い系列の利用者は、提供元による修正の取り込みに頼るか、サポート中の系列に移るしかありません。JPCERT/CCも、8.1以前はアップデートが提供されないため、サポートされているバージョンへのアップグレードが推奨されているとしています。脆弱性の詳しい説明はPHPの脆弱性「PHP2Shell」とはをご覧ください。
自分のサイトがサポート中で修正済みのバージョンか、どう確かめますか?
サイトが動いているPHPの正確なバージョンを調べ、サポート中の系列と、その系列の最新の修正版と比べます。自分で数字を見つけられなければ、レンタルサーバー会社に聞けば教えてもらえます。
WordPressやレンタルサーバーの管理画面のどこを見ればよいか、サーバー会社に何を聞けばよいかは、PHPのバージョン確認方法で説明しています。バージョンを変える必要があれば、WordPressのPHPを更新する方法で、バックアップから順に説明しています。
よくある質問
2026年でもPHPは安全に使えますか?
はい、サポート中で修正済みのバージョンなら使えます。2026年10月23日時点で、PHPの「Supported Versions」ページは8.2、8.3、8.4、8.5をサポート中としています。8.2より古い系列はサポートが終わっていて、修正されていない脆弱性にさらされるおそれがあるとされています。
PHP 8.2は安全ですか?
8.2系の修正版は8.2.35ですが、PHPの「Supported Versions」ページによると、8.2のセキュリティ修正は2026年12月31日で終わります。何を準備すればよいかはPHPのサポート終了と8.1以前の選択肢で説明しています。
PHPのサイトを見るだけで、自分のパソコンが危険になりますか?
PHPはウェブサーバーで動くもので、閲覧者の端末では動きません。PHP2Shellのアドバイザリも、ウェブのリクエストを処理しているPHPが対象だとしています。直すのはサイト運営者です。閲覧者の側で気をつけることは改ざんされたサイトを見ただけで感染しますかで説明しています。
PHPが最新なら、サイトは安全ですか?
それだけでは足りません。PHPマニュアルによると、PHPの環境の安全性は設定やコードの書き方にも左右されます。WordPressなどのサイトのソフトウェア、テーマ、プラグインにもそれぞれ更新が必要で、サーバーまわりはレンタルサーバー会社の担当です。
レンタルサーバーのPHPは誰が更新するのですか?
レンタルサーバー会社のことが多く、管理画面から自分で切り替える場合もあります。JPCERT/CCは、PHPを使う製品やLinuxディストリビューションが提供するPHPも影響を受ける可能性があるので、提供元の情報もあわせて確認するよう求めています。担当がわからなければ、サイトがどのバージョンで動いていて修正版になっているか、サーバー会社に聞いてください。対応済みと言われた後にやることはレンタルサーバーがPHPの脆弱性に対応済みと言っている場合にまとめています。
出典
- Supported Versions, PHP
- はじめに(セキュリティ), PHP マニュアル
- Security advisory: Critical remote code execution vulnerabilities, update now, PHP(2026年10月21日)
- PHPにおける複数の脆弱性(CVE-2026-109618、CVE-2026-109619)に関する注意喚起, JPCERT/CC
- PHPの脆弱性対策について(CVE-2026-109618、CVE-2026-109619:PHP2shell), IPA
- Critical vulnerabilities in PHP require immediate patching, CISA
- Install the latest software and app updates, NCSC
- Vulnerability management guidance, NCSC