php2shellとは|PHPの脆弱性でサイト運営者が今やること

php2shellとは|PHPの脆弱性でサイト運営者が今やること

「PHPに重大な脆弱性が見つかったとニュースで見たけれど、うちのホームページは関係あるのか」「WordPressを更新すれば済むのか」——2026年10月21日から22日にかけて、国内のレンタルサーバーが相次いで緊急メンテナンスに入り、サイトを持つ多くの人がこの疑問を抱えています。

結論から言うと、WordPressなどPHPで動いているサイトは、ほぼすべてが対象です。そして、WordPressを更新しても直りません。直すには、サーバーに入っているPHPを修正版(8.5.12・8.4.27・8.3.36・8.2.35)に入れ替える必要があります。レンタルサーバーなら入れ替えはサーバー会社が行い、利用者がやるのは、自分のサイトのPHPのバージョンを確かめ、8.1以前なら切り替えを考えることです。

株式会社Fyveは、中小企業のWeb運用とAI活用を支援しています。この記事では、PHPの開発チームの公式発表と国内外の報道をもとに、php2shellとは何か、どのサイトが影響を受けるのか、サイトを持つ人が今やることを、専門用語をできるだけ使わずに整理します。

結論|サイト運営者が今やることは4つ

  1. 自分のサイトがPHPで動いているかを知る。WordPress、EC-CUBE、PHPで作った問い合わせフォームや社内システムは対象です
  2. PHPのバージョンを確かめる。WordPressなら「ツール」→「サイトヘルス」→「情報」→「サーバー」で見られます
  3. 8.2〜8.5なら、サーバー会社の修正を待って適用を確かめる。8.1以前なら、修正版が出ている8.3以上への切り替えを考える
  4. 修正が入ったら、改ざんされていないかを確かめる。Cloudflareは、公式の公開日より前に情報が漏れ、自社の顧客を狙う攻撃の通信を観測したと発表しています

反対に、WordPress本体やプラグインの更新、メンテナンスモード、php.iniの設定変更では、今回の脆弱性は直りません。理由は後の章で説明します。

サイト運営者が今やること。PHPで動いているかを知り、バージョンを確かめ、8.2〜8.5なら適用を待って確かめ、8.1以前なら8.3以上への切り替えを考え、最後に改ざんを確かめる流れ

php2shellとは|PHPに見つかった2つの脆弱性

PHPはWebサイトの裏側で動く仕組み

PHPは、Webサイトの裏側でページを組み立てたり、問い合わせフォームの内容を受け取ったりするプログラム言語です。WordPressもPHPで書かれていて、国内のレンタルサーバーの多くはPHPが使える状態で提供されています。サイトを見に来た人のブラウザではなく、サイトを置いているサーバーの上で動いているのがポイントです。

見つかった2つの脆弱性

今回見つかったのは、次の2つです。どちらもPHPそのもの(言語の本体)にある問題で、WordPressなど個別のソフトの問題ではありません。

番号

中身(やさしく言うと)

深刻度

CVE-2026-109618

メモリが足りなくなったときの後始末で、途中までしか準備できていないデータを、正しいデータとして扱ってしまう

9.2(CVSS v4.0)

CVE-2026-109619

前のアクセスで使った内部の情報が、片付けたはずのあとも残り、同じ処理役が受けた次のアクセスで使われてしまう

9.2(CVSS v4.0)

深刻度の9.2は、10点満点で「緊急」にあたる水準です。一部で「10.0」と報じられていますが、PHPの開発チームの評価は9.2です。

「php2shell」は、この2つをまとめた呼び名です。

公表したのは、Calif.io、Wiz、OpenAI、Quarkslabです(Cloudflareのブログによる)。Wizは公表の記事の題名で、AIを使ってこの脆弱性を見つけたと書いています。Wizの記録では、8月19日に見つけ、8月24日にPHPの開発チームへ報告し、10月21日の修正版と同時に公表しました。

「認証なしで外から乗っ取れる」とはどういうことか

PHPの開発チームは、2つの脆弱性を「認証なしでのリモートコード実行を許す可能性がある」と説明しています。言い換えると、ログインもパスワードも要らず、ネット越しにサーバーへアクセスを送るだけで、サーバーの上で好きなプログラムを動かされるおそれがあるということです。

サーバーの上でプログラムを動かされると、たとえば次のようなことが起こりえます。

  • サイトを書き換えられる(見覚えのない文字が入る、偽のサイトへ飛ばされる)
  • 問い合わせフォームの内容やデータベースの情報を持ち出される
  • 迷惑メールの送信や、ほかのサイトへの攻撃の踏み台に使われる

