一目カード。PHPの脆弱性PHP2Shellの修正版は、PHP 8.5.12・8.4.27・8.3.36・8.2.35の4つだけ。8.1以前にはPHP公式の修正版が出ないので、サイトの持ち主が新しいバージョンへ切り替える必要がある。

3行でわかる結論

  • PHP2Shellは、PHPで動くサイトならアプリが最新でも外から乗っ取られうる脆弱性です。直す方法はPHPの更新だけ。
  • 修正版は8.5.12・8.4.27・8.3.36・8.2.35の4つ。8.1以前には公式の修正版が出ません。
  • レンタルサーバーなら、PHPの更新はサーバー会社がします。持ち主がやるのは、バージョンの確認と、古ければ8.3以上への切り替えです。

※上図は、PHP公式のセキュリティ勧告(2026年10月21日)とサポート期間の表(2026年10月22日確認)をもとに当サイトが作成した図です。The PHP Groupが提供している図ではありません。

以下はスポンサーによる広告です。記事の内容とは独立しています。

ソニーグループが提供する光インターネット NURO 光

PHPで動くサイトの持ち主が対象。見るだけの人は何もしなくていい

PHP2Shellは、PHPそのものにある2つの脆弱性です(CVE-2026-109618/CVE-2026-109619)。WordPressのようにPHPで動くサイトなら、ログインなしの通信だけで、サーバーの上でプログラムを動かされるおそれがあります。深刻度はCVSS v4で9.2です。

厄介なのは、WordPressやプラグインを最新にしていても防げないこと。研究チームによると、「Hello World」を出すだけのサイトも対象になりえます。直す方法は、PHPの更新しかないんです。

サイトを見るだけの人は、何もしなくて大丈夫。直すのはサーバーの側です。

修正版が出たのは8.2〜8.5だけ。8.1以前は切り替えるしかない

PHPが10月21日に出した修正版は、8.5.12・8.4.27・8.3.36・8.2.35の4つ。8.1より古いPHPには、公式の修正版が出ません。

横棒グラフ。PHPのセキュリティ修正の期限は、8.5が2029年12月31日まで(約38か月)、8.4が2028年12月31日まで(約26か月)、8.3が2027年12月31日まで(約14か月)、8.2が2026年12月31日まで(約2か月)。8.1以前はサポートが終わっていて、公式の修正版は出ない。

※上図は、PHP公式のサポート期間の表とセキュリティ勧告(2026年10月22日確認)をもとに当サイトが作成した図です。The PHP Groupが提供している図ではありません。

図が読みにくい環境のために、同じ内容を表にしておきます。

PHPのバージョン修正版セキュリティ修正の期限
8.58.5.122029年12月31日
8.48.4.272028年12月31日
8.38.3.362027年12月31日
8.28.2.352026年12月31日
8.1以前公式には出ない終了済み

落とし穴は8.2。修正版はあっても、サポートは12月31日で終わります。上げるなら、8.3以上を選んでおきたいところ。

レンタルサーバーなら、やることは「確認」と「切り替え」の2つ

共用のレンタルサーバーでは、PHPの更新はサーバー会社の仕事です。エックスサーバーは22日の朝、8.2〜8.5の適用完了を告知しました。

あなたがやるのは2つ。まず、管理画面かWordPressの「サイトヘルス」でPHPのバージョンを見ること。8.1以前なら、管理画面で8.3以上へ切り替えることです。切り替える前に、バックアップを取っておきましょう。

VPSなど自分で建てたサーバーは、更新も自分の仕事。配布元の更新を入れて、PHPを再起動するまでが1セットです。

結び:今日のうちに、バージョンの番号だけは見ておく

あなたがサイトを持っているなら、まずPHPの番号を確かめてください。番号しだいで、会社の更新を待つか、自分で切り替えるかが決まります。迷ったら、サポートに聞くのが早道です。

以下はスポンサーによる広告です。記事の内容とは独立しています。

ソニーグループが提供する光インターネット NURO 光
もっと詳しく:PHP公式の勧告2本・IPA・レンタルサーバー5社の告知を突き合わせた検証の全文出典との照合・検算・細かい条件。ここを押すと畳めます出典との照合・検算・細かい条件。開くと全文が読めます

ここからは、2026年10月22日10時時点の資料をもとにした全文です。PHP公式の勧告、IPAの注意喚起、国内のレンタルサーバー5社の告知を読み比べました。

番号が先に漏れ、2日で修正版の適用まで進んだ

