本文へスキップ

PHPの脆弱性(php2shell)で何が起きた?一般人は何をすればいい?WordPress運営者の対策までわかりやすく解説

2026年10月21日、ネットのあちこちでサービスが止まりました。BASE、コドモン、シャドバ、エックスサーバーの管理画面。タイムラインには「PHPがヤバいらしい」「個人情報が全部抜かれる」「インターネット崩壊」といった言葉が並び、首相まで注意を呼びかける事態になりました。「スマホやLINEは大丈夫?」「ネットを使わない方がいい?」と不安になった人も多いと思います。

この記事では、PHPの重大な脆弱性(通称 php2shell/PHP2Shell)について、公式発表と信頼できる情報源をもとに「本当に起きていること」と「立場別にやること」を整理します。不安をあおるつもりはありません。正しく知って、やることをやれば乗り越えられる話です。

※この記事の情報は 2026年10月22日時点 のものです。状況は動いているので、最後に載せた一次情報もあわせて確認してください。

先に結論:あなたがやることは立場で決まる

あなたの立場やること
サービスを使うだけの人慌てなくてOK。止まったサービスは公式の再開告知を待つ。便乗詐欺メールに注意
レンタルサーバーでWordPressを運営している人サーバー会社のお知らせを確認。PHPのバージョンを選べるなら修正済みの系列へ
VPS・自前サーバーでPHPを動かしている人今すぐ修正版(8.5.12/8.4.27/8.3.36/8.2.35)へ更新し、PHPのプロセスを再起動
PHP 8.1以前を使っている人公式の修正版がない。移行するか、移行するまで公開を止めることを検討

ポイントは、WordPressやプラグインを最新にしても、この穴は塞がらないということです。直すべきなのはその下で動いているPHP本体です。

何が起きたのか:10月20日〜21日の流れ

もともとこの脆弱性は、8月にAIを使った調査で見つかり、PHPの開発チームが2か月あまりかけて、こっそり修正を準備していたものでした。脆弱性の情報を伏せたまま直し、準備ができた日に一斉に公開する「協調開示」という進め方です。公開は10月22日の予定でした。

ところが、その2日前から情報が漏れ始めます。

日時(日本時間)出来事
10月21日 0時ごろ2件のCVE番号(CVE-2026-109618、CVE-2026-109619)がSNSなどに流出。誤った深刻度「10.0」が添えられていた
10月21日 4時30分PHPが事前告知を出し、修正版の公開を1日前倒し
10月21日 5時ごろ発見者側の企業が攻撃の実演動画を誤って公開。すぐ削除されたが複製が出回る
10月21日 13時ごろ国家サイバー統括室がXで、PHPの使用確認と修正版の適用準備を呼びかけ
10月21日 21時台国家サイバー統括室と高市首相がXで、すぐ修正できない場合はサイトの一時停止も有効策だと投稿
10月21日 午後〜夜国内の多くのサービスが予防的に停止・緊急メンテナンスへ
10月21日 22時半〜23時ごろセキュリティ勧告と修正版 8.5.12/8.4.27/8.3.36/8.2.35 が公開

セキュリティ情報をまとめているブログ「piyolog」の集計では、22日未明までに停止や緊急メンテナンスを告知した組織は、国の機関や金融機関を含めて211にのぼりました。

止める判断は日本だけではありません。米国のCISAは、すぐ更新できない場合やPHP 8.1以前を使っている場合は修正するまでオフラインにするよう勧告し、オランダでは行政のログイン基盤DigiDなども予防的に止められたと報じられています。

どんな脆弱性なのか

「PHPそのもの」に穴がある

PHPは、Webサイトの裏側で動くプログラミング言語です。W3Techsの集計では、サーバー側の言語が判別できたWebサイトのおよそ7割がPHPを使っています。WordPressもPHPで動いています。

