PHPの重大な脆弱性「php2shell」とは? 何が起きたのか、サイトを持っている人がやること

公開
シェア
PHPの重大な脆弱性「php2shell」とは? 何が起きたのか、サイトを持っている人がやること

10月21日に緊急の修正版が出たPHPの脆弱性。官公庁や企業のサイトが一時停止するほどの騒ぎになった理由と、WordPressなどでサイトを運営している人が確認すべきことをまとめる。

2026年10月21日、Webサイトを動かすプログラミング言語「PHP」に、深刻な脆弱性が2件見つかったとして、緊急の修正版が公開されました。セキュリティ業界では「php2shell」と呼ばれています。

国内では、首相がSNSで対応を呼びかけ、レンタルサーバー会社が予防のためにサービスを一時停止しました。官公庁や自治体、企業のサイトにも停止が相次いでいます。

この記事では、何が起きたのかを整理したうえで、WordPressなどでサイトを持っている人がやるべきことを解説します。情報は2026年10月24日時点のものです。

まず結論。サイトを持っている人がやること

  • レンタルサーバーを使っている → サーバー会社のお知らせを確認する。多くの会社はサーバー側で対応済み
  • サーバーを自分で管理している → PHPを修正版(8.5.12、8.4.27、8.3.36、8.2.35)にすぐ更新する
  • PHP 8.1以前を使っている → 公式の更新が出ないため、サーバー会社に確認するか、新しいバージョンへ移行する

サイトを見ているだけの人は、特に何もする必要はありません。

そもそもPHPとは

PHPは、Webサイトの裏側で動くプログラミング言語です。ブログやホームページを作るWordPressをはじめ、ECサイトや予約システムなど、多くのWebサービスがPHPで動いています。

WordPressのサイトを持っている人は、自分で意識していなくても、サーバーの上でPHPを使っています。今回の脆弱性は、WordPressそのものではなく、その土台にあるPHPの問題です。

何が起きたのか

PHPの開発チームが修正したのは、次の2件の脆弱性です。

CVE-2026-109618CVE-2026-109619
原因メモリ不足の処理で、内部のデータが不完全な状態のまま残る前のリクエストの内部状態が、メモリ解放後も残る
起こりうること認証なしで、外部からサーバー上のコードを実行される認証なしで、外部からサーバー上のコードを実行される
深刻度(CVSS v4.0)9.29.2

どちらも、ログインせずに外部からサーバーを乗っ取られるおそれがある種類の脆弱性です。PHP公式によると、影響はPHP-FPM、Apacheのmod_php、php-cgi、FrankenPHP、LiteSpeedなど、Webリクエストを処理するすべてのPHP環境に及びます。中でもmod_phpは、サイトのプログラムが動く前の段階で攻撃が成立することが確認されていて、最もリスクが高いとされています。

修正版は、PHP 8.5.12、8.4.27、8.3.36、8.2.35です。公式のサポートが終わっているPHP 7.4、8.0、8.1については、深刻度を考慮して、最小限の修正がソースコードの形で提供されました。

なぜここまで大騒ぎになったのか

理由の一つは、修正版が出る前に情報が漏れたことです。セキュリティ情報サイト「piyolog」のまとめによると、公開予定の前日には脆弱性の存在をうかがわせる情報が出回り、開発チームは予定を前倒しして修正版を公開しました。公開の前後には、攻撃を試すための検証コードも出回ったとされています。

国内では、IPA(情報処理推進機構)や国家サイバー統括室が注意喚起を出し、首相もSNSで速やかな対応を呼びかけました。レンタルサーバー各社の多くはサーバーのPHPを修正版に更新し、一部は予防のためにサービスを一時停止して、22〜23日にかけて順次再開しています。

piyologは、10月23日時点で、官公庁、自治体、金融機関、交通、大学、EC事業者などの200を超える組織で、サイトやサービスの停止を確認したとしています。ただし、多くの告知はPHPを名指ししておらず、停止理由の一部は報道をもとにした判断だと注記しています。

実際の被害は出ているのか

10月24日時点では、攻撃の「試み」が急増していることは複数の企業が報告しています。一方で、攻撃が成功して侵害された事例は、確認されたという報告は出ていません。

専門家の見方も分かれています。「悪用は簡単ではなく、狙う環境の知識が必要」とする見方がある一方で、「状況は急速に悪化しうる」とする見方もあります。被害が確認されていないからといって安心はできず、更新を後回しにしないことが大切です。

サイトを持っている人が確認すること

1. 自分のサイトのPHPバージョンを確認する
WordPressなら、管理画面の「ツール」→「サイトヘルス」→「情報」タブ→「サーバー」で、PHPのバージョンを確認できます。レンタルサーバーの管理画面に表示されている場合もあります。

2. レンタルサーバーのお知らせを確認する
レンタルサーバーを使っている場合、PHPの更新はサーバー会社が行うのが一般的です。多くの会社が今回の対応状況をお知らせで公開しているので、まずそれを確認しましょう。サーバー会社が独自に修正を当てている場合もあり、バージョン番号だけでは修正済みかどうか判断できないことがあります。

3. 自分でサーバーを管理しているなら、すぐ更新する
VPSやクラウドで自分でPHPを入れている場合は、修正版への更新が必要です。PHP公式は、設定の変更だけでは完全な対策にならないとしています。更新後は、PHPのワーカー(PHP-FPMなど)を再起動して、新しいバージョンが動いていることを確認します。

4. すぐ更新できない場合は、暫定対策を
PHP公式は、更新できない場合の緩和策として、session.upload_progress.enabled=0 の設定などを案内しています。ただし、特定の攻撃経路にしか効かないため、あくまで更新までのつなぎです。JPCERT/CCは、侵害を受けていないかの確認も呼びかけています。

なお、WordPress本体の更新は今回は不要です。必要なのはPHPの更新です。

10月23日に追加の注意喚起も

PHPの開発チームは10月23日、別の脆弱性(CVE-2026-115560)についても注意喚起を出しました。セッションの設定を特定の組み合わせで使っている場合に限って影響があるもので、次の定期リリースで修正される予定です。

公式は、該当する可能性がある場合、それまで session.upload_progress.enabled=0 に設定するよう推奨しています。10月21日の緩和策としてすでにこの設定をしている場合は、追加の対応は不要です。

まとめ。サイトの持ち主は「PHPのバージョン」を一度見ておく

今回の脆弱性は、PHPで動くほぼすべてのWebサイトに関係するものでした。ただ、レンタルサーバーを使っている多くの人にとっては、サーバー会社がすでに対応していて、自分で作業することは少ないはずです。

それでも、自分のサイトがどのバージョンのPHPで動いていて、サーバー会社が対応済みかどうかは、一度確認しておきましょう。古いPHPのまま放置しているサイトがあれば、今回が見直すきっかけになります。

※本記事は2026年10月24日時点の情報をもとにしています。状況は今後変わる可能性があります。

関連記事