PHPとは?高市総理が呼びかけた脆弱性「PHP2Shell」で何が起こるのか

PHP公式サイトのトップページ。phpのロゴと修正版8.5.12・8.4.27・8.3.36・8.2.35、2026年10月21日のセキュリティのお知らせ
広告

2026年10月21日の夜、高市早苗総理がXで「今夜に対応して頂きたい大至急のお願い」と投稿しました。対象は「PHP」です。同じ日の夕方から、ネットショップやイラスト投稿サイト、ゲームが次々と緊急メンテナンスに入りました。PHPという名前を初めて聞いた人も、「自分に関係あるの?」と気になった人も多いはずです。

この記事では、PHPとは何か、どこで使われているのかを説明したうえで、このとき見つかった脆弱性「PHP2Shell」の何が問題で、放っておくと何が起こるのかを整理します。最後に、サイトを使うだけの人、サイトを持っている人、サーバーを管理する人のそれぞれがすることをまとめます。内容は2026年10月時点で、PHPの公式発表とIPA・JPCERT/CCの注意喚起を確認したものです。

PHPとは?Webサイトの裏側でページを組み立てるプログラミング言語

PHPとは、Webサーバーの上で動き、アクセスのたびにページを組み立てるプログラミング言語です。 ブログ、ネットショップ、会員サイトのように、見る人や時間によって中身が変わるページの多くは、裏側でPHPが動いています。

PHPの公式サイトは、PHPを「Web開発に特に向いた、広く使われている汎用のスクリプト言語」と説明しています。名前は「PHP: Hypertext Preprocessor」の略です。もとはラスマス・ラードフが自分のWebサイトのために作った「Personal Home Page Tools」で、1995年に公開されました。

数字で見ると、PHPがWebの土台になっていることが分かります。変わりやすい数値と、2026年10月の脆弱性の要点を1つの表にまとめます。

項目内容
サーバー側の言語が分かるサイトのうち、PHPを使う割合69.3%
PHPを使うサイトのバージョン8系 65.3%、7系 26.9%、5系 7.7%
公式のサポートが続いているバージョン8.2(2026年12月31日まで)、8.3(2027年12月31日まで)、8.4(2028年12月31日まで)、8.5(2029年12月31日まで)
2026年10月の脆弱性CVE-2026-109618、CVE-2026-109619(通称PHP2Shell)
深刻度どちらもCVSS v4.0で9.2(緊急)
修正版8.5.12、8.4.27、8.3.36、8.2.35
8.1以前公式の修正版は出ない(7.4・8.0・8.1向けに最小限のソースの修正だけ)

2026年10月22日時点で確認した数値です。

私がこの表でいちばん重いと感じるのは、PHPを使うサイトの3割以上が7系か5系で動いている点です。どちらも公式のサポートが終わっていて、穴が見つかっても公式の修正は届きません。

広告

HTMLだけのページと何が違う?PHPが動く仕組み

HTMLだけのページは、サーバーに置いたファイルをそのまま返します。PHPのページは、頼まれるたびにサーバーでPHPが動き、データベースから記事や商品を読み出して、その場でHTMLを組み立ててから返します。

HTMLだけのページとPHPのページの違いの図。PHPはサーバーでデータベースから情報を読み出し、HTMLをその場で組み立てて返す

たとえばネットショップでは、在庫の数、ログインした人の名前、カートの中身が人によって違います。これを1枚ずつ手で作ることはできないので、サーバー側でPHPが組み立てます。ブラウザに届くのは組み立て終わったHTMLだけなので、見ている側からPHPが動いていることは分かりません。

PHPで作られた代表的なソフトには、次のようなものがあります。

  • WordPress(ブログや企業サイトを作るCMS)
  • Drupal、Joomla(CMS)
  • MediaWiki(Wikipediaを動かすソフト)
  • Moodle(学校向けの学習管理)
  • Nextcloud(ファイルの共有)
  • EC-CUBE(ネットショップ)
  • Laravel、Symfony(アプリを作るための枠組み)

PHPは文法がCやJavaに近く、学びやすい言語として広まりました。私は、PHPが長く使われてきた理由は「レンタルサーバーに置けばすぐ動く手軽さ」にあると見ています。その手軽さのおかげで、何年も手を入れられていないサイトも、たくさん残っています。

PHPについて知っておきたい、変わらない3つのこと