今回の2件は、WordPressのようなアプリではなく、PHPという言語を動かす本体(処理系)にあります。家にたとえるなら、玄関の鍵(WordPress)ではなく、家の土台にひびが見つかったような状態です。だから鍵を新しくしても意味がなく、土台を直す必要があります。

何をされる恐れがあるのか

深刻度はCVSS v4.0で9.2(Critical/緊急)。どちらもログインなしで、外からサーバー上のプログラムを動かされる(リモートコード実行)恐れがあるというものです。サーバーを乗っ取られれば、そこにあるデータの持ち出しや改ざん、別の攻撃の踏み台にされることも考えられます。

仕組みをかんたんに言うと、こうです。

1件目(CVE-2026-109618)は、メモリ不足のときの「後片付け」の不具合です。PHPは使えるメモリの上限に達すると処理を打ち切りますが、その瞬間に準備途中だったデータを、後片付けの処理が正しいデータとして扱ってしまうことがあります。攻撃者は、ファイルを送るときの形式(マルチパート)を細工したリクエストで、狙ったタイミングでメモリ不足を起こせます。

2件目(CVE-2026-109619)は、前のリクエストの痕跡が残ってしまう不具合です。すでに解放されたメモリを指したままの状態が残り、次のリクエストでそれが使われてしまいます。

どんな環境が危ないのか

公式の勧告によると、とくに危険なのはApacheにPHPを組み込んで動かす方式(mod_php)です。サイトのプログラムが動き始める前の段階で攻撃が成立し、初期設定のまま、認証なしの遠隔実行が確認されています。現在主流のPHP-FPMも影響を受けるとされています。

発見者の企業は、WordPress、Drupal、Joomla、Magento、phpMyAdmin、Nextcloud、Laravelなど11種類のアプリで、ログイン前の遠隔実行を確認したと公表しています。

影響を受けるバージョン

系列修正版状態
PHP 8.58.5.12修正版あり
PHP 8.48.4.27修正版あり
PHP 8.38.3.36修正版あり
PHP 8.28.2.35修正版あり(2026年12月31日でサポート終了)
PHP 7.4/8.0/8.1なしサポート終了済み。ソースコードでの修正のみ提供
それより古い版なし修正の予定なし

上の表の修正版より前のバージョンは、すべて影響を受けると考えてください。

「情報漏えい」は起きているのか:正しく怖がるために

ここがいちばん大事なところです。SNSでは不安な情報が飛び交いましたが、事実と見立てを分けて整理します。

サービスが止まった=漏えいした、ではない

今回の停止の多くは「修正版が出るまで、念のため閉めておく」という予防的な停止です。たとえばコドモンは、不正アクセスや情報漏えいは確認されていないとしたうえで全サービスを止めました。エックスサーバーも、管理画面の停止は不正アクセスによるものではないと明記しています。

止めた会社は、むしろ真剣に対応している会社です。止まったこと自体を「漏れた証拠」と受け取る必要はありません。

実際に悪用されているのか

ここは、発表元によって言っていることが違います。

発表元内容
PHPのセキュリティチーム公開時点で調べた攻撃コードのなかに、実際に動くものは確認できなかった
CISA(米国)勧告の公表時点で悪用は観測していない。悪用が確認された脆弱性の一覧(KEV)にも未登録
watchTowr自社のおとりサーバー(ハニーポット)で悪用を観測したと更新
Patchstack実際の悪用が複数確認されたと報告
Cloudflare攻撃者が防御のルールをすり抜けようと、中身を変えて試す通信を観測

※watchTowrとPatchstackの内容は、各社の更新を伝えた記事をもとにしています。

「攻撃の試み」と「侵入の成功」は別の段階ですが、攻撃の材料はすでに出回っています。サイトを運営している人は、悪用されている前提で動くのが安全です。

出回った情報で間違っていたもの

流出の段階で広まった情報には、のちに訂正されたものもあります。