なかでもPHPの開発チームは、Apacheというサーバーソフトに組み込む形(mod_php)で動かしている場合が最も危険だとしています。この形では、WordPressなどのコードが動き始める前の段階で攻撃できることを、実際に確かめたと公表しています。

ここまでの流れ

日時

出来事

10月20日

PHPの開発チームが、重大な脆弱性2件の修正版を出すと予告(深刻度はどちらも9.2)

10月21日 12時ごろ(日本時間)

Cloudflareが、自社のWAF(サイトの手前で通信を検査する仕組み)で、無料プランも含めて既定の防御を始める

10月21日 昼〜夜(日本時間)

国内のレンタルサーバーやWebサービスが、相次いで緊急メンテナンスや管理画面の停止に入る

10月21日

IPAが「【事前準備のお願い】PHPのセキュリティリリース公開予定について」を出す

10月21日 23時ごろ(日本時間)

修正版(8.5.12・8.4.27・8.3.36・8.2.35)が公開される

10月22日〜

各サーバー会社が、修正版の適用を順に進める

攻撃はもう始まっているのか

公表されている一次情報を並べると、次のとおりです。

  • Cloudflareは、公式の公開日より前に脆弱性の情報が漏れ、自社の顧客を狙った攻撃の通信を観測したと書いています
  • CERT-EU(EUの機関向けのセキュリティ対応チーム)は、攻撃を試すためのコード(PoC)が出回り始めていて、すでに悪用されている可能性が高まっているとしています
  • Palo Alto NetworksのUnit 42は、PoCを確認したこと、少なくとも1つの欧州の政府がサイトを予防的に止めたことを伝えています
  • IPAは、10月21日の時点で、悪用された攻撃を確認しているわけではないとしたうえで、悪用されるおそれがあるとして事前の準備を呼びかけています

「広く悪用されている」とまで言える公表は、この記事を書いている10月22日未明の時点ではありません。ただ、攻撃の通信が実際に観測され、攻撃のためのコードも出回り始めている以上、待っていれば安全という状況ではありません。

影響を受けるサイト・受けないサイト

対象になるもの|PHPでWebのアクセスを受けているものすべて

PHPの開発チームは、対象を「Webのリクエストを処理しているすべてのPHP」としています。PHPの動かし方(PHP-FPM、Apacheのmod_php、php-cgi、FrankenPHP、LiteSpeed)を問いません。サイトの種類でいうと、次のようなものが当てはまります。

  • WordPressで作ったホームページやブログ
  • EC-CUBEなど、PHPで動くネットショップ
  • LaravelやCakePHPなどで作った予約システムや会員サイト、社内システム
  • PHPで書かれた問い合わせフォーム(ページはHTMLでも、送信の処理だけPHPというサイトは多い)
  • データベースを操作する画面(phpMyAdminなど)

利用者がPHPを触る場面がないもの

Wix、Jimdo、ペライチ、STUDIO、Shopifyのようなサービスで作ったサイトは、サーバーをサービス側が管理しているため、利用者がPHPのバージョンを確かめたり切り替えたりする場面はありません。気になる場合は、各サービスのお知らせを確かめてください。

Next.jsなどで作り、VercelやNetlifyのようなサービスで公開しているサイトも、PHPを使っていなければ対象外です。ただし、ページ自体はHTMLだけでも、同じサーバーの契約の中にWordPressや問い合わせフォームがあれば、そちらが対象になります。昔作って使っていないテスト用のWordPressが残っていないかも、あわせて確かめてください。

PHPのバージョンごとの状況

PHPのバージョン

修正版

補足

8.5

8.5.12

―

8.4

8.4.27

―

8.3

8.3.36

―

8.2

8.2.35

2026年12月31日で公式のサポートが終わる

8.1以前

なし

7.4・8.0・8.1向けに最小限の修正のコードだけが公開された。実際に入るかは、サーバー会社やOSの配布元の対応次第

どこまで古いバージョンが影響を受けるかについて、PHPの開発チームの発表は範囲を示していません。ただ、7.4・8.0・8.1向けにも修正のコードを出していることから、少なくともこれらは対象と考えるのが自然です。公表した1社のWizと、防御のルールを出したCloudflareは「PHP 5.4以降」、IPAが引用しているCERT-EUは「PHP 5以降」が影響を受けるとしています。

自分のサイトのPHPバージョンを確かめる方法

WordPressなら「サイトヘルス」で見られる

  1. WordPressの管理画面にログインする
  2. 左のメニューの「ツール」から「サイトヘルス」を開く
  3. 上のタブで「情報」を選ぶ
  4. 「サーバー」の項目を開き、「PHP バージョン」を見る