PHPの事件を理解するには、3つの原則を押さえておけば十分です。弱点はサーバー側にあること、土台の穴はアプリでは防げないこと、サポートの終わった版には修正が来ないことです。

Webサイトの層の図。プラグインやWordPressの下にPHPがあり、PHPの脆弱性はWordPressを更新しても直らないことを示している

原則1: PHPの弱点はサーバー側にあり、見る側の機器では防げない

PHPは、サイトを見る人のスマホやPCではなく、サイトを運営する側のサーバーで動きます。 そのため、PHPの穴をふさげるのはサイトを運営する側だけです。見る人がスマホの電源を切っても、Wi-Fiを止めても、サーバーは動き続けます。

原則2: 土台の穴は、上に載るアプリを更新しても防げない

WordPressなどのアプリは、PHPという土台の上で動いています。アプリやプラグインを更新するとアプリの穴はふさがりますが、PHPそのものの穴はふさがりません。 PHP2Shellを見つけた研究者は、「Hello World」と表示するだけの簡単なプログラムでも、修正前のPHPで動いていれば影響を受けると説明しています。

原則3: サポートが終わった版には修正が来ない

PHPは、版ごとに公式のサポート期限が決まっています。期限を過ぎた版は、穴が見つかっても公式の修正が出ません。IPAは、更新し続ける人員・予算・保守の体制を確保できない場合、公開の終了やシステムの廃止も含めて考えるよう求めています。2026年10月に多くのサイトが「止める」を選んだのは、この原則があるためです。

2026年10月21日、高市総理は何を呼びかけたのか

高市総理は10月21日の21時55分にXへ投稿し、PHPを使うサイトの運営者に、23時に出る修正版をすぐ当てる準備を求めました。 当てるのが難しい場合は、サイトを一時的に止めることも有効だとしています。

投稿の要点は次の3つです。

  • 公開しているWebサイトでPHPを使っているかを確認する
  • 10月21日23時(日本時間)に公開される修正版を、すぐ当てられるよう準備する
  • すぐ当てるのが難しければ、サイトを一時的に止めることもリスクを下げる方法の1つ

総理が個別のソフトウェアの脆弱性について、Xで直接対応を呼びかけるのは異例のことでした。国家サイバー統括室も、Xで同じ内容を発信しています。技術者からは「総理が発信したことで、経営層にもリスクが伝わる」と評価する声が出ました。サイトを止めると売上や業務に響くため、止める判断は現場だけでは下しにくいものです。総理が「止めることも有効」と示したことは、経営層が停止を決める後押しになりました。

呼びかけの宛先は「皆様」でしたが、実際に手を動かせるのはサイトの運営者とサーバーの事業者です。私は、この投稿のいちばんの効果は、普段はPHPの名前も聞かない人たちに「Webの土台で何かが起きている」と伝えたことだったと見ています。

PHP2Shellの時系列。2026年10月21日21時55分に高市総理がXで呼びかけ、23時にPHPの修正版が公開された

国内では、10月21日の夕方からネットショップ作成のBASE、イラスト投稿のpixiv、ニコニコ、サイゲームズのゲーム、保育施設向けのコドモン、さくらインターネットなどが、サービスの全部または一部を止めて緊急メンテナンスに入りました。財務省も一部のWebコンテンツを一時的に止めています。対応をあきらめて提供の終了を告知したサービスもありました。

海外でも、各国の機関がサイトの停止を含む対応を求めました。

国・地域主な動き
米国CISA(米国のサイバーセキュリティ機関)が、すぐに修正版を当てるよう勧告
EUCERT-EUが、対応できない組織にはサイトの停止を検討するよう勧告
英国NCSC(英国の国家サイバーセキュリティセンター)が、すぐ直せないシステムはオフラインにすることを検討するよう呼びかけ
韓国KISA(韓国インターネット振興院)が、修正版への更新を勧告
欧州各国オランダやフィンランドの政府のポータルサイトなどが、修正を待つあいだ公開を止めた

2026年10月時点で確認した内容です。

翌22日には、修正版の公開から一夜明けて、止まっていたサービスが順に再開しました。BASE、pixiv、コドモンなどは、不正アクセスや情報の流出は確認していないと説明しています。

脆弱性「PHP2Shell」の何が問題なのか

PHP2Shellの問題は、ログインしなくても、外からサーバーで任意のプログラムを動かされるおそれがあることです。 しかも穴はPHPそのものにあり、Webのアクセスを受けるほぼすべてのPHPが対象になりました。