出回った情報実際
深刻度はCVSS 10.0公式の評価は9.2
回避策はない/設定でなんとかなる設定で一部の経路は塞げるが、公式は「完全な対策は修正版への更新だけ」と明記
PHP 5以降すべてが対象流出段階の見立て。発見者によれば攻撃の経路はPHP 5.4.0までさかのぼる。公式の修正版は8.2〜8.5のみ
session.upload_progress を無効にすれば防げる公式もすぐ更新できない場合の緩和策の一つに挙げているが、特定の攻撃経路を減らすだけで、完全な対策ではない。公式は「アップデートが唯一の安全な選択肢」としている

また、同じ時期に不正アクセスや漏えいを公表した企業もありますが、10月22日時点で確認できた範囲では、原因として今回の脆弱性が名指しされているわけではありません。時期が重なっているだけのニュースを結びつけて拡散しないようにしたいところです。

一般人はどうすればいい?サービスを使うだけの人がやること

ネットショップやアプリ、ゲームを使っているだけなら、あなたがPHPを更新する必要はありません。直すのはサービスを運営している会社の仕事です。

スマホやパソコン自体は関係ない

今回の脆弱性があるのは、Webサイトの裏側にあるサーバーで動くPHPです。iPhoneやAndroid、普段使っているWindowsのパソコンでゲームをしたり、動画を見たりしているだけなら、端末そのものが狙われるわけではありません。スマホのアップデートやウイルス対策アプリで何かをする必要もありません。例外は、開発や勉強のために自分のパソコンでPHPを動かし、それをネットに公開している人です。その場合は、サイト運営者と同じ対応が必要になります。

LINE・YouTube・銀行アプリ・ゲームは大丈夫?

あるサービスが影響を受けるかどうかは、そのサービスの裏側でPHPを使っているか、どんな構成で動かしているかによって決まります。これは外からは分からないので、「〇〇は大丈夫」「〇〇は危ない」と言い切れるのは、運営している会社だけです。

SNSには「このサービスはPHPだから危ない」といった投稿も出回っていますが、根拠のないものも少なくありません。気になるサービスがあれば、その会社の公式サイトや公式のSNSのお知らせを確認してください。何も発表がないなら、普段どおり使ってかまいません。

ネットを使わない方がいい?

その必要はありません。サイトを見るだけで、あなたのスマホやパソコンに被害が出る種類の問題ではないからです。止まっているサービスは、再開を待てば大丈夫です。

パスワードやクレジットカードは変えるべき?

今回のことで、急いで全部のパスワードを変えたり、カードを作り直したりする必要はありません。利用しているサービスから漏えいの連絡が来たときに対処すれば大丈夫です。

ただし、騒ぎに便乗した詐欺には気をつけてください。「今回の脆弱性で被害を受けました」といったメールやSMSのリンクは開かず、公式アプリやブックマークから確認します。

漏えいの通知が来たときにやることや、自分の情報が漏れていないかを確かめる方法は、「情報漏えいの確認方法と、漏れたときにやること」にまとめています。

止まったサービスはいつ戻る?

再開の時期はサービスごとに違います。10月21日に止まったサービスの多くは、修正版を入れて安全を確かめたあと、22日中の再開を予定すると告知していました。一方で「再開は未定」としているところもあります。

止まったサービスの一覧と再開の見込みは、セキュリティ情報をまとめている「piyolog」の記事に、各社の告知へのリンクつきで整理されています。自分が使っているサービスの状況は、最終的には各社の公式の告知で確認してください。

サイトを運営している人がやること

レンタルサーバー(共用)でWordPressを運営している人

共用のレンタルサーバーでは、PHP本体を入れ替えるのはサーバー会社の仕事です。あなたがやることは次の3つです。

  1. サーバー会社のお知らせを確認する。 修正版を入れたか、メンテナンスの予定はどうかを、公式サイトやサーバーパネルのお知らせで確かめます
  2. PHPのバージョン設定を確認する。 サーバーパネルでPHPのバージョンを選べるサービスなら、修正版が入った系列を選びます。8.1以前を選んでいる場合は、8.2以降へ上げることを検討してください
  3. バージョンを上げる前にバックアップをとる。 古いテーマやプラグインは新しいPHPで動かないことがあります。先にバックアップをとり、上げたあとに表示と管理画面を確認しましょう