WordPressのサイトヘルスの「情報」タブで「サーバー」を開いた画面。PHP バージョンに8.3.36と表示されている(架空の検証用サイト)

「8.3.36」のように数字が3つ並んでいれば、修正版かどうかまで分かります。同じ系列で、上の表の修正版の数字以上なら、修正が入っています。ただし、サーバー会社やLinuxの配布元が独自に修正を入れた場合は、番号が変わらないことがあります。番号が古いままのときは、サーバー会社のお知らせで適用済みかを確かめてください。

この画面はWordPress側の画面なので、エックスサーバーのように、サーバー会社が管理画面だけを止めている場合は開けます。サーバーごと止まるメンテナンスの最中は、サイトと同じく開けないことがあります。

PHPのバージョンごとの修正版。8.5は8.5.12、8.4は8.4.27、8.3は8.3.36、8.2は8.2.35、8.1以前は公式の修正版なし

WordPress以外は、作った人かサーバーの管理画面で確かめる

独自に作ったシステムや問い合わせフォームは、作った制作会社か担当者に「このサイトのPHPのバージョンはいくつか」を聞くのが確実です。レンタルサーバーの管理画面にも、ドメインごとのPHPのバージョンを表示・切り替えする画面があります。

PHPの情報を表示するファイル(phpinfo)をサーバーに置く方法もありますが、置いたまま忘れると、サーバーの細かい情報を誰にでも見せることになります。今の時期には勧めません。

判定はAIに手伝ってもらってもいい

サイトヘルスの画面をスクリーンショットに撮って、ChatGPTやClaudeに「このPHPのバージョンに、2026年10月21日に出た修正版(8.5.12・8.4.27・8.3.36・8.2.35)が入っているかを判定して」と聞けば、読み取りと判定を手伝ってもらえます。修正版の番号は必ず質問の中に書いてください。AIは最近のニュースを知らないことがあり、番号を渡さないと古い情報で判定してしまうおそれがあります。

「これで直る」は誤解|よくある4つの勘違い

直るもの・直らないもの。WordPressの更新とメンテナンスモードでは直らない。php.iniの設定とWAFは時間かせぎ。サーバーのPHPを修正版に入れ替えると直る

1. WordPressを最新にすれば直る

直りません。今回の問題は、WordPressを動かしている土台のPHPにあります。WordPress本体やプラグインをいくら新しくしても、PHPが古いままなら穴は残ります。WordPressの公式ブログも、この脆弱性はWordPressに限ったものではなく、WordPressの更新は必要なく、予定もないと書いています。

2. メンテナンスモードやセキュリティ系のプラグインで防げる

難しいと考えてください。PHPの開発チームは、最も危険な形(mod_php)では、WordPressなどのコードが動く前に攻撃できると説明しています。WordPressのプラグインは、PHPが動き始めたあとに働くものです。

サイトの手前で通信を検査するサービス(CloudflareのWAFなど)は、今回の攻撃に向けた防御のルールを出しています。ただ、PHPの開発チームは「更新だけが安全な選択」としていて、手前の防御は更新までの時間かせぎと考えるのが妥当です。

3. php.iniの設定を変えれば防げる

PHPの開発チームは、すぐに更新できない場合の設定(メモリの上限や、送信できるデータの大きさ、アップロードの進み具合を記録する機能の停止など)を案内しています。ただし、それらは「特定の攻撃の道筋を減らすが、安全にはならない」と明記されています。共用のレンタルサーバーでは、利用者が変えられる範囲も限られます。

4. 管理画面が止まっている=被害を受けた

そうとは限りません。たとえばエックスサーバーは、公式サイトと管理画面を止めたことについて、予防的な安全対策であり、不正アクセスが起きたためではないと説明しています。止まっている理由は、各社のお知らせで確かめてください。

レンタルサーバー各社の対応

国内の主なレンタルサーバーの公式のお知らせを、2026年10月22日2時30分ごろに確かめた内容です。状況は数時間おきに変わるので、使っている会社のお知らせを必ず直接見てください。

サーバー会社

お知らせの内容

エックスサーバー(シン・レンタルサーバー、XServerビジネスも同じお知らせ)

10月21日16時から公式サイトと管理画面を予防のために停止(不正アクセスによるものではない)。10月22日14時までにPHP 5.6〜8.5のすべてに修正を当て終え、管理画面も22日から順に再開(10月22日20時10分時点)

KAGOYA