PHP公式サイトのセキュリティのお知らせ。2026年10月21日、CVE-2026-109618とCVE-2026-109619を修正したPHP 8.5.12・8.4.27・8.3.36・8.2.35の公開
(出典:PHP)

PHPの公式発表によると、2件の中身は次のとおりです。

番号何が起きるか
CVE-2026-109618メモリが足りなくなってPHPの処理が途中で止まったとき、作りかけのデータを正しいものとして扱ってしまう
CVE-2026-109619前のアクセスで使った内部の情報が、メモリを手放したあとも残り、同じ処理係(ワーカー)が受けた次のアクセスで使われてしまう

どちらも、処理が途中で止まったあとの「後片付け」がうまくいかないことが原因です。攻撃者は、わざとメモリを使い切らせるような細工をしたアクセスを送り、この状態を作ります。

PHP2Shellが重く見られた理由は、次の4つです。

  • ログインが要らない。 会員ページのIDとパスワードの確認より前に、攻撃が成立する
  • アプリのコードが動く前に起きる。 PHP公式は、ApacheでPHPを動かす「mod_php」の構成でいちばん危険が大きく、アプリのコードが1行も動く前に攻撃できることが実証されたとしています
  • ほぼすべての構成と版が対象。 PHP-FPM、mod_php、php-cgi、FrankenPHP、LiteSpeedが対象に挙がり、PHP 5.4以降のほぼすべての版がどちらかの影響を受けます
  • 公開前に情報が出回った。 脆弱性の番号が予定より早くSNSなどに出回り、PHP公式は修正版の公開を10月22日から21日に1日早めました

PHP2Shellを見つけた研究者は、WordPress、Drupal、Joomlaで、ログインせずに外からプログラムを動かせることを実演しています。ただし、この3つだけが狙われるわけではありません。穴はPHPにあるので、PHPで動くものすべてが対象になりえます。

何が起きたのかを短い時間でつかむには、ずんだもんとめたんの掛け合いで解説している動画が分かりやすいです。修正版より先に攻撃が始まった流れと、欧州の機関がサイトの停止まで勧告した理由が分かります。

YouTubeで見る

動画では、PHP2Shellを「玄関の鍵そのものが壊れている状態」とたとえています。修正版の公開を予告したあと、攻撃に使えそうなコードが先に出回り、修正版の前に攻撃の通信が観測されたこと、古い版を使い続けるサイトは更新で動かなくなるのを恐れて後回しにしがちなことにも触れています。私も、「動いているものは触らない」という判断の積み重ねが、このときの混乱を大きくしたと感じます。

放っておくと何が起こる?乗っ取り、書き換え、情報の盗み出し

修正前のPHPを放っておくと、サーバー上で攻撃者のプログラムを動かされ、サイトの書き換え、データの盗み出し、裏口の設置につながるおそれがあります。 JPCERT/CCは、PHPを動かしているプログラムの権限で、任意のコードを実行される可能性があるとしています。

PHPの脆弱性を突かれると起こることの図。サイトの書き換え、データの盗み出し、裏口の設置や踏み台

起こりうることを、サイトを見る人への影響が大きい順に並べます。

  1. サイトの書き換え: ページを書き換えられ、見た人が偽のページや詐欺に誘導される。ネットショップなら、カード情報を盗む入力欄を埋め込まれるおそれもある
  2. データの盗み出し: データベースのパスワードや、外部のサービスにつなぐための鍵、会員の情報を抜かれる。研究者は、プログラムを動かさなくても、サーバーのメモリから他人のパスワードや鍵を読み出せることも示している
  3. 裏口の設置と踏み台: あとから何度でも入り直せる仕掛けを置かれたり、ほかのサーバーへの攻撃に使われたりする

一方で、どのサイトでも一瞬で乗っ取られるわけではありません。動かされるのはPHPの権限の範囲で、いきなりサーバー全体を自由にできるとは限りません。構成によっては別の条件がそろう必要があり、攻撃を成功させるまでに数千回のアクセスが要る場合もあります。とはいえ、数千回のアクセスは機械で自動に送れる回数です。「条件があるから大丈夫」とは言えません。

実際に悪用されたかどうかは、情報によって説明が分かれています。

  • PHP公式は、修正版を公開した時点で、実際に動く攻撃コードは確認していないとしている。IPAも、事前準備を呼びかけた時点で悪用は確認していないとしている
  • Cloudflareは、修正版の公開前に攻撃の初期の試みを観測したとしている。Amazonは、公開の4日前の10月17日に、PHP2Shellを狙った試みを観測したと報告している

