TL;DR:PHPは世界で最も多くのウェブサイトが使うバックエンド言語だ。研究者がAIを活用してその中に2つの深刻な脆弱性を発見した。影響を受けるバージョンは最古で14年前にさかのぼり、攻撃者はログイン不要でサーバー上で自由にコードを実行できる可能性がある。修正パッチの公開前に情報が流出し、攻撃試行もすでに始まっていた。日本の高市早苗首相はXで今夜中の対応を呼びかけ、修正が間に合わない場合はサイトの一時停止も有効な手段のひとつだと述べた。一般ユーザーは慌てなくていい。自分でサイトを持っている人は、サーバー上のPHPが更新されているかを確認すること。
皆様に、今夜に対応して頂きたい大至急のお願いです。
多くのウェブサイトで使用されているPHPに関し、PHPのセキュリティチームが、重大な2件の脆弱性に関する注意喚起を行っています。
公開しているウェブサイトでPHPを使用しているか確認し、今夜、10月21日午後11時(日本時間)に公開される修正パッチについて、可及的速やかに適用できるよう準備をお願いします。
修正パッチを速やかに適用することが困難な場合は、例えばウェブサイト等を一時的に停止させることも、リスクを低減させるための有効策の一つと考えられます。
国家サイバー統括室のXアカウントでも関係する情報を発信していますので、そちらも参考にして下さい。 国家サイバー統括室(注意・警戒情報)(@cyber_forecast) / X
これは日本時間2026年10月21日午後9時55分(台湾時間午後8時55分)に、日本の首相・高市早苗がXに投稿した全文だ。
台湾時間10月22日午後1時半、私はXのおすすめフィードをスクロールしていてこの投稿を目にした。システムが自動翻訳した中国語版だった。画面には「16時間前」と表示されており、いいね数は32万を超えていた。
一国の首相が自分のアカウントを使って、あるプログラミング言語の脆弱性に「今夜」対応するよう呼びかける。こんなことは滅多にない。日本の技術メディアITmediaも、首相が個別のソフトウェア脆弱性についてXで直接呼びかけるのは異例だと伝えている。
スクリーンショットをAIに渡して、まず自分が関わるサイトに影響がないかを確認してもらい、それから事の経緯を最初から調べ直した。この記事は、その調査をまとめたものだ。コードを書かないけれど毎日ウェブサイトを使っている人に向けて書いている。
PHP2Shellとは何か。なぜ2つの脆弱性が各国のサイト停止を招いたのか
PHP2ShellはPHPに存在する2つの脆弱性で、識別番号はCVE-2026-109618とCVE-2026-109619だ。攻撃者はアカウントもパスワードも不要で、ウェブサイトに細工したリクエストを送るだけで、サーバー上で自分のコードを実行できる可能性がある。
PHPはウェブサイトを作るためのプログラミング言語だ。あなたが読んでいるブログ、注文している通販サイト、その多くがPHPで動いている。最も有名な例がWordPressだ。W3Techsの統計によれば、バックエンド言語を特定できるウェブサイトのうち69.3%がPHPを使っており、約7割に上る。
名前を分解すれば意味がわかる。PHPからshellを取る、という意味だ。shellはサーバーのコマンドウィンドウであり、それを手に入れると、ウェブサイトのプログラムと同じ権限でそのマシンに命令を出せる。どこまでできるかは、そのサイトの権限設定次第だ。
2つの脆弱性はいずれもPHPチームからCVSS v4.0スコア9.2(10点満点)と評価されている。セキュリティ研究者のKevin Beaumontは、これは過去数年で最大級の脆弱性の一つとなり、大きなセキュリティインシデントの波を引き起こすだろうと述べた。
WizとCalifの情報によれば、研究者が特定した最古の影響バージョンは2012年のPHP 5.4で、修正前の最新版8.5.11まで、すべてのバージョンが少なくとも一方の脆弱性の影響を受ける。つまり最古の問題は、PHPの中に少なくとも14年間存在していたことになる。
この2つの脆弱性はどういう仕組みか。レストランの厨房にたとえると
ウェブサイトをレストランに見立ててみよう。あなたがページのボタンを押すのは、注文票を厨房に渡すようなものだ。PHPは厨房で、その注文票に従ってあなたが見るページを作り上げる。1枚の注文票ごとに作業台を使い、作り終えたら片付けて次の注文を受ける。
1つ目の脆弱性は「作業中に材料が尽きた」ときに起きる。PHPはリクエストを処理する途中でメモリが枯渇して強制中断されることがある。そのとき、データが半分しか書き込まれていない状態になる。ところが後片付けを担当するコードがこの半端なデータを完全なものとして扱い、そのまま処理を続けてしまう。攻撃者はこの中断を意図的に引き起こし、後片付けコードに細工した半端な注文票通りに動かすことができる。
2つ目の脆弱性は「前の注文票が片付けられていない」ことに起きる。あるリクエストの処理が終わり、そのメモリはすでに解放されているのに、PHPはそこへの参照を残している。次の注文を同じ作業台で受けたとき、この期限切れの参照をまた使ってしまう。研究者はこの隙間を利用してリモートコード実行を実現した。
研究者はまた、この脆弱性を組み合わせることで、サーバーのメモリに残っているパスワード・ログイン認証情報・APIキーを読み出せることも実証した(Qualysの解説)。
PHP公式のアナウンスでも、Apacheにmod_phpを組み合わせた構成では、ウェブサイト自身のコードが実行される前に攻撃が発動できると指摘しており、この構成を最もリスクが高いと位置づけている。サイトのコードをどれだけ丁寧に書いても意味がない。問題は厨房の設備そのものにあるからだ。
AIはどうやって長年PHPに潜んでいた脆弱性を見つけたのか
8月11日、セキュリティテスト会社のCalifとOpenAIが同日に、それぞれ独立してPHPに同一の根本問題を報告した。CalifはOpenAIの「Patch the Planet」プログラムに参加しており、OpenAIのモデルGPT-5.6 Solを使用した。8月24日にはGoogleグループのセキュリティ企業Wizも独自に報告した。使ったのは自社のAIエージェントWiz Atlasで、Gemini 4 ArgonとGPT-5.6 Solを組み合わせている(PHP財団の説明・TechCrunch)。
彼らが踏んだのはセキュリティ界の標準的なプロセス「責任ある開示」だ。まずPHPチームに非公開で通知し、修正を準備する時間を与えてから、修正パッチと脆弱性の詳細を同時に公開する日時を取り決める。今回の当初の公開予定はUTC10月22日14時だった。Fortuneの報道によれば、OpenAIは公開前にCloudflareなどの事業者や米国政府の複数の部署とも準備を進めていた。
この脆弱性が全く手つかずだったわけでもない。PHP財団によれば、2024年にはすでに財団から委託を受けたコア開発者が、1つ目の脆弱性の根底にある「メモリ不足」問題の最初の兆候を発見していた。当時、攻撃に利用される可能性は想定されていたが、具体的な攻撃手法は見つからなかった。修正方針の候補もいくつかあり、それぞれトレードオフがあって作業が止まっては再開を繰り返し、数か月を要した。財団自身もこの遅れを構造的な失敗と認めており、セキュリティチームの意思決定プロセスと人手不足を原因として挙げている。8月の報告が問題の深刻さを明確にしてはじめて、修正が最優先事項になった。
かつては、ある脆弱性を異なるバージョンや構成でも通用する攻撃コードに仕上げるには、相当な専門技術が必要だった。Wizはブログで、最先端のAIモデルがその難易度を大幅に下げ、長年存在してきた脆弱性を使える攻撃コードへと変えやすくしたと述べている。OpenAIも、脆弱性を発見する能力は同様に攻撃者がより速く攻撃ツールを作るのに使えると警告している。
パッチが出る前に攻撃が先に来た。情報漏洩と数時間の競争
保秘は完全には守られなかった。10月20日、技術フォーラムのHacker Newsに、2つの脆弱性の識別番号と「深刻度は満点だ」という投稿が現れた。その投稿はすぐ削除されたが、セキュリティ企業がこれら2つの脆弱性の実在を速やかに確認した(Infosecurity Magazine)。PHP財団の事後説明によれば、流出したのは識別番号のみで、付随していた公開日時とスコアはいずれも誤りだった(正式スコアは9.2)。技術的な詳細は流出していない。流出を受けてPHPチームは公開を1日前倒しし、UTC21日14時に変更した。台湾時間では21日午後10時、日本時間では午後11時にあたる。
その後、さらに2つの経緯が加わった。数時間後、脆弱性を発見したCalifが誤って実証動画を公開してしまった。映像には複数のターゲットで攻撃実証コードが成功している様子が映っており、限られた詳細が追加で流出した。21日の午後(台湾時間)には、セキュリティ企業のChainguardが取り決めた公開時刻を待たずに修正済みバージョンを先行リリースした。財団によれば、この時点から攻撃者は修正内容を解析できるようになる一方、他のPHPユーザーはまだ正式版を待っている状態だった。
より早い兆候はAmazonのハニーポットシステムに記録されていた。AmazonはMadPotという、攻撃者をおびき寄せるための囮サーバー群を運用している。Amazonの報告によれば、MadPotは10月17日、つまり公開の4日前にこの脆弱性を狙った攻撃試行を1件記録していた。攻撃者がどのように事前情報を入手したかはAmazonにもわかっていない。また台湾時間21日午前10時頃にはすでに複数の攻撃実証コードが出回っており、正式公開の12時間前にあたる。ただAmazonは、これらの試行が実際のシステムで成功するかどうかはまだ確認できていないとも述べている。PHPチームは、正式公開の時点では実際に動作する攻撃コードの確認はなかったとしている。
CloudflareのCEO・Matthew PrinceはXへの投稿で、自社ネットワーク上での数字を公開した。公開前の10時間で数千件の攻撃試行、公開後45分で数万件、2時間以内に数十万件、投稿時点では数百万件に達していた。
Amazonの報告には印象的な一文がある。「保秘期間が防御側を守れるのは、別の誰かが同じ脆弱性を発見するまでの間だけだ。」そしてこうした外部公開されている深刻な脆弱性への対応スケジュールは、時間単位で考えるべきだと推奨している。
📊 主要データ
- 影響を受けるバージョン:研究者が特定した最古のPHP 5.4から8.5.11まで(すべてのバージョンが少なくとも一方の脆弱性の影響を受ける)
- 深刻度:両脆弱性ともCVSS v4.0スコア9.2
- 修正済みバージョン:8.5.12・8.4.27・8.3.36・8.2.35
- 最初の攻撃試行:2026年10月17日、公開4日前(Amazon MadPot)
- 公開後2時間:数十万件の攻撃試行(Cloudflare)
なぜ日本の首相が登場したのか。サイト停止は台風休暇と同じ発想だ
日本のサイバーセキュリティを担う政府機関「国家サイバー統括室」がXで警告を発し、高市早苗も日本時間21日午後9時55分に投稿して統括室の情報を参照するよう呼びかけた。その1時間後の午後11時に修正パッチが公開された。
21日の午後から深夜にかけて(日本時間)、日本の多くのサービスが自主的にサイトを停止した。ネットショップ開設プラットフォームのBASEは説明ページで、使用しているPHPに重大な脆弱性が見つかったためと明記し、当初午後10時に予定していたメンテナンスを午後3時50分に前倒しした。Cygamesの『ウマ娘 プリティーダービー』などもPHPの脆弱性を理由に緊急メンテナンスに入った。イラストコミュニティのpixiv、動画サービスのniconico、札幌市の公式サイトも同じ夜にサービスを一時停止したが、これらの告知にはPHPとは明記されていない(Webセキュリティ診断センターのまとめ)。金融機関も追随し、ロイターの報道では三菱UFJフィナンシャル・グループが一部のネットサービスを停止し、財務省も一部のウェブコンテンツを停止した。高市早苗本人の公式サイトもその夜から停止され、翌日の正午前後に対応完了後に再開した。
ITmediaはエンジニアたちの反応をまとめている。首相自らが発言したことで、企業の経営層もリスクを意識したという。ITmediaはまた、サイトの停止は事業に影響が出るため修正対応が後回しにされやすいが、首相がサイトの一時停止をリスク低減の有効な選択肢のひとつと位置づけたことで、経営者が停止を決断する後押しになると分析している。
この発想は台湾の人にはなじみ深いものだろう。台風が上陸する前に県市政府が休業・休校を宣言して、被害が出る前に人を安全な場所にとどめておくのと同じだ。あの夜の日本のサイト停止ラッシュは、インターネット上の台風休暇だった。
翌22日、東京株式市場ではセキュリティ関連株が上昇した。Investing.comの報道によれば、セキュリティサービスへの需要が高まるとの見方が市場に広がった。終値ではトレンドマイクロが8.69%高、FFRIが9.62%高。企業向けメールとメールセキュリティを手がけるサイバーソリューションズ(Cyber Solutions、コード436A)は2,000円で引け、20.85%高となった。出来高は約627万株で前日の8.7倍だった(株探の終値データ)。この会社は10月6日にAIメールセキュリティサービスの提供開始記念キャンペーンを発表し、同日の終値も21.38%高を記録しており、その日はFFRIとトレンドマイクロもそれぞれ6.38%・2.76%上昇した。22日午後時点で同社の公式サイトにPHP2Shellに関する公告はなく、22日の上昇はセキュリティ関連株全体が買われた動きとみる方が自然だ。(開示:私はこの会社の株式を保有している。この段落は市場の動きを整理したものであり、投資助言を構成しない。)
他の国も動いた。米国のサイバーセキュリティ・インフラセキュリティ庁(CISA)は即時修正を呼びかけ、英国の国家サイバーセキュリティセンター(NCSC)は英国企業に直ちに更新するよう呼びかけ、対応できない場合はシステムをオフラインにするよう求めた。ロイターも欧州の政府系サイトが一時的にオフラインになったと報じている。
台湾では、数位発展部資通安全署が22日にプレスリリースを発表し、PHPを使用する機関・学校・企業に対してバージョンを確認し速やかに更新を完了するよう求めた。更新後もサーバーログに異常なアクセスがないかを確認することも呼びかけている。
自分のサイトは影響を受けているか。どうやって確認したか
自分自身の話に戻る。AIが数分かけて、私が関わるいくつかのサイトを外部から一通りチェックした。各サイトに対してPHPがよく使うURLをリクエストしてサーバーの応答を見るとともに、ページのソースコードを調べてWordPressのようなシステムの痕跡を探した。結果はいずれもPHPを確認できなかった。paulkuo.twを例に取れば、ページは事前に生成された静的ファイルとして配信されており、Cloudflareのエッジネットワーク上に置かれている。メンバーログインのようなバックエンド処理が必要な機能はCloudflare Workersに任せている。
以前セキュリティ監査の経験を書いたことがある。AIが「修正した」と言っても、curlを使って外部から実際に叩いて確認しないと意味がない、という話だ。今回の判断も、サーバーが実際に返したレスポンスを根拠にしている。
影響を受けなかった理由はひとつだ。使っているアーキテクチャの中にPHPというパーツがない。次に脆弱性が自分の使っているコンポーネントで見つかれば、同じ問いに答えなければならなくなる。自分のサイトがどんなソフトウェアで動いているかを把握しているか。問題が起きたとき、数時間以内に修正できるか。
AIが脆弱性を隠せなくした後、セキュリティで問われるのは何か
タイムラインを広げて見てみよう。最古の問題はPHPに少なくとも14年間存在し、今年8月にAIを活用した研究者たちによって発見された。修正パッチの公開12時間前には攻撃実証コードが出回り、公開後2時間で攻撃試行は数十万件に達した。
AIが脆弱性を隠せなくした。セキュリティの勝敗は誰が先に発見するかから、誰が先に修正できるかへと移っている。
速く修正するには、日頃の備えが要る。自分のサイトがどんなソフトウェアで動いているかを知っていなければならない。問題が起きたとき、すぐに更新できる権限を持った人間が必要だ。必要とあれば一時停止すると判断できる人間も要る。この3つは警報が鳴ってから探しても間に合わない。平時に整えておくしかない。
高市早苗が日本時間22日午後1時(台湾時間正午)に投稿した2つ目の投稿も、同じことを語っている。前夜、自分の公式サイトについて事務所がサイトとサーバーの管理者に連絡し、先に停止して対応を済ませてから再開したと説明した。状況によってサイトを一時停止することも重要な対応だとも述べている。また、サイト運営者の中には真夜中に対応が必要な状況でも警告を即座に目にできない場合があるとし、社内のサイト担当者や委託先のサイト・サーバー管理者が先に気づけば早く動き出せると指摘した。こうした管理者が日本政府のセキュリティ警告を発信するXアカウント@cyber_forecastをフォローしていれば、より素早く対応できるはずだと述べている(ITmedia報道)。
エゼキエル書33章には見張り人の責任が記されている。見張りが剣の来るのを見たならば、角笛を吹いて民に警告せよ。角笛の音を聞いて警戒しなかった者は、その責任を自分で負う。見張りが見ていながら角笛を吹かなかったならば、その責任は見張りに落ちる。
あの夜、高市早苗がしたのは角笛を吹くことだった。翌日の投稿は、次からどこで角笛の音を聞けばいいかを人々に伝えることだった。
角笛が鳴った後に
ウェブサイトを使うだけの人なら、ここ数日よく使うサービスがメンテナンス中になっていても慌てなくていい。運営者が警報に従って対応している可能性が高い。あなたにできることは、異なるサイトで同じパスワードを使い回さないこと、そしてこの時期に「セキュリティアップデート」を名乗って送りつけられてくるメールに気をつけることだ。
自分でブログや通販サイトを運営しているなら、サーバー会社に一言確認しよう。サーバー上のPHPは修正済みバージョンに更新されているか。修正済みバージョンは8.5.12・8.4.27・8.3.36・8.2.35で、使用しているブランチに合わせて選ぶ。PHP 8.1以前を使っている場合、公式は通常のアップデートを提供しておらず、7.4から8.1向けには最小限の修正のみが提供される。最も確実な対応はサポート中のバージョンへの移行だが、間に合わなければ先にサイトを停止することだ。PHP公式のアナウンスにはこう書かれている。「完全な緩和措置は存在しない。更新が唯一の安全な選択だ。」
次に角笛が鳴るとき、首相が前夜から呼びかけてくれるとは限らない。そのとき、あなたの組織には何を修正すべきかを知っている人がいるか。そして止めると判断できる人がいるか。
AIが秩序をどう塗り替えているかについてのさらなる考察はこちら:知性と秩序。


💬 コメント
読み込み中...