WordPressの管理画面で「最新です」と出ていても、それはWordPressの話で、PHPが直ったかどうかとは関係ありません。

VPS・クラウド・自前サーバーでPHPを動かしている人

こちらは自分で直す必要があります。

  1. バージョンを確認する。 php -v で確認します。CLIとWebで別のPHPが動いていることもあるので、phpinfo() などでWeb側も確かめてください
  2. 修正版へ更新する。 8.5.12/8.4.27/8.3.36/8.2.35 以降へ。UbuntuやDebian、RHEL系(remiリポジトリを含む)など、OSのパッケージで入れている場合は、それぞれのセキュリティ情報で修正入りのパッケージが出ているかを確認します。ディストリビューションによっては、番号は古いままで修正だけを取り込んだパッケージを出すことがあるので、バージョン番号だけで判断しないようにしましょう
  3. PHPのプロセスをすべて再起動する。 php-fpm やApacheを再起動しないと、古いPHPが動き続けます
  4. コンテナは作り直す。 Dockerなどで動かしている場合は、修正版を含むイメージから作り直してデプロイします
  5. 8.1以前なら移行計画を立てる。 公式の修正版はありません。すぐ移行できないなら、移行するまで公開を止めることも選択肢です

すぐに更新できない場合のつなぎとして、公式の勧告にはメモリ上限の設定変更や、マルチパート(ファイル送信)を使わないサイトでの遮断といった緩和策が書かれています。ただし、いずれも完全な対策ではありません。WAFも同じで、あくまで更新までの時間かせぎです。

侵入されていないかを確認する

更新が済んだら、念のため侵入の痕跡がないかも見ておきましょう。

  • 心当たりのないPHPファイルが増えていないか(WordPressなら wp-content/uploads の中にPHPファイルがあるのは要注意)
  • 知らない管理者ユーザーが追加されていないか
  • 見覚えのないcron(定期実行)が登録されていないか
  • アクセスログに、10月20日以降の大きなファイル送信(POST)が大量に残っていないか

怪しい点が見つかったら、データベースやFTP・SSHのパスワード、APIキーを変更し、侵入前のバックアップからの復旧を検討してください。自分で判断がつかない場合は、サーバー会社や専門の業者に相談するのが確実です。

見えにくい場所のPHPにも注意

ネットワーク機器や業務用のシステムなど、製品の内部でPHPが使われていて、外からは見えにくいことがあります。IPAやCISAも注意を呼びかけています。社内で使っている製品があれば、提供元のセキュリティ情報を確認しましょう。

健楽ひろばでやったこと

このブログ(健楽ひろば)はWordPressで、レンタルサーバーはConoHa WINGを使っています。実際にやったことを書いておきます。

まず、ConoHaのお知らせを確認しました。10月21日19時から22日10時まで、ConoHa WINGを対象にした「システムの保守作業」のメンテナンスが告知されていました。お知らせにPHPの名前は書かれていませんが、時期から見て今回の件への対応だと考えています。PHP本体の入れ替えはサーバー会社の仕事なので、ここは待つだけです。

次に、自分で選んでいるPHPの系列を確認しました。ConoHa WINGでは、コントロールパネルの「サイト管理」→「サイト設定」→「応用設定」タブ→「PHP設定」で見られます。

ConohaでのPHPバージョン確認手順

健楽ひろばは最初から8.3になっていたので、切り替えは不要でした。結局、やったのは確認だけです。8.1以下になっていた場合は、鉛筆マークから8.3以上に変更します。変更する前にバックアップをとり、変更後はトップページ・記事ページ・管理画面が正常に動くかを確かめてください。

最後に、実際に動いているPHPの細かい番号を確認しました。WordPressの管理画面の「ツール」→「サイトヘルス」→「情報」タブ→「サーバー」で見られます。