「攻撃の試み」と「侵入の成功」は別の段階です。2026年10月時点で、PHP2Shellによる侵入の成功は公表されていません。ただしJPCERT/CCは、痕跡が見つからなくても、攻撃を受けていないとは言い切れないとしています。私は、修正版を当てたあとも、しばらくはアクセスの記録を見ておくのが安全だと考えます。

自分は何をすればいい?立場ごとの確認

サイトを使うだけの人がPHPのためにすることはありません。止まったサービスの再開を公式のお知らせで確かめ、便乗した偽のメールやSMSに気をつければ十分です。 サイトを持っている人と、サーバーを管理する人は、PHPの版の確認と更新が必要です。

PHPの脆弱性への対応を立場ごとにまとめた図。サイトを使うだけの人、サイトを持っている人、サーバーを管理する人がすること

サイトを使うだけの人

  • スマホやWi-Fiの電源を切る必要はありません。 穴はサーバー側にあり、手元の機器を止めても対策になりません
  • アプリのログアウトや削除も要りません。 データはサーバー側に保存されているので、手元のアプリを消しても消えません
  • 止まったサービスは、公式サイトや公式SNSのお知らせで再開を確かめます。 注文や支払いの途中だった場合は、再開後に注文の状況を確認します
  • パスワード変更の案内は、メールやSMSのリンクから開かず、自分で公式アプリや公式サイトを開いて確かめます

私がいちばん気をつけてほしいのは、最後の項目です。大きな騒ぎのあとには、「PHPの更新が必要です」「パスワードを変えてください」とうたう偽のメールやSMSが出回りやすくなります。運営会社に被害が分かれば、公式に発表や連絡があります。

サイトを持っている人(WordPressやレンタルサーバーなど)

  1. サイトが動いているPHPの版を確かめる。レンタルサーバーなら、多くの場合、管理画面で確認できる
  2. サーバーの会社や制作会社のお知らせを見て、修正版(8.5.12、8.4.27、8.3.36、8.2.35以降)になっているかを確かめる。分からなければ問い合わせる
  3. 8.1以前で動いているなら、サポートが続いている版への移行を相談する

この順番にしたのは、1つ目が分からないと、2つ目と3つ目のどちらが必要か決まらないためです。WordPressやプラグインを最新にしても、PHPの穴は直りません。 会社では、キャンペーンサイトやグループ会社のサイトのように、別の担当や委託先が管理しているサイトで確認が漏れやすくなります。持っているドメインから、動いているサイトを洗い出すと漏れを防げます。

サーバーを管理する人

  1. 修正版へ更新し、Apache、PHP-FPMなど、PHPを動かしているプログラムを再起動する(再起動しないと、古いPHPが動き続ける)
  2. すぐ更新できない場合は、PHP公式が示した一時的な対策(memory_limit や session.upload_progress.enabled の設定)、WAFのルール、アクセスの制限を使う。ただし、どれも一部の攻撃経路をふさぐだけで、完全な対策は更新だけです
  3. 一時的な対策も難しければ、外からのアクセスを止める、サービスを一時的に止めることも考える
  4. 攻撃の痕跡を調べる。JPCERT/CCは、不自然に長いPHPSESSIDのCookie、不審な multipart/form-data のアクセスと、その前後のメモリ上限のエラーやHTTP 500のエラー、PHPの処理係の異常な終了や再起動を確かめるよう勧めている

Linuxのディストリビューションが配るPHPは、版の番号が古いままで修正だけが入っていることがあります。番号だけで判断せず、更新の記録にCVE番号があるかを確かめます。詳しい手順は、IPAの注意喚起とJPCERT/CCの注意喚起にまとまっています。

AIが見つけた穴と、「止める」という判断

PHP2Shellは、AIを使った調査で見つかりました。見つける力が上がったぶん、守る側には「告知から数時間で更新する」「更新できなければ止める」体制が求められています。

IPAの注意喚起ページ「PHPの脆弱性対策について(CVE-2026-109618、CVE-2026-109619:PHP2shell)」。2026年10月22日公開
(出典:IPA(情報処理推進機構))

