2026年10月21日、Webサイトを動かすソフト「PHP」の重大な弱点(脆弱性)を直す更新が公開された。悪用されると、サイト運営側のコンピューターである「サーバー」に、外部から勝手な命令を実行させられるおそれがあった。
国内でも一部のサイトや機能が止まったが、そこには攻撃を防ぐために運営者が自ら止めた例もある。まず、自分の立場で必要な対応を確認し、そのうえで何が起きたのかを見ていこう。以下は2026年10月24日時点の公式発表に基づく。
サイトを見る人・運営する人に必要な対応
| あなたの立場 | すること |
|---|---|
| サイトを見る・使う人 | 利用サービスの公式案内で、使えない機能や利用者へのお願いを確認する。PHPの更新は運営側が行う。パスワード変更などの個別案内があれば従う。 |
| レンタルサーバーで運営する人 | 契約サービスが今回の弱点に対応済みか、自分で行う操作があるかを確認する。 |
| 自分でサーバーを管理する人 | PHPを更新し、必要な再起動を行って反映を確認する。更新前に侵入されていなかったかも調べる。 |
同じ会社でも、サービスによって管理する人が違う。エックスサーバーでは、会社側が修正するレンタルサーバーと、利用者が管理するVPSで対応が分かれる。会社名だけでなく、自分の契約サービスまで確認したい。
PHPとは?WordPressとどんな関係がある?
たとえばWordPressで作ったサイトでは、PHPがWordPressのプログラムを動かして、表示するページを用意する。スマホから見えるページの裏側で、PHPが働いている。
サイトを動かすコンピューター
サイトのプログラムを動かす仕組み
今回、直す必要があったのは、このPHP本体。
WordPressや、その追加機能であるプラグインを更新するだけでは、PHP本体の弱点は直らない。PHPにも修正を適用する必要がある。
なぜサイトが止まった?攻撃や被害は確認された?
修正中もサイトを開けておくと、その間に攻撃を受けるおそれがある。英国の公的なサイバーセキュリティ機関NCSCも、更新などをすぐ実施できない場合には停止を検討するよう案内した。報道を読むときは、次の違いを押さえたい。
| 公表されたこと | 分かっている範囲 |
|---|---|
| 予防のための停止 | 気象庁は、停止は予防措置であり、攻撃によるものではないと説明した。停止したことだけで、侵入されたとは判断できない。 |
| 攻撃の試み | Amazonは、10月17日の攻撃の試みを報告した。攻撃の様子を調べるために用意した、おとりのシステムで観測したものだ。 |
| 実際の侵入や情報流出 | Amazonは、観測した試みが実際のシステムで成功し得たかは不明としている。この観測だけでは、被害を受けた組織の数や情報流出の規模は分からない。 |
気象庁で止まったのは、過去のデータ検索などの一部ページ。気象警報・津波警報・地震情報の提供は続いており、23日11時頃には全ページの公開を再開した。
エックスサーバーも、管理画面などを一時停止した一方で、顧客のサイト表示やメールソフトでの送受信は継続していた。「サーバー会社が停止」とだけ読むと、利用者のサイトまで全部止まったように受け取ってしまう。
また、「悪用を確認していない」という発表は、その組織が、その時点で把握した範囲の話だ。後から過去の記録を調べて攻撃が見つかることもあるため、発表日と調査の範囲も確認したい。
PHP2Shellは、どんな不具合だったのか
今回の二つの弱点は「PHP2Shell」とも呼ばれる。原因は、PHPが一時的に使う作業場所「メモリー」の扱いにあった。必要な間だけ借りて使う、作業机のようなものだ。
「準備済み」と扱う
メモリーが足りず、途中で止まる
準備は済んでいると思い込む
古いメモを使う
作業場所を返しても、メモが残る
二つの弱点には、CVE-2026-109618とCVE-2026-109619という番号が付いている。「メモリーが足りない」には、PHPに決められた使用量の上限に達する場合も含まれる。
攻撃者が細工した通信を送り、これらの間違いをうまく利用すると、PHPに予定外の命令を実行させられる場合がある。実行できる範囲はPHPに与えられた権限によるが、その範囲で情報を盗まれたり、ファイルを書き換えられたりする危険がある。
PHPの動かし方によっては、サイトのプログラムが動き始める前に攻撃が成立することも実証された。入力内容を調べる処理をサイトに用意しても、その前に攻撃される経路があった。
発見から修正版の公開まで、何があったのか
開発を支援するPHP Foundationと、発見したセキュリティ企業Califの報告を整理した。時刻は日本時間。
| 時期 | 起きたこと |
|---|---|
| 2024年 | 一方の不具合につながる兆候を把握。ただし、具体的な攻撃方法は、まだ確認されていなかった。 |
| 2026年8月 | Califが実際に命令を実行できる方法を報告。PHP側も、実証用プログラムが動くことを確認した。 |
| 10月21日未明 | 正式公開より先に、脆弱性の番号や誤った公開時刻・深刻度が広がった。その後、実証動画の誤公開も起きた。 |
| 10月21日23時 | 修正版を、予定より1日早く公開した。 |
修正が遅れた背景には、既存のプログラムが動かなくなる懸念、判断の停滞、人員不足があったとFoundationは説明している。Foundation自身が、組織的な失敗を認めている。
調査にはAIも使われた。Califによれば、研究者が過去の不具合の知識をもとに仮説を立て、AIの助けを借りながら検証を進めたという。
「Webの約7割」「深刻度9.2」は何を表す?
「約7割」は、PHPが使われている割合だ。W3Techsの10月23日の集計では69.3%だが、対象は「調査で、サイトを動かす言語を特定できたWebサイト」。被害を受けたサイトの割合でも、攻撃が成功する確率でもない。
二つの弱点の正式な深刻度は、どちらも10点満点中9.2で、初期に広まった「10.0」は誤りだった。9.2も最も深刻な区分に入る。これは弱点の技術的な危険度を表す数字で、被害件数を測ったものではない。
攻撃の条件はPHPの動かし方や設定によって変わる。ただし、PHP公式は、Webサイトを動かしているPHP全般に更新を求めている。一部の方式で攻撃が実証されたという情報から、ほかの方式なら安全だとは判断できない。
運営者の対策:PHPの更新と、その後の確認
まず、PHPやサーバーの提供元が「今回の弱点に対応済み」と案内しているかを確認する。PHP公式が10月21日に公開した修正版は次のとおりだ。
| 使っている系列 | 二つの弱点を直した公式版 |
|---|---|
| PHP 8.2 | 8.2.35 |
| PHP 8.3 | 8.3.36 |
| PHP 8.4 | 8.4.27 |
| PHP 8.5 | 8.5.12 |
提供元が、以前のバージョンに必要な修正だけを取り込む場合もある。Ubuntuのように公式版とは違う番号で修正済みのものを配る例があるため、番号の大小だけでは判断できない。古い系列では、今後も修正を受け取れる環境かも確認したい。
更新を入れたら、反映と侵入の痕跡を確認する
新しいファイルを入れても、動き続けているPHPが古い内容を使っている場合がある。必要な再起動を行い、実際のサイトが修正済みのPHPで動いていることまで確かめる。
JPCERT/CCは、不審な通信や、身に覚えのないファイルなどの確認も求めている。弱点を塞いでも、更新前に持ち込まれた不正なプログラムまで消えるわけではない。侵入が疑われる場合は、記録を保存して影響範囲を調べる。
不審な通信を止める対策だけで、対応を終えない
不審な通信を止める仕組み「WAF」を使っていても、PHPの更新は必要だ。また、話題になった memory_limit=-1 は、PHPが使うメモリー量の上限を外す設定。使いすぎによる障害の危険が増すうえ、弱点そのものの修正にはならない。設定だけで対応を終えないことが大切だ。
10月23日の追加案内も確認する
PHP公式は10月23日、別の弱点について追加の注意を出した。ログイン状態などを記録するデータの保存方法を、プログラムの途中で切り替える特殊な使い方が関係する。ファイルの送信がどこまで進んだかを記録する機能も有効だと、21日の修正版でも影響を受ける組み合わせがある。
この問題の番号はCVE-2026-115560。公式は、次の通常の修正版まで、送信の進み具合を記録する機能を無効にすることを勧めている。処理の途中で保存方法を切り替えないサイトでは、有効なままでもよいとしている。運営者は公式案内の対象条件を確認し、必要ならサーバー側で設定を変更して再起動する。管理をサーバー会社に任せている場合は、その対応状況を確認したい。