メンテナンス中の22日9時ごろに確認したところ、表示は「8.3.31」でした。今回の修正が入った8.3.36より古い番号です。コントロールパネルでは「8.3」と出ていても、中身が修正版とは限らない、ということがよく分かります。

サーバー会社によっては、番号を変えずに修正だけを取り込むこともあります。番号だけでは判断しきれないので、メンテナンス後の番号とConoHaのお知らせをあわせて確認し、それでも分からなければサポートに問い合わせることにしました。

この経験から言えるのは、レンタルサーバーの人も「サーバー会社に任せたから終わり」ではなく、サイトヘルスの番号まで一度は見ておいたほうがいい、ということです。

よくある質問

WordPressを最新にすれば大丈夫ですか?

いいえ。今回の穴はPHP本体にあるため、WordPressやプラグインを更新しても塞がりません。PHPが修正版になっているかを確認してください。

自分が使っているサイトがPHPかどうか、見分けられますか?

外から確実に見分ける方法はありません。そして、サービスを使うだけの人が見分ける必要もありません。影響があれば運営する会社が発表するので、それを待ちましょう。自分のサイトについて知りたい場合は、サーバーパネルや phpinfo() でPHPのバージョンを確認できます。

PHPの系列を新しくすれば(8.3→8.5など)直りますか?

系列を上げるだけでは直るとは限りません。たとえば8.5を選んでも、中身が8.5.12より古ければ同じ穴が残ります。直るかどうかは、サーバー会社が各系列の中身を修正版に入れ替えたかどうかで決まります。

切り替えたあとは、サイトヘルスで細かい番号を確認してください。上げる場合も、出たばかりの系列より、プラグインの対応が進んだひとつ前の系列(今なら8.4)のほうが安心です。切り替える前にはバックアップをとり、メンテナンス中の切り替えは避けましょう。

サーバー会社が対応したかどうか、どうやって確かめればいいですか?

サーバー会社の公式サイトのお知らせ(障害・メンテナンス情報)か、サーバーパネル内のお知らせを確認します。告知が見当たらない場合は、問い合わせるのが確実です。

予防的に止まったサービスで、自分の情報は漏れていますか?

予防的な停止は、漏えいを意味しません。漏えいが確認された場合は、各社が公式に発表します。それまでは公式の告知を待ちましょう。

PHP 8.1以前のままだとどうなりますか?

公式の修正版が出ていないので、穴が開いたままになります。レンタルサーバーなら8.3以降(最低でも8.2以降)を選び直し、自分で管理しているサーバーなら、移行が終わるまで公開を止めることも検討してください。なお8.2も2026年12月31日でサポートが終わるため、上げるなら8.3以降にしておくと次の移行までの余裕が生まれます。

もう大丈夫?いつまで警戒すればいいですか?

修正版に更新し、侵入の痕跡がないことを確認できれば、ひと区切りです。ただし攻撃の材料はすでに出回っているので、更新していないサイトはこれからも狙われ続けます。「まだやっていない」なら、今日のうちに済ませてください。

まとめ:やることをやれば乗り越えられる

今回のPHP2Shellは、Webの土台に見つかった重大な欠陥でした。それでも、修正版はすでに出ています。

  • サイトを運営している人は、PHPを修正版にする。レンタルサーバーならお知らせとバージョン設定を確認する
  • サービスを使うだけの人は、慌てず公式の告知を待ち、便乗詐欺に気をつける
  • 「止まった=漏れた」ではない。不確かな情報は広めない

たくさんのサービスが一斉に止まったのは、それだけ多くの人が本気で守ろうとした結果でもあります。ひとりひとりが自分の持ち場で確認を済ませれば、この危機は乗り越えられます。みんなで頑張りましょう。

参考情報

コメントを書く

メールアドレスが公開されることはありません。お名前とメールアドレスは入力が必要です。

CAPTCHA


メニュー

カテゴリ

よく読まれている記事

最近の記事

トップページへ