時系列の図。10月20日にCVE番号が掲示板へ先に漏れ、「CVSS 10」と書かれた。10月21日にIPAが事前準備を呼びかけ、国内のレンタルサーバー各社が緊急メンテナンスに入った。10月21日深夜(日本時間)にPHPが8.5.12・8.4.27・8.3.36・8.2.35を公開し、10月22日6時45分にエックスサーバーがPHP 8.2〜8.5への適用完了を告知した。

※上図は、Infosecurity Magazineの記事、IPAの注意喚起、PHP公式の勧告、エックスサーバーの告知(2026年10月22日確認)をもとに当サイトが作成した図です。IPA・The PHP Group・エックスサーバーが提供している図ではありません。

日時(日本時間)できごと
10月20日修正版より先に、CVE番号が海外の掲示板(Hacker News)へ投稿される。投稿は「CVSS 10.0」「PHP 5から影響」と書いていた
10月21日IPAが「事前準備のお願い」を掲載。修正版の公開予定を23時と案内
10月21日 未明〜19時さくらインターネット(未明と13時から)、エックスサーバー(16時)、ConoHa WING(19時)が緊急のメンテナンスに入る。ロリポップ!も同じ日に緊急メンテナンスを始めた
10月21日 深夜PHPが修正版4つとセキュリティ勧告を公開
10月22日 6時45分エックスサーバーが、PHP 8.2〜8.5の適用完了を告知

漏れた投稿の「CVSS 10.0」は、PHP公式の評価とは違います。公式の勧告は2件とも9.2です。

2つの脆弱性は、どちらも「前のリクエストの後始末」の穴

2件とも、PHPがリクエストを処理し終えるときの片付けに関わる穴です。勧告の中身を、ざっくり並べるとこうなります。

CVE-2026-109618CVE-2026-109619
勧告の名前RCE via OOM corruptionRCE via stale global state
起きることメモリ不足で処理が途中で打ち切られ、作りかけのデータを後片付けの処理が正しいものとして扱う終わったリクエストの情報が残り、同じプロセスが次のリクエストを処理するときに、もう解放されたメモリを使ってしまう
確かめられた攻撃Apacheのmod_phpで、既定のメモリ上限のまま、HTTP越しの乗っ取りを確認mod_phpとPHP-FPMの両方で、乗っ取りを確認。プロセスのメモリの中身を読み出せる
PHP-FPMでは理論上は対象。完全な攻撃はまだ示されていないアプリの処理を経由する経路で確認済み
CVSS v49.29.2

PHP公式は、最も危険なのはApacheのmod_phpだとしています。アプリのコードが1行も動く前に、ログインなしのリクエストで攻撃が成り立つからです。

CVSSの内訳を見ると、「攻撃の複雑さ」は高いと評価されています。いっぽう、ログインも利用者の操作も要りません。手間はかかっても、条件がそろえば外から誰でも狙える、という評価です。

発見したのは、Wiz Research、OpenAIのCodex Security、Califの研究者です。研究チームの解説サイトによると、ログイン前の乗っ取りを再現できたのは、WordPress・Drupal・Joomlaの最新の公式コンテナ。メモリの中からは、パスワードや認証トークン、APIキーも読み出せると書いています。

確定していること、まだ確かめられないこと

一次資料で確かめられることと、報道や推測の段階のものを分けておきます。

項目状態よりどころ
修正版は8.5.12・8.4.27・8.3.36・8.2.35確定PHP公式の勧告
深刻度はCVSS v4で9.2(2件とも)確定GitHubのセキュリティ勧告
対象はWebのリクエストを処理しているPHP全般(PHP-FPM・mod_php・php-cgi・FrankenPHP・LiteSpeed)確定PHP公式の勧告
8.1以前には公式の修正版が出ない確定PHP公式の勧告
実際に悪用されているか未確定IPAは10月21日時点で「悪用した攻撃を確認しているわけではない」
8.1以前の古い版も影響を受ける研究チームの発表・他機関研究チームは「PHP 5.4までさかのぼって影響がある」と発表。CERT-EUも「PHP 5以降」としている(IPAが引用)。PHP公式も、深刻さを理由に7.4〜8.1向けの修正を別に出した

修正版が出ていない8.1以前のサイトも、対象に入ると考えて動くほうが安全です。悪用については、この記事の時点で、一次資料で確かめることはできませんでした。IPAのページも、22日10時時点で「事前準備のお願い」のままです。

レンタルサーバー5社の告知:「PHP」と書いた会社、書いていない会社

国内の主なレンタルサーバーの告知を、2026年10月22日10時ごろに読み比べました。