レンタルサーバープランのPHP 8.2〜8.5は、修正版の公開後に順次アップデート。ほかのプランとそれ以外のPHPバージョンは、対応方針を調整中(10月21日の続報)

ロリポップ!

修正版の公開に先立ち、予防のためのメンテナンスを実施中。サービスサイトとユーザー専用ページなどが使えない

カラフルボックス

10月22日0時から全サーバーでシステムアップデート。1時55分の追記で、全サーバーに事前のセキュリティ保護措置を適用済みとしている(お知らせにPHPの記載はない)

さくらのレンタルサーバ

10月21日13時〜22日8時ごろに緊急メンテナンス(お知らせにPHPの記載はない)

ConoHa WING

10月21日19時〜22日10時にサーバーメンテナンス(作業内容は「システムの保守作業」。PHPの記載はない)

お名前.com

公式サイトがメンテナンス中の表示で、お知らせを確認できなかった

この時点では、利用者にPHPのバージョンの切り替えを求めているお知らせは見当たりませんでした。また、8.1以前の扱いに触れていたのは、確認できた範囲では、独自の修正を作るとしたエックスサーバー(その後、10月22日14時までに5.6〜8.1にも当て終えたと発表)と、方針を調整中としたKAGOYAでした。管理画面が戻ったあとで、利用者に作業をお願いする場合があるとしている会社もあります(エックスサーバー)。

エックスサーバーを使っている人向けには、確かめる手順と切り替えの手順を別の記事にまとめています。

エックスサーバーのPHP脆弱性対応|修正完了と利用者が今やること

8.1以前のサイトはどうするか

8.1以前には、PHPの開発チームから修正版が出ません。サーバー会社が独自に修正を入れる場合もありますが、時間がかかったり、対象が限られたりします。また、8.1以前は公式のサポートがすでに終わっていて、今後見つかる問題にも公式の修正は出ません。

そのため、サイトの動作を確かめる時間が取れるなら、修正版が出ている8.3以上へ切り替えるのが、いちばん早く確実な対策です。8.2は年末でサポートが終わるので、今から上げるなら8.3以上を選びます。

切り替えで心配なのは、古いテーマやプラグインが新しいPHPで動かなくなることです。切り替える前にバックアップを取り、テーマとプラグインを更新し、切り替えたあとはトップページと問い合わせフォームの動きを確かめます。表示が崩れたら元に戻せますが、戻した状態は古いPHPのままなので、原因を直して切り替え直すまで進めます。具体的な手順は、次の記事にまとめています。

WordPressのPHPバージョンアップ|止まる原因と直し方

VPSや自社のサーバーで動かしている場合

共用のレンタルサーバーではなく、VPSや自社のサーバーでPHPを動かしている場合は、入れ替えも自分たちで行います。

  • OSの配布元の更新を入れる。PHPの開発チームによると、Linuxの配布元や長期サポートを提供する事業者には、修正が事前に渡されています。使っている配布元の更新情報を確かめます
  • 入れ替えたら、PHPを動かしている処理をすべて再起動する。PHP-FPMやApacheを再起動しないと、古いPHPが動き続けることがあります
  • 8.1以前を自分で動かしているなら、配布元や長期サポートの事業者に、修正の提供があるかを確かめる。なければ、8.3以上への移行を急ぎます

WordPressの公式ブログは、イギリスの国家サイバーセキュリティセンター(NCSC)の呼びかけを引いて、8.2より古いPHPを自分で動かしている場合は、更新の準備ができるまでサーバーを止めることも考えるよう勧めています。

サーバーの状況を確かめる作業は、Claude CodeのようなAIに手伝わせることもできます。たとえば次のように頼むと、PHPのバージョンと動かし方を調べ、修正版が入っているかを判定してくれます。

このサーバーで動いているPHPのバージョンと、動かし方(PHP-FPM・mod_phpなど)を調べてください。2026年10月21日に出た修正版(8.5.12・8.4.27・8.3.36・8.2.35)が入っているかを判定してください。設定やパッケージは変えず、確認だけにしてください。

本番のサーバーでは、最初は「確認だけ」と明記して頼み、更新や再起動は内容を見てから人が判断して進めます。

修正が入ったあとに確かめること

Cloudflareは、公式の公開日より前に情報が漏れ、自社の顧客を狙う攻撃の通信を観測したと発表しています。修正が入る前に狙われていないとは言い切れないため、修正が入ったあとに、念のため次の点を見ておきます。

  • WordPressの「ユーザー」に、見覚えのない管理者が増えていないか
  • サイトの見た目やリンク先が変わっていないか
  • サーバー上に、見覚えのないファイルや、最近の日付で書き換わったファイルがないか
  • Google Search Consoleの「セキュリティの問題」に、警告が出ていないか