発見の経緯は次のとおりです。

  • セキュリティ企業のCalifが、OpenAIの脆弱性を見つけて直す取り組み「Patch the Planet」の一環で、2026年8月1日に1件目を見つけ、8月11日にPHPへ報告した
  • Wizが、Califとは別に8月19日に見つけ、8月24日に報告した
  • OpenAIは、発見に使われたのは「GPT-5.6 Sol」だと発表した。Google Cloudは、Gemini 4 Argonが発見や修正の確認に大きく役立ったとしている

一方で、「AIが見つけた」という説明だけでは足りない、という指摘もあります。Califは、PHPの不具合の歴史を知る研究者が、AIを狙いどころに向けたと説明しています。この不具合の兆しは、2024年にPHPの点検で人の手によって見つかっていましたが、攻撃に使えるかを示せず、修正が進みませんでした。私は、AIは「誰も知らなかった穴」を見つけたというより、「難しくて放っておかれた穴」を、攻撃に使える形にするまでの手間を大きく減らしたのだと見ています。

ここで大事なのは、同じ道具を攻撃する側も使えることです。修正版が出たあとは、修正の中身から穴の場所を読み取り、まだ更新していないサイトを狙う動きが速くなります。IPAは事前準備の呼びかけの中で、攻撃者がきわめて短い時間で攻撃する可能性があると指摘していました。

だからこそ、多くのサービスが自分から止まりました。止まっていたあいだは不便でしたが、私は、被害が出る前に止めた判断は正しかったと考えます。IPAが求めているように、更新し続ける人と予算を持てないサイトは、止める、移す、やめるという選択も含めて考える時期に来ています。

よくある質問

PHPとは簡単に言うと何ですか?HTMLとは何が違いますか?

PHPは、サーバーの上で動いてWebページを組み立てるプログラミング言語です。HTMLはページの見た目と中身を書く書式で、そのまま表示されます。PHPは、データベースなどから情報を読み出して、HTMLをその場で作る側の役目です。

PHPの脆弱性で、自分のスマホやPCがウイルスに感染しますか?一般の人がすることはありますか?

PHPの穴そのもので、手元のスマホやPCが感染することはありません。穴はサーバー側にあります。ただし、書き換えられたサイトから偽のページへ誘導されることはありえます。止まったサービスは公式の案内で再開を待ち、偽のメールやSMSのリンクは開かないでください。

WordPressを更新すればPHPの脆弱性は直りますか?

直りません。WordPressはPHPの上で動くアプリで、PHPそのものは別に更新する必要があります。レンタルサーバーならサーバーの会社が、自分で管理しているサーバーなら管理者が、PHPを修正版に更新します。

自分のサイトのPHPのバージョンはどうやって確認できますか?

レンタルサーバーなら、多くの場合、管理画面のPHPの設定で確認できます。分からなければ、サーバーの会社や制作会社に問い合わせてください。2026年10月の脆弱性では、8.5.12、8.4.27、8.3.36、8.2.35以降が修正版です。

PHPはもう古い言語なのですか?これからも使われますか?

古い言語ではありません。1995年に公開されてから更新が続き、2026年10月時点でも8.5の系列が開発されていて、サーバー側の言語が分かるサイトの約7割で使われています。WordPressなど多くのソフトがPHPで動いているので、すぐに使われなくなることは考えにくいです。

PHPの穴からサイトと自分を守るために

最後に、要点を振り返ります。

  • PHPは、Webサーバーの上でページを組み立てる言語で、サーバー側の言語が分かるサイトの約7割で使われている
  • 2026年10月の脆弱性「PHP2Shell」は、ログインなしで外からプログラムを動かされるおそれがあり、高市総理や各国の機関が対応を呼びかけた
  • 穴はPHPそのものにあり、WordPressなどのアプリを更新しても直らない。直すにはPHPの更新が必要
  • サイトを使うだけの人がすることはない。偽のメールやSMSに気をつけ、公式の案内で再開を待つ

サイトを持っている人は、まずサーバーの会社のお知らせを開き、自分のサイトのPHPが修正版になっているかを確かめてください。すぐにできる確認ですが、PHPという土台を自分ごととして見るきっかけになります。

広告

この記事を書いた人

悟知(Satoshi)

SatoriNote 編集長 / Web編集者・ボーカリスト・作曲家

SatoriNote 編集長。SEO 会社、音楽イベント会社の Web 担当、WiMAX の EC サイト運用を経て、Web メディア「みんなのらくらくマガジン」の編集長を4年務める。元ヴィジュアル系バンドのボーカルで、現在も「悟知」名義で楽曲を制作・配信している。