会社告知の中身告知にPHPの記載8.1以前の扱い
エックスサーバー10月21日16時から公式サイトと管理画面を止めて対策。22日6時45分に、PHP 8.2〜8.5の適用完了。9時30分から管理画面を順次再開あり準備ができた版から順次適用中。残りも対応中
さくらのレンタルサーバ10月21日の1時〜8時と、13時〜22日8時に「再起動を伴うシステムメンテナンス」。21日22時30分に完了なし記載なし
ロリポップ!PHPの修正版の公開に先立つ予防措置として緊急メンテナンス。確認時点では「お客様のサイト」も利用できない状態あり(IPAとPHP公式の告知へリンク)記載なし
ConoHa WING10月21日19時〜22日10時に「システムの保守作業」なし記載なし
KAGOYAレンタルサーバープランのPHP 8.2〜8.5は、修正版を確かめて順次更新ありほかの版とほかのプランは、方針を調整中

5社のうち2社は、告知にPHPの名前がありません。同じ時間帯の緊急メンテナンスでも、告知だけでは、自分の契約のPHPが直ったかを判断できません。気になるなら、サポートに聞くのが確実です。

古いバージョンの扱いをはっきり書いているのは、エックスサーバーとKAGOYAだけでした。エックスサーバーは、管理画面の再開後に、利用者にも追加の対策を頼む場合があるとしています。条件は利用状況しだいです。管理画面は22日9時30分から順次戻っているので、お知らせを一度見ておきたいところです。

ちなみにロリポップ!の告知は、確認した時点で、利用者のサイトそのものも「現在利用できません」の欄に入れていました。サイトが表示されなくても、契約先の障害情報を見るのが先です。

8.1以前のサイトは、「待つ」より「切り替える」

PHP公式は、8.1以前について「PHPのプロジェクトからは更新が出ない」とはっきり書いています。そのうえで、例外的に7.4・8.0・8.1向けの最小限の修正を公開しました。ただしこれは、ソースからPHPを組み立てる人向けのもの。共用サーバーの利用者が使える形ではありません。

だから8.1以前のサイトは、サーバー会社が古い版をどこまで直すか次第になります。エックスサーバーのように順次直す会社もあれば、まだ方針が出ていない会社もあります。待つよりも、管理画面で新しい版へ切り替えるほうが確実です。

切り替え先は8.3以上がおすすめです。8.2は修正版こそありますが、セキュリティ修正が12月31日で終わります。2か月後に、また同じ作業をすることになります。

WordPressの公式も、推奨は8.3以上

WordPress公式の動作要件は、PHP 8.3以上を推奨しています。7.4以上でも動くとは書いていますが、同じページで「サポートが終わった版で、サイトをセキュリティの穴にさらすおそれがある」と添えています。今回の修正版の事情とも合う線です。

WordPressのサイトで切り替えるなら、順番はこうです。

  1. バックアップを取る。 ファイルとデータベースの両方。サーバー会社の自動バックアップがあっても、手元に1つあると戻しやすい
  2. WordPress本体・テーマ・プラグインを先に最新にする。 古いプラグインほど、新しいPHPで動かないことが多いため
  3. 管理画面でPHPを8.3以上に切り替える。 レンタルサーバーなら、ドメインごとに選べることが多い
  4. 表示と管理画面を一通り確かめる。 トップ・記事・お問い合わせフォーム・ログインの4か所は最低限

もし表示が崩れても、元の版に戻すのは原因を調べる間だけにしたいところです。元の版に戻すと、穴も一緒に戻ります。動かないプラグインが見つかったら、代わりを探すか、開発元の更新を待つことになります。

自分で管理するサーバーは、更新と再起動までがセット

VPSやクラウドで自分がPHPを入れたサーバーは、更新も自分の仕事です。PHP公式は、Linuxの配布元にパッチを前もって渡してあります。だから、まず配布元の更新を確かめるよう案内しています。

配布元のパッケージは、番号の後ろに配布元の印が付きます。たとえばDebianでは、bookworm向けの修正済みが 8.2.35-1~deb12u1、trixie向けが 8.4.27-1~deb13u1 でした。修正済みかどうかは、配布元のCVEのページで確かめるのが確実です。

PHP公式は、ボランティアが運営するリポジトリ(rpms.remirepo.net)について、公開の日には更新が出ないとも書いています。そこから入れているなら、配布元のパッケージかソースからの組み立てへ切り替えるよう勧めています。

更新したら、Apache・PHP-FPM・常駐しているPHPのプロセスをすべて再起動します。古いプロセスが残っていると、古いPHPのまま動き続けるからです。

すぐ更新できないときの設定は、穴を減らすだけ

PHP公式と勧告は、更新までのつなぎの設定を挙げています。どれも「安全にはならない、特定の経路を減らすだけ」と念を押しています。