気になる点があれば、自分で消して終わりにせず、制作会社や保守の担当者、サーバー会社に相談してください。消してしまうと、何をされたかを調べられなくなります。

制作会社・保守担当がやること

お客様のサイトを預かっている場合は、次の順で進めます。

  1. 預かっているサイトを一覧にして、サーバー会社とPHPのバージョンを控える
  2. 8.1以前のサイトは、持ち主に切り替えの了承と、確かめる時間帯の相談を先に済ませる
  3. サーバー会社の管理画面が使えるようになったら、問い合わせ・予約・決済があるサイトから切り替える
  4. お客様には「WordPressを更新したので大丈夫」と説明しない
  5. 修正が終わったら、改ざんの確認をする

エックスサーバーで預かっているサイトの段取りと、お客様への連絡の文面の例は、前の章で紹介したエックスサーバーの記事に書いています。

保守を任されている範囲がはっきりしていないと、今回のような件で誰が動くのかが決まらず、対応が遅れます。保守の中身と費用の考え方は、こちらの記事にまとめています。

ホームページ保守費用の相場|内訳と自分でできる範囲を解説

私たちが確かめたこと

10月22日の未明、私たちも自社と、関わっているサイトを確かめました。自社のサイトはPHPを使わない仕組み(Next.jsで作り、Vercelで公開)なので、サイト本体は今回の対象外でした。ただ、メールを受けている国内のレンタルサーバーに、1年以上更新していない古いWordPress(PHP 8.1)が1つ残っていたため、FTPでサイトを閉じ、すべてのページを自社のサイトへ転送しました。

また、関わっているお客様のWordPressのサイトは3つあり、3つとも国内のレンタルサーバーで動いていました。どのサイトも、サイトの外から見える情報にPHPのバージョンは出ておらず、外からは判定できませんでした。自分のサイトのPHPのバージョンは、持ち主か管理している人が中から確かめるしかありません。まだ確かめていない人は、サイトヘルスを開くところから始めてください。

よくある質問

Wixやペライチで作ったサイトでも、何かする必要はありますか?

PHPのバージョンを確かめたり切り替えたりする作業は、利用者側にはありません。サービス側の対応は、各サービスのお知らせで確かめてください。

サイトヘルスで「8.3.36」と出ました。もう大丈夫ですか?

今回の脆弱性については、修正が入っている状態です。そのうえで、修正版が出る前に攻撃を受けていないかは別の話なので、「修正が入ったあとに確かめること」の章を一度見ておいてください。

サイトを見に来た人のパソコンやスマホも危険ですか?

今回の脆弱性は、サイトを置いているサーバーの問題で、見に来た人の端末の問題ではありません。ただし、改ざんされたサイトは、見に来た人を偽のサイトへ誘導するなどの害を与えることがあります。運営者側の対応が大切なのはそのためです。

いつまでに対応すればいいですか?

できるだけ早く、です。Cloudflareは、公式の公開日より前に情報が漏れ、自社の顧客を狙う攻撃の通信を観測したと発表しています。8.2〜8.5ならサーバー会社の適用を待って確かめる、8.1以前なら切り替えの準備を今日のうちに始める、が目安です。

PHP 8.2はいつまで使えますか?

PHPの開発チームは、8.2のサポートを2026年12月31日で終えるとしています。それ以降は、今回のような問題が見つかっても修正版が出ません。年内に8.3以上へ上げておきます。

まとめ|今やることのチェックリスト

  • php2shellは、PHPそのものにある2つの重大な脆弱性(CVE-2026-109618・CVE-2026-109619)。ログインなしで、外からサーバーの上でプログラムを動かされるおそれがある
  • WordPressなど、PHPで動くサイトはほぼすべてが対象。WordPressの更新、メンテナンスモード、php.iniの設定変更では直らない
  • 修正版は8.5.12・8.4.27・8.3.36・8.2.35。レンタルサーバーなら、入れ替えはサーバー会社が行う
  • 自分のサイトのPHPのバージョンを確かめる(WordPressならサイトヘルス)
  • 8.2〜8.5なら、サーバー会社の適用を待って確かめる。8.2は年内に8.3以上へ
  • 8.1以前なら、バックアップとテーマ・プラグインの更新を済ませ、8.3以上への切り替えを考える
  • 修正が入ったら、見覚えのない管理者やファイルがないかを確かめる
成果から逆算するHP制作
← Back to Blog