「PHPに重大な脆弱性が見つかった」「CVE-2026-109618への対応が必要」など、セキュリティ関連のニュースを見かけることがあります。
こうしたニュースを見ても、PHPでプログラムを開発している人でなければ、自分には関係のない話だと思うかもしれません。
しかし、PHPはWebサイトの裏側で広く使われているプログラミング言語です。WordPressでブログを運営している人や、会社のホームページを管理している人にとっても、無関係とはいえません。
そもそも、プログラミング言語に脆弱性があるとはどういうことなのでしょうか。ニュースに出てくるCVEという番号は何を表しているのでしょうか。
今回のPHPの脆弱性を例に、セキュリティの専門知識がない人にも分かるように解説します。
そもそも脆弱性とは何なのか?
Webサイトやアプリを使っていると、アップデートのお知らせが届くことがあります。新機能の追加や使い勝手の改善が目的の場合もありますが、セキュリティ上の問題を修正するために更新が提供されることも少なくありません。
その修正対象になるものの一つが「脆弱性」です。
脆弱性はソフトウェアに存在するセキュリティ上の弱点
脆弱性とは、ソフトウェアやシステムに存在する、攻撃者に悪用される可能性のある弱点のことです。
例えば、自宅の玄関に鍵をかけていても、窓の鍵が壊れていれば、そこから侵入されるかもしれません。
コンピューターの世界でも似たことが起こります。
ソフトウェアは、人間が書いた (※最近はAIが書くことも多くなっています) プログラムによって動いています。そのプログラムに設計上のミスや処理の不具合があり、外部から悪用できる状態になっていると、情報を盗まれたり、本来許可されていない操作をされたりする可能性があります。
これが脆弱性です。
ただし、プログラムに不具合があれば、すべて脆弱性と呼ばれるわけではありません。例えば、画面の表示が少し崩れるだけなら、通常は単なる不具合です。一方、その不具合を利用して他人のデータを読み取れるのであれば、セキュリティ上の問題になります。
脆弱性を悪用されると何が起こるのか?
脆弱性の内容によって、発生する被害は異なります。
例えば、ログイン処理に問題があれば、攻撃者が正規の利用者になりすましてシステムに侵入する可能性があります。また、データの取り扱いに問題があれば、本来見られないはずの情報を読み取られることもあります。
サーバー上でプログラムを実行できる脆弱性の場合は、さらに深刻です。攻撃者がサーバーを不正に操作し、保存されている情報を盗んだり、Webサイトの内容を書き換えたりするおそれがあります。
セキュリティニュースで「深刻な脆弱性」と表現されるのは、こうした被害につながる可能性があるためです。
なお、脆弱性が見つかったからといって、すぐに被害が発生するわけではありません。攻撃者がその弱点を悪用できること、対象のシステムが影響を受ける状態にあることなど、いくつかの条件が関係します。
CVEとは?脆弱性に付けられる共通の識別番号
脆弱性のニュースでは、「CVE-2026-109618」のような英数字を見かけます。
これは、脆弱性を識別するための番号です。
CVEは世界共通で使われる脆弱性の管理番号
CVEは「Common Vulnerabilities and Exposures」の略で、公開された脆弱性を識別するために使われます。
脆弱性は世界中のソフトウェアで発見されます。ある企業が発見した問題について、別の企業やセキュリティ研究者も調査することがあります。そのとき、同じ脆弱性をそれぞれ違う名前で呼んでいたら、情報の共有が難しくなります。
そこで、脆弱性ごとに共通の識別番号を付けています。
例えば、今回のPHPの問題には、次のCVE番号が割り当てられています。
- CVE-2026-109618
- CVE-2026-109619
この番号を使えば、開発者やシステム管理者、セキュリティ企業などが、同じ問題について情報を共有できます。
CVE番号は、脆弱性を特定するための管理番号だと考えると分かりやすいでしょう。
CVE番号を見れば危険度まで分かる?
CVE番号そのものから、脆弱性の危険度を判断することはできません。
そこで使われるのが「CVSS」という評価指標です。
CVSSは、脆弱性が悪用された場合の影響や、攻撃の難しさなどをもとに、深刻度を数値で表したものです。
一般的に、CVSSのスコアは次のように分類されます。
| CVSSスコア | 深刻度 |
|---|---|
| 0.0 | なし |
| 0.1~3.9 | 低 |
| 4.0~6.9 | 中 |
| 7.0~8.9 | 高 |
| 9.0~10.0 | 緊急 |
今回のPHP2shellに関係する2つの脆弱性は、CVSSでそれぞれ9.2と評価されています。深刻度の分類では「緊急」に該当します。
CVEとCVSSは名前が似ていますが、役割は違います。
- CVE: どの脆弱性なのかを特定する番号
- CVSS: その脆弱性の深刻度を示す評価
セキュリティニュースを読むときは、この2つを区別しておくと内容を理解しやすくなります。
なぜプログラミング言語にも脆弱性が見つかるのか?
今回のニュースで少し不思議に感じるのが、PHPというプログラミング言語そのものに脆弱性が見つかったという点ではないでしょうか。
プログラミング言語は、Webサイトやアプリを作るためのものです。その言語自体に問題があるというのは、どういうことなのでしょうか。
プログラムを書くだけでは、コンピューターは動かない
例えば、PHPを使ってWebサイトを作る場合、開発者はPHPのルールに従ってプログラムを書きます。
しかし、PHPで書かれた命令をコンピューターがそのまま理解できるわけではありません。
PHPのプログラムを読み取り、内容を解釈して実行するための仕組みが必要です。この仕組みを「実行環境」や「ランタイム」と呼びます。
つまり、PHPを利用するシステムには、開発者が書いたプログラムだけでなく、それを動かすためのソフトウェアも存在しているのです。
この実行環境も、人間が開発したソフトウェアです。当然、プログラムの書き方や処理の方法に問題が見つかることがあります。
PHPの脆弱性という場合、PHPで作られた個々のWebサイトに問題があるとは限りません。PHPのプログラムを実行する側の仕組みに問題があるケースもあります。
共通して使われる仕組みに問題があると、影響する範囲も広くなる
この違いは、自動車に例えると分かりやすいかもしれません。
ある自動車の特定の部品に不具合が見つかった場合、影響するのはその部品を使っている車種や製造時期に限られるかもしれません。
しかし、多くの自動車に共通して使われている部品に問題があれば、影響する車両は一気に増えます。
ソフトウェアも同じです。
個別のWebサイトに問題があれば、そのサイトだけの問題で済む場合があります。一方、PHPの実行環境そのものに脆弱性があれば、同じ仕組みを使っている複数のWebサイトやシステムが影響を受ける可能性があります。
PHPの脆弱性が大きなニュースになる理由の一つは、ここにあります。
PHPの脆弱性が見つかると、なぜ多くのWebサイトに影響するのか?
PHPは、WebサイトやWebアプリケーションの開発で広く利用されているプログラミング言語です。
その代表例がWordPressです。
WordPressもPHPを使って動いている
WordPressは、ブログや企業サイトなどを作成・管理するためのCMS(コンテンツ管理システム)です。
管理画面から記事を投稿したり、デザインを変更したりできるため、プログラミングの知識が少ない人でもWebサイトを運営できます。
そのWordPressの主要部分はPHPで作られています。
WordPressを利用している人は、普段PHPのプログラムを直接操作することはほとんどありません。しかし、記事の表示や管理画面の処理など、さまざまな場面でPHPが動いています。
そのため、PHPの実行環境に脆弱性が見つかった場合、WordPressを利用しているWebサイトも影響を受ける可能性があります。
もちろん、WordPressを使っているサイトがすべて危険になるわけではありません。実際に影響を受けるかどうかは、PHPのバージョンやサーバーの構成などによって変わります。
プラグインの脆弱性とPHPの脆弱性は何が違う?
WordPressのセキュリティ情報では、プラグインの脆弱性もよく取り上げられます。
例えば、問い合わせフォームのプラグインに問題が見つかった場合、そのプラグインを利用しているWebサイトが主な影響対象になります。
一方、PHPそのものに脆弱性が見つかった場合は、特定のプラグインを利用しているかどうかとは別に、PHPの実行環境が影響を受ける可能性があります。
この違いは、脆弱性がどこに存在しているかを考えると理解しやすくなります。
- WordPressプラグインの脆弱性:特定のプラグインに問題がある
- WordPress本体の脆弱性:CMSそのものに問題がある
- PHPの脆弱性:WordPressなどを動かす実行環境に問題がある
Webサイトは、さまざまなソフトウェアを組み合わせて動いています。普段は意識しませんが、そのどこか一つに問題が見つかるだけでも、サイト全体の安全性に関係することがあります。
2026年10月に公表されたPHP2shellとは?
ここまで説明してきた脆弱性の仕組みを、実際のニュースに当てはめてみましょう。
2026年10月、PHPに「PHP2shell」と呼ばれる2つの重大な脆弱性が公表されました。
PHP2Shellはサーバー上で不正なプログラムを実行されるおそれがある脆弱性
今回公表されたのは、次の2つの脆弱性です。
| CVE番号 | 概要 |
|---|---|
| CVE-2026-109618 | メモリ不足時のエラー処理に関係する脆弱性 |
| CVE-2026-109619 | リクエスト処理中の内部状態の管理に関係する脆弱性 |
どちらもPHP内部の処理に関係する問題です。
少し難しい話になりますが、プログラムは処理を実行する際に、コンピューターのメモリを使います。メモリが不足したり、処理が予期せず終了したりした場合でも、プログラムは内部の状態を正しく管理しなければなりません。
今回の問題では、こうした異常時の処理に不備があり、攻撃者が悪用すると、サーバー上で任意のコードを実行される可能性があります。
このように、攻撃者が離れた場所から対象のサーバー上でプログラムを実行できる脆弱性を「リモートコード実行(RCE)」と呼びます。
サーバー上で不正なプログラムを実行されれば、保存されている情報へのアクセスや、Webサイトの改ざんなどにつながるおそれがあります。
PHP2Shellはどのバージョンが影響を受けるのか?
IPAが公表している情報によると、今回のPHP2Shellでは、次のバージョンより前のPHPが影響を受けます。
| PHPの系列 | 修正済みバージョン |
|---|---|
| PHP 8.2系 | 8.2.35 |
| PHP 8.3系 | 8.3.36 |
| PHP 8.4系 | 8.4.27 |
| PHP 8.5系 | 8.5.12 |
例えば、PHP 8.3.35を利用している場合は、修正済みの8.3.36以降への更新が必要です。
また、PHP 8.1以前はすでにサポートが終了しており、通常のセキュリティ修正が提供されないため、サポート中のバージョンへの移行を検討する必要があります。
なお、CISAの悪用確認済み脆弱性カタログにも掲載されており、JPCERT/CCは悪用を試みる通信が観測されたとの報告を紹介しています。単に将来の可能性があるというだけでなく、実際の攻撃を意識して対応する必要がある脆弱性です。
自分のWebサイトやWordPressは何を確認すればよい?
ここまで読むと、「自分のブログや会社のホームページも確認した方がいいのでは?」と思うかもしれません。
PHPの脆弱性は、PHPを使っているシステムが対象です。ただし、利用者が自分でPHPを管理しているとは限りません。
契約しているサーバーやシステムによって、確認する場所が変わります。
レンタルサーバーを利用している場合
レンタルサーバーでWordPressを運営している場合、PHPのバージョンはサーバーの管理画面から確認できることがあります。
まずは、契約しているサーバーの管理画面を開き、PHPのバージョンを確認してみましょう。
ただし、PHPの更新方法や選択できるバージョンは、サーバー会社によって異なります。
サーバー会社から今回の脆弱性に関する案内が出ていないかも確認してください。サーバー会社側で対応が必要な場合もあるため、自分で判断して変更する前に公式の案内を確認することが大切です。
WordPressを利用している場合
WordPressを利用している場合、WordPress本体やプラグインを最新版にすることも重要ですが、それだけではPHPの脆弱性が解消されるわけではありません。
PHPはサーバー側で動いているため、WordPressの管理画面だけでなく、サーバー側のPHPバージョンも確認する必要があります。
また、PHPのバージョンを変更すると、古いテーマやプラグインが正常に動作しなくなる場合があります。更新前にはバックアップを取り、サーバー会社の案内に従って作業することをおすすめします。
会社のWebサイトや業務システムを管理している場合
会社でWebサイトや業務システムを運用している場合は、もう少し広い範囲で確認する必要があります。
自社で管理しているサーバーだけでなく、外部の事業者に運用を委託しているシステムや、クラウド上で稼働しているWebアプリケーションも確認対象になります。
特に、PHPのバージョンを誰が管理しているのか分からない場合は、まずシステムの運用担当者やサービス提供元に問い合わせることが必要です。
「WordPressを使っていないから関係ない」とは限りません。PHPはWebサイト以外の業務システムでも使われています。
まとめ:脆弱性のニュースは、自分が使っているシステムにも関係する
脆弱性とは、ソフトウェアに存在するセキュリティ上の弱点です。
CVEは、その脆弱性を識別するための共通番号であり、CVSSは深刻度を評価するための指標です。
今回のPHP2Shellのように、プログラミング言語の実行環境に脆弱性が見つかると、その言語を利用している多くのWebサイトやシステムに影響が及ぶ可能性があります。
普段、Webサイトを利用しているだけでは、裏側でどのようなプログラムが動いているかを意識することはあまりありません。しかし、WebサイトはPHPやデータベース、Webサーバーなど、さまざまなソフトウェアによって成り立っています。
セキュリティに関するニュースを見たときは、CVE番号や対象バージョンを確認し、自分が利用しているサービスに関係があるかを調べてみてください。
特にWebサイトを運営している場合は、WordPress本体やプラグインだけでなく、サーバー側のPHPなどの実行環境も定期的に確認しておきたいところです。
普段は目に見えない部分ですが、こうした裏側のソフトウェアを適切に更新しておくことが、Webサイトを安全に運営するための基本になります。
最後までお読みいただきありがとうございました。当ブログは日常のICTの困りごとを解決するためのノウハウを発信しているサイトです。トップページもご覧ください。