設定何を防ぐか注意
memory_limit=-1 を管理者側で固定109618の、メモリ上限を使った確認済みの経路アプリやディレクトリの設定で上限が戻らないか確かめる。根本の穴は残る
post_max_size を小さく(アップロードなしは8M、ありは32M)109618の、メモリを使い切らせる経路upload_max_filesize はそれより小さく
session.upload_progress.enabled=0 +全プロセス再起動109619のセッションの経路ini_set() やPHP-FPMの .user.ini では効かない
PHP 8.5だけ fatal_error_backtraces=0 +全プロセス再起動109619の、確認済みの経路ほかの経路は残る

もう一つ、大事な注記があります。error_reporting や display_errors、@ でエラーを隠しても効きません。PHPは、警告を出すかどうかを決める前に、問題のデータに触れてしまうからです。

共用サーバーで利用者が書けるのが .user.ini だけなら、ここに挙がった設定の多くは自分では効かせられません。その場合にできるのは、会社の更新を待つことと、PHPのバージョンを切り替えることです。

勧告は、アップロードの進み具合を見る機能(session.upload_progress)を使っていないなら、修正版にしたあとも切っておくのが賢明だとしています。今後、攻撃者がこの機能を調べにくると見ているためです。

サイト以外の、機器やソフトの中のPHPも

IPAは、PHPがWebアプリの外でも使われていると注意しています。ソフトウェア製品やネットワーク機器の中です。製品の中のPHPは、利用者からは見えないことが多いもの。管理画面をWebで開く機器を使っているなら、メーカーのセキュリティ情報を確かめておくと安心です。

以下はスポンサーによる広告です。記事の内容とは独立しています。

ソニーグループが提供する光インターネット NURO 光

よくある質問

WordPressとプラグインを最新にすれば大丈夫ですか?

いいえ。穴はWordPressではなくPHPの中にあるので、PHPを修正版にしないと直りません。研究チームは、表示するだけの簡単なページでも影響を受けうるとしています。

自分のサイトのPHPのバージョンはどこで分かりますか?

レンタルサーバーなら、管理画面のPHPの設定の画面に出ています。WordPressなら、管理画面の「ツール」→「サイトヘルス」→「情報」の「サーバー」欄で、PHPの情報を確かめられます。

PHP 7.4のままのサイトはどうなりますか?

PHP公式の修正版は出ません。サーバー会社が独自に直すかどうか次第なので、管理画面で8.3以上へ切り替えるのが確実です。古いプラグインが動かなくなることがあるので、切り替える前にバックアップを取っておきましょう。

8.2と8.3、どちらに切り替えればいいですか?

8.3以上です。8.2にも修正版の8.2.35がありますが、セキュリティ修正は2026年12月31日で終わります。8.3は2027年12月31日まで、8.4は2028年12月31日まで続きます。

サイトを見るだけの人に影響はありますか?

自分のスマホやパソコンで何かする必要はありません。直すのはサイトを動かしているサーバーの側です。

共用サーバーで、PHPの本体を自分で更新できますか?

できません。PHP本体の更新はサーバー会社がします。利用者が選べるのは、管理画面に並んでいるバージョンのどれを使うかです。

出典

※本記事の内容は、上記の出典を2026年10月22日10時ごろに確認したものです。各社の対応は時間とともに変わるので、契約しているサーバー会社のお知らせで最新の状況を確かめてください。

※本文中の図3枚(一目カードを含む)は、PHP公式・IPA・各社の公開資料をもとに当サイトが作成したものです。

📄 この記事の立場

  • PHP公式の勧告とGitHubのセキュリティ勧告2本、サポート期間の表、IPAの注意喚起、研究チームの解説、国内レンタルサーバー5社の告知、Debianの追跡ページ、WordPressの公式ドキュメントなど15本を、2026年10月22日に読み比べました
  • 運営者は、記事に出てくるレンタルサーバーを契約していません。 各社の管理画面やサポートの対応は確かめていません。書いているのは、公開されている告知から読み取れることだけです
  • 当サイトはPHPを使わない静的なサイトなので、この脆弱性の影響は受けません
  • 記事内のPHP公式・各社へのリンクは、すべてふつうのリンクです。紹介料は受け取っていません
  • 記事内の広告は、ソニーネットワークコミュニケーションズの光回線「NURO 光」のもの(A8.net経由)です。広告は記事の内容とは独立していて、記事に出てくるサーバー会社とも関係ありません

※本記事にはアフィリエイトリンク(広告)を含みます。広告は光回線「NURO 光」のもので、記事の内容とは独立しています。