Webの7割が当事者になった夜。総理も警告したPHP2Shellの正体
「なぜ世界中が数時間で大騒ぎになったのか」を時系列で解説した内容です。 実際、Reutersや各国の政府機関の発表を見ると、動画で説明されている流れとほぼ一致しています。Reuters
第1章 「エンバーゴ」が破られた
この動画で一番面白いのがここです。エンバーゴとは?
IT業界では重大な脆弱性が見つかると、研究者
↓
ソフトウェア開発者
↓
修正版を作る
↓
公開日時を決める
↓
みんな同時公開
「まだ直ってないから秘密にしておこう」という約束です。
今回はそれが崩れた
ところが、- Hacker Newsへの投稿
- SNSでの拡散
- 誤って公開されたPoC動画
「エンバーゴ破り」はかなり重大な出来事です。
第2章 なぜCVSS9.2なのか
CVSSは0~3
低
4~6
中
7~8
高
9以上
Critical
9.2
しかも2件
ログイン不要
↓
URLへアクセス
↓
攻撃成立
第3章 「Webの7割」が意味するもの
動画でWebの7割と言っています。 これは PHPの市場シェアのことです。 PHPは
- WordPress
- Laravel
- Drupal
- MediaWiki
- phpMyAdmin
WordPressだけ危険
×
PHP全部
世界中
↓
数千万サイト
↓
一斉アップデート
第4章 オランダがサイトを止めた理由
一般人から見るとパッチが出るまで待てば?と思うかもしれません。 しかし、
脆弱性が公開
↓
攻撃コードも出回る
↓
パッチはまだ適用できていない
サービス停止
↓
アップデート
↓
再開
高市総理が投稿した意味
動画でも強調されていました。 日本では 総理大臣がPHPを更新してください
JPCERT
IPA
デジタル庁
「一番見過ごされている1行」
動画では最後に「パッチを当てて終わりではない」という話が出てきます。 実はこれが現場では一番重要です。 アップデートしたら
終わり
攻撃されていないか
↓
ログを見る
↓
侵入されてないか調査
自動スキャン
↓
攻撃
↓
WebShell設置
攻撃
↓
その後パッチ
業界では「Log4Shell以来」と言われる理由
この動画を見ていて、多くのエンジニアが思い出したのが Log4Shell(2021年) です。 共通点があります。| Log4Shell | PHP2Shell |
|---|---|
| 世界中が使用 | 世界中が使用 |
| RCE | RCE |
| 緊急アップデート | 緊急アップデート |
| 一斉メンテ | 一斉メンテ |
| 政府も警告 | 政府も警告 |
「PHP版Log4Shell」と呼ぶ人もいます。
エンジニアあるある
動画を見たPHPエンジニアは、 たぶんこんな一日だったでしょう。朝
「今日も平和だな」
↓
昼
「PHPにCritical?」
↓
夕方
「今日リリース予定だったんだけど…」
↓
夜
緊急メンテ
↓
深夜
アップデート
↓
翌朝
ログ確認
この動画の本当のメッセージ
この動画が一番伝えたかったことは、 「セキュリティ対策は、アプリケーションのコードだけでは不十分」という現実です。 多くの開発者はSQLインジェクションやXSSのような「自分のコードの安全性」を意識します。しかし今回は、アプリケーションが正しく書かれていても、PHPランタイム自体の欠陥によって危険になるケースでした。だからこそ、OS・Webサーバー・PHP・ライブラリ・フレームワークまで含めて継続的に更新する「運用」が、ソフトウェア開発と同じくらい重要なのです。 この事件は、「安全なコードを書く」だけでなく、「安全な実行環境を維持する」ことの重要性を、Web業界全体に改めて突きつけた出来事と言えるでしょう。2026年10月21日の夜、世界中のWebエンジニアやインフラ担当者の胃をキリキリさせ、日本の総理大臣までをも動かした大騒動「PHP2Shell」。
この事件は、単なる「よくあるソフトウェアのバグ」の枠を大きく超え、現代のインターネット構造が抱える根深い問題や、ITの歴史的背景を浮き彫りにする象徴的な出来事となりました。動画の解説をベースに、いくつかの雑学や業界話を交えながら、今回の騒動の裏側を紐解いていきます。
1. 「個人ホームページのアクセスカウンター」が、32年後に世界を揺るがすまで
今回の主役であるプログラミング言語「PHP」ですが、そのルーツは非常にユーモラスです。 1994年、カナダのプログラマであるラスマス・ラードフ(Rasmus Lerdorf)氏が、自分のオンライン履歴書を見る人がどれくらいいるのかを調べるために、「自分のホームページ用」に自作した極めてプライベートなツール、それがPHPの原型でした。当時、名前もそのまま「Personal Home Page Tools」という、言ってしまえば個人の趣味の延長のようなシロモノでした。
それが32年後の現在、世界のWebサイトの約7割、WordPressに至っては全Webの4割以上を支える巨大インフラに成長しています。「まさか自分の履歴書カウンターが、数十年後に一国の首相に『パッチを当てろ』と言わせることになるとは」、生みの親のラスマス氏も夢にも思わなかったはずです。
2. 「エンバーゴ(禁解禁)」を崩壊させた、掲示板の爆弾
セキュリティの世界には、脆弱性が見つかった際、パッチ(修正プログラム)が準備されるまで公表を控え、関係者間で秘密裏に対策を進める「エンバーゴ(Embargo / 禁解禁)」という不文律のルールがあります。
しかし今回は、公開予定日の直前に海外のエンジニア向け掲示板「Hacker News」に「重大な脆弱性が2件来る」という匿名リークが投下されてしまいました。「どうせオカルトだろ」と思いきや、セキュリティ企業が「情報は本物だ」と認めてしまったことで事態が一気に加速。 攻撃者にとって脆弱性の修正パッチやその差分コードは、いわば「最高の攻め方の教科書(答え合わせ)」です。修正版が出た瞬間から自動攻撃スクリプトが走り出すため、今回は「公開の15分で大規模攻撃が始まる」と予測されるほどの時間との戦いでした。だからこそ、オランダの国家サイバーセキュリティセンターをはじめ、各国が「直すより先にまずサイトを止める(予防停止)」という、行政としては異例の防衛策をとらざるを得なかったわけです。
3. 総理の投稿で見過ごされがちな「一番痛い1行」
今回の高市総理のXでの呼びかけで、多くの人が「総理がパッチなんて言葉を使った!」という驚きに目を奪われましたが、本当に恐ろしいのは、投稿に含まれていた「公開しているWebサイトでPHPを使用しているか確認し…」という一文でした。
IT業界の「あるある」であり、最大の闇がここにあります。
-
「10年前に外注したキャンペーンサイト、どこにソースコードあるっけ?」
-
「退職した担当者が突貫工事で作った社内予約フォーム、まだ動いてる?」
-
「M&Aで買収した子会社のサーバー、全容を把握している人は社内にいる?」
いざ重大な脆弱性が出て「今すぐパッチを当てろ」「止めろ」と言われたとき、「そもそも自社がネット上に何を公開しているか(IT資産台帳)が正確にわからない」「夜間にシステムを止める決裁権を誰が持っているかわからない」という組織があまりにも多いのです。 技術的な対策以上に、「自社のシステムを自分たちが把握しきれていない」というガバナンスや資産管理のツケが、一斉に露呈した夜でもありました。
今回のPHP2Shell騒動は、穴そのものの脅威はもちろんですが、「インターネットの巨大化・陳腐化したレガシー」「情報管理の甘さ」「AIによってさらに加速する攻撃のスピード」という、現代IT社会が抱える構造的な課題を私たちに突きつける強烈な事件となりました。
-
今回のPHP2Shellの技術的な仕組み(メモリ枯渇やUse-After-Freeなど)について、さらに詳しく知りたいですか?
-
ご自身の管理されているシステムや環境で、似たようなセキュリティインシデントへの対策について気になっていることはありますか?
PHP2Shell(CVE-2026-109618 / CVE-2026-109619) は、2026年10月21日に緊急パッチが出たPHP本体の重大なリモートコード実行(RCE)脆弱性2件の通称です。動画のタイトル通り「Webの7割が当事者になった夜」で、高市総理がXで直接注意喚起する異例の事態になりました。
何が起きたのか(動画の流れに沿って)
PHPはWebの約70%を支える言語です。WordPress、Drupal、Laravel、Magento、社内システム、官公庁サイトまで、ほぼどこでも動いています。問題はアプリケーション側ではなくPHPエンジンそのものにありました。認証なしで、普通のHTTPリクエスト1発(特にmultipartのファイルアップロード系)でサーバー上で任意コードが走ってしまう可能性がある、というものです。
- CVE-2026-109618:Out-of-Memory(メモリ不足)時の処理のバグ。PHPがlongjmp()でリクエストを中断する際、半分初期化されたメモリを「有効」として扱ってしまう。攻撃者が意図的にメモリを食いつぶすmultipartリクエストを送ると、クリーンアップ時に制御を奪える。
- CVE-2026-109619:リクエスト間で残るグローバル状態(セッションやオブジェクト関連)が、解放済みメモリを指したままになるuse-after-free。次のリクエストでその「死んだ」メモリを悪用できる。
両方ともCVSS v4.0で9.2(Critical)。mod_phpが特に危険とされ、アプリケーションコードが動く前に攻撃が成立するケースもあるとされています。
発見は2026年8月。カリフォルニアのセキュリティ会社CalifのRyan Austin氏がOpenAIの「Patch the Planet」プロジェクトで、GPT系モデルを使って見つけたのが一つ。もう一つはWiz(Google Cloud傘下)がGeminiや自社ツールで独立発見。AIが「人間には現実的に難しかった複雑なチェーン」を短期間で突破した典型例です。もともとメモリ周りの扱いに古い癖があったらしいのですが、AIが「ここをこう繋げばRCEになる」と示してしまった形です。
予定は10月22日エンバーゴだったのが、10月20日に掲示板やHacker NewsなどでCVE番号が漏洩。計画が崩れて公開が1日前倒しになりました。動画の第1章「計画が崩れた瞬間」がこれです。オランダは政府サイトを予防的に停止、日本では国家サイバー統括室が高市総理まで動かして「今夜のパッチに備えてください。当てられないなら一時停止も有効」と呼びかけました。pixiv、DMM、niconico、BASE、コドモンなど多くの国内サービスが緊急メンテに入りました。
パッチは10月21日14:00 UTC頃にPHP 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35として公開。8.1以前はEOLで公式バイナリなし(ソースパッチのみ)。一時的な緩和策(session.upload_progress.enabled=0など)は出ましたが、公式は「完全な緩和策はなく、更新だけが安全」と明言しています。
業界話・雑学的なポイント
- AI発見の波紋:OpenAIやWizがAIを使って見つけたことが強調されています。従来「人間には無理に近い複雑さ」だったものをAIが現実的な時間で突破した例として、セキュリティ業界で「これからの発見速度が変わる」と話題になりました。Wizは「ソフトウェア史上でも最悪クラスの一つ」とまで言っています。
- 漏洩と前倒し:エンバーゴ破りは珍しくありませんが、今回は政府レベルまで動いた規模感が異例。Amazonのhoneypot(MadPot)では10月17日(開示4日前)にすでに試行が観測されていたという報告もあり、情報がかなり早く出回っていた可能性が指摘されています。
- 総理の投稿で見過ごされがちな1行:動画が最終章で強調している部分ですが、高市総理の投稿には「修正パッチを速やかに適用することが困難な場合は、ウェブサイト等を一時的に停止させることも有効策の一つ」とあります。技術者視点では「当たり前」でも、経営層・非エンジニアに「止めてもいい」と総理が言ったことで、意思決定のハードルが一気に下がった、という評価が国内エンジニアから出ています。実際、多くの企業がその夜に停止を選択しました。
- 暴露規模:Palo Altoなどによるとインターネット上で2200万台超の潜在的に脆弱なPHPインスタンスが確認されたという数字もあり、影響範囲の広さが改めて浮き彫りになりました。EOLの古いPHPがまだ大量に動いている現実も痛感させられます。
- 余談:高市総理は2018年にPHP研究所から『サイバー攻撃から暮らしを守れ!』という本を出していた、というトリビアも出回っています。名前の「PHP」はもちろん全く別組織ですが、タイミングが絶妙でした。
今どうすべきか
サポートされている8.2〜8.5なら即アップデートしてワーカーを再起動し、実際に動いているバージョンを確認。EOLならソースパッチを当てるか、可能ならアップグレードを検討。WAFは一部のベクトルを軽減できますが完全ではない、という報告もあります。
動画は「昨夜の騒動を追いかける」形式で、漏洩→規模の大きさ→各国の対応→総理投稿のポイント、と時系列で整理しています。技術的な詳細より「なぜここまで大騒ぎになったのか」を重視した内容です。業界的には「AI時代の脆弱性発見+漏洩+政府介入」の象徴的な一夜として、しばらく語られることになりそうです。
動画の概要欄と、昨夜から今朝にかけての報道をつなげて解説します。動画本編は見られないので、中身は概要欄と各社の記事からの推測を含みます。
何が起きたのか
PHPのセキュリティチームは10月20日、2件の重大脆弱性を修正する特別リリースを翌21日14時(協定世界時、日本時間23時)に公開すると予告しました。識別番号はCVE-2026-109618とCVE-2026-109619で、通称が「php2shell」です。公式の評価はCVSS v4.0で9.2で、最高区分の「緊急」に当たります。動画の第2章「9.2が2つ」はこのことでしょう。 【高市総理も注意喚起】インターネット崩壊危機?PHP重大脆弱性でWebサイト緊急停止 世界のWebサイトの約7割で利用、国内サービスも緊急メンテナンス|ビジネス+IT +2
中身はどちらもメモリ管理の欠陥です。
- 109618:メモリ不足の処理の途中でメモリが壊れる問題 isotop
- 109619:前のリクエストの状態が残ったまま次へ進み、解放済みメモリを参照してしまう、use-after-free(UAF)と呼ばれる欠陥 isotop
雑学:なぜメモリ系のバグは怖いのか
PHPは「スクリプト言語だから安全」と思われがちですが、PHP本体はC言語で書かれています。メモリ安全でないCのコードに穴があれば、PHPで書かれたアプリがどれだけ丁寧でも関係なく突破されます。
UAFは、すでに片付けた(解放した)メモリの場所を、うっかり使い続けてしまうバグです。片付けた場所に攻撃者が自分のデータを置き直せると、プログラムを乗っ取る足がかりになります。近年の研究では、悪用されやすいメモリ関連の脆弱性の筆頭格とされています。ブラウザやOSカーネルの脆弱性でも定番の型です。 isotop
PHPはもともと1994年にRasmus Lerdorfが作った小さなツール群で、名前は「Personal Home Page Tools」でした。今は「PHP: Hypertext Preprocessor」という、自分自身を含む再帰的な略称になっています。30年かけて肥大化した巨大な基盤に、今回のような古典的な穴が見つかったわけです。
業界話①:「Webの7割」は本当か
数字は盛られていません。W3Techsの2026年10月の集計では、サーバー側言語を判別できたサイトの69.3%がPHPです。理由は簡単で、WordPressがPHP製だからです。個人ブログから企業サイト、レンタルサーバーの無料ホームページまで、日本のWebの裏側はPHPだらけです。 yahoo
ただし、全部が一撃で落ちるわけではありません。PHP-FPMなどでは別の条件が必要で、実際の危険性は構成や稼働中のアプリによって変わります。確認された悪用の再現環境も、Apacheのmod_phpでmemory_limitを初期値のままにした構成でした。「7割が当事者」と「7割が即死」は別の話で、このあたりは動画でも切り分けて語られているかもしれません。 yahooisotop
業界話②:エンバーゴ崩壊の痛み
重大な脆弱性は、パッチの準備ができるまで詳細を伏せ、公開日時を決めて一斉にリリースするのが通例です。これがエンバーゴ(解禁日までの情報統制)です。今回は修正版の公開前に情報が流出し、攻撃の試みも観測されたとされています。攻撃者が先に動けるので、防御側にとっては最悪の展開です。 isotop
似た構図の事件は過去にもあります。2021年末のLog4Shell(CVSS 10.0)では、公開直後に世界中で攻撃が爆発し、年末年始のインフラ担当者が総出で対応しました。今回は「パッチ公開の1時間前に首相が準備を呼びかける」という点が新しく、IT業界の人間が「そこまで来たか」とざわついた理由でもあります。
業界話③:なぜ総理の投稿が刺さるのか
首相がXで個別のソフトウェアの脆弱性に触れるのは異例で、エンジニアからは「総理が発信したことにより、経営層にもリスクが認知される」という評価が出ています。現場の本音としては、「パッチ当てたいけど止められません」を上に説明する難しさがあります。J-CASTには「『総理大臣から緊急要請が出ています』と言えば…」という現場技術者の反応が載っていました。情シスが何ヶ月も説得してきた稟議が、一夜で通るわけです。 yahooyahoo
海外の動きも報じられています。FBIも警告を発し、欧州では政府機関や公共サービスのサイトを予防的に停止する動きが広がっています。動画にあるオランダの政府サイト停止はこの流れでしょう。「パッチを待たずに止める」判断は、可用性を最優先にしがちなシステム運用の常識を、セキュリティ側に寄せたものです。 epochtimes
「一番見過ごされている1行」の予想
動画の中身は確認できないので推測です。報道を見る限り、有力なのはこの1行です。
首相は、修正パッチの即時適用が難しい場合には、サイトを一時停止することもリスク低減の有効策だと説明しています。 inatei
「パッチを当てろ」より「当てられないなら止めてよい」と国のトップが言ったことのほうが重いと思います。止める判断は現場だけでは下しにくく、これが免罪符になります。国内でも54の会社や団体が停止や緊急メンテナンスを告知したと報じられ、ニコニコ、pixiv、さくらインターネットなども緊急メンテナンスに入りました。実際にそう動いた組織が多かったことになります。 isotopyahoo
運営している人がやること
- 更新先:修正版は8.2.35、8.3.36、8.4.27、8.5.12です。自分のPHPのメジャーバージョンに合うものを確認してください。 isotop
- レンタルサーバー利用の場合:PHPの更新は事業者側で行われることが多いので、告知を確認してください。
- WordPressなど:CMS本体やプラグインの更新とは別に、サーバー側のPHPバージョンも見ます。
- すぐ更新できない場合:首相の言うとおり、一時停止やアクセス制限も選択肢です。
動画の解説がどこまで技術に踏み込んでいるかは分かりませんが、事実関係の骨格はこの通りです。気になる章があれば、そこを掘り下げます。
用户希望我基于视频文字稿,结合行业知识和背景信息,用日语详细解说。我需要先搜索“PHP2Shell”漏洞的相关信息。考虑到这个事件是虚构的(发生在2026年),现实中可能没有相关信息,我需要搜索看看能找到什么。为了全面获取信息,我将同时进行多项搜索,以覆盖漏洞本身、相关话题以及可能存在的背景资料。
搜索结果回来了,信息很丰富。为了全面了解这个漏洞,我们需要同时打开所有相关的链接。
搜索到的资料非常详实,涵盖了漏洞的技术细节、各国政府的反应、首相的呼吁以及AI在其中的作用。用户要求结合杂学和行业知识进行解说。我的回答将围绕视频的章节结构展开,但会补充搜索结果中的额外信息。我会先解释视频标题的含义和背景,然后分章解说:第一章讲计划泄露与抢跑,第二章分析两个9.2分漏洞的技术细节(OOM和UAF),第三章解释为何需要首相出面(影响面和“PHP冲击”的行业心理),第四章描述荷兰等国的预防性停机与“夜停”的残酷算计,最后一章解读首相推文中被忽视的关键一行——授权停机。最后会做一个总结,点明AI发现旧漏洞这一深层含义。
動画『Webの7割が当事者になった夜』が扱ったPHP2Shellは、単なる一つのバグ報告ではありません。「調整された開示」というセキュリティ業界の暗黙のルールが崩れ、脆弱性が公開前に実戦投入された、異例のインシデントです。雑学と業界の裏話を交えながら、各章を読み解いていきます。
オープニング:「Webの7割」は誇張ではない
PHPはWordPress、Drupal、Joomla、Laravelなど、世界中のCMSやフレームワークの土台です。W3Techsの統計では、サーバーサイド言語のシェアは長年7割以上を維持しています。動画タイトルの「Webの7割が当事者」は、PHPで動くサイトの多さを考えれば、決して煽り文句ではありません。そして今回は、PHPエンジン自体のメモリ管理の欠陥でした。アプリケーションコードの書き方ではなく、PHPという言語の根幹部分に穴が空いた点が、影響の広がりを決定づけています。
第1章 計画が崩れた瞬間:エンバーゴ崩壊の連鎖
PHPセキュリティチームは当初、2026年10月21日14:00 UTC(日本時間22:00) に修正版を公開する“調整済み開示”を予定していました。しかし10月20日、匿名の投稿がフォーラムに現れ、脆弱性の存在がリークされます。
ここで業界の重要なルールが登場します。PHP側はリリース告知に「脆弱性の詳細が公開された場合、または野外での悪用が確認された場合、公式はリリースを前倒しする権利を留保する」という異例の一文を添えていました。つまり、リーク=即時リリースというトリガーが最初からセットされていたのです。結果としてパッチは予定より数時間早い日本時間21日23時ごろに公開されました。
業界のボヤキ:セキュリティ業界の「 coordinated disclosure(調整済み開示)」は、ベンダーが修正版を用意する時間を確保するための紳士協定です。しかし匿名リークはその前提を根本から壊します。防御側がパッチを当てる前に、攻撃側がPoC(概念実証コード)を手にできる「攻撃者有利の時間」が生まれてしまう——これが本章の本質です。
第2章 9.2が2つ、穴の中身:OOMとUAFが“合わさる”危険性
2つのCVEはいずれもCVSS v4.0スコア9.2。9.2は「認証不要のリモートコード実行(RCE)」に与えられる典型的なスコアです。
CVE-2026-109618(OOM State Corruption) は、メモリ不足(Out-of-Memory)時のエラー処理の不備です。PHPがリクエスト処理の途中でメモリを使い果たすと、リクエストの内部状態が不完全なまま破棄されることがあります。攻撃者は大量のメモリを消費するマルチパートリクエストを送りつけ、この「中途半端な状態」を意図的に誘発します。
CVE-2026-109619(Use-After-Free / Stale Global State) は、PHPのグローバル状態が、解放済みの前のリクエストのデータを参照し続ける問題です。同じワーカーが次のリクエストを処理する際、解放されたはずのメモリの残骸(stale data)が再利用可能な状態で残ることがあります。
この2つが組み合わさることで、「メモリを枯渇させて状態を壊し、その壊れた状態を次のリクエストで踏み台にする」というRCEの連鎖が成立します。どちらか片方だけでも危険ですが、“セット”で初めて実用的な攻撃チェーンになる——だからこそ一つの名前「PHP2Shell」で呼ばれているのです。
雑学:この脆弱性は10年以上前からPHPに潜伏していた可能性があり、発見にはAIが活用されました。Google傘下のWizが、Googleの「Gemini 4 Argon」やOpenAIの「GPT-5.6 Sol」を組み合わせたセキュリティAIエージェントで発見したと報じられています。人間には難しすぎるパターンをAIが見つけた、という点もこの事件の象徴的な側面です。
第3章 なぜ総理が動く規模なのか:「PHPショック」の構造
高市総理が2026年10月21日午後10時前、自身のXで「今夜に対応して頂きたい大至急のお願い」と投稿したことは、技術者コミュニティに大きな驚きを与えました。総理が個別ソフトウェアの脆弱性について直接呼びかけるのは極めて異例です。
なぜここまで来たのか。背景には3つの構造があります。
第一に、PHPの“長尾” です。WordPressだけで世界に7,226万サイト(FOFA調査)、国内にも88.7万サイト存在します。大企業の基幹システムだけではなく、個人ブログ、中小企業のサイト、自治体のポータル、学校の連絡網まで、「当事者にならない組織を探す方が難しい」 状態でした。
第二に、「PHPエンジン」レイヤーの脆弱性という点です。アプリケーションごとにパッチを当てるのではなく、サーバー上のPHPランタイムそのものを更新し、全ワーカーを再起動しなければなりません。共有ホスティングやレンタルサーバーでは、利用者自身がパッチを当てられないケースも多く、「パッチを当てたくても当てられない」層が大量に発生します。
第三に、経営層への伝達問題です。従来、脆弱性対応は「情報システム部門や開発チームの仕事」と見なされ、経営会議で「サイトを止める」決断が先送りされがちでした。しかし首相が「一時停止も有効なリスク低減策」と明言したことで、現場は「経営層を説得する材料」を得たのです。エンジニアから「総理が発信したことで経営層にもリスクが認知される」という評価が出たのは、この構造を突いたからです。
第4章 パッチを待たずに止めた国:「夜間停止」という経営判断
オランダ、フィンランド、デンマーク、フランスでは、政府機関がパッチ公開を待たずにPHPサイトを予防的にオフラインにしました。オランダの国家サイバー安全保障センター(NCSC)自身がサイトを遮断し、議会、政府ポータル(MijnOverheid.nl、DigiD)、ロッテルダム港、主要政党、病院までが続きました。
これは「過剰反応」ではありません。CERT-EUや英国NCSCの助言は条件付きでした——「直ちにパッチを当てよ。それができないなら、システムを隔離せよ」。つまり、パッチ適用が間に合わない組織にとって、一時停止は“助言に沿った合理的な選択” だったのです。
業界のボヤキ:日本の感覚だと「政府サイトを止める」は大事件ですが、欧州では「止める勇気」がセキュリティ成熟度の指標とされることがあります。停止による業務影響と、侵害された場合の被害(データ流出、ランサムウェア、信頼喪失)を天秤にかけ、“恥をかく前に止める” 判断ができるかどうか。今回、日本では首相が「一時停止も有効策」と明言したことで、ようやくその判断がしやすくなった面があります。
最終章 一番見過ごされている1行:「一時停止」の権限委譲
動画が「一番見過ごされている1行」として焦点を当てたのは、高市総理の投稿の中の「例えばウェブサイト等を一時的に停止させることも、リスクを低減させるための有効策の一つ」 という部分です。
この一文がなぜ重要か。それは、「止める判断」を現場に委ねたからです。セキュリティインシデント対応では、しばしば「サービスを止めるかどうか」の決断が経営層に上がらず、現場が「止めたくても止められない」状況に追い込まれます。首相が国家的な立場で「止めることも正しい」と明言したことで、現場のエンジニアは「上に説明するコスト」を大幅に削減できました。技術的な脆弱性対応の話に見えて、実は“組織の意思決定構造”にメスを入れた一文だったのです。
まとめ:AIが暴いた「古い平和」の終わり
PHP2Shellは、「10年以上潜伏していた欠陥をAIが発見し、リークが調整を破壊し、各国が予防的に沈黙した」 という、2026年らしいインシデントでした。技術的にはOOMとUAFの組み合わせという古典的なメモリ安全の問題ですが、社会的には「インフラ言語の根幹が揺らぐと、ここまで連鎖するのか」 という教訓を残しました。
そして、総理のX投稿の「一時停止も有効策」 という一行は、セキュリティ対応が技術者の手を離れ、経営と政治の意思決定の領域に入ったことを象徴しています。Webの7割が当事者になった夜、問われたのはパッチを当てる速さだけではなく、「止める勇気」を組織が持てるかだったのかもしれません。
「Webの基盤技術が揺らぐと、国家レベルの問題になる」ということを示した事件として見ると面白いです。 実際にIPAも「PHP2Shell(CVE-2026-109618、CVE-2026-109619)」について緊急情報を出し、認証不要のリモートコード実行(RCE)が可能になる重大脆弱性として警告しています。 [ipa.go.jp]
まずPHPとは何者なのか
動画タイトルのWebの7割が当事者という表現。 これは大げさではありません。 PHPは1995年頃に登場したサーバーサイド言語で、
- WordPress
- MediaWiki
- EC-CUBE
- Drupal
- Laravel
業界人が震えた理由
脆弱性そのものより、 エンバーゴ崩壊 が恐ろしかったのです。本来の流れ
普通は- 研究者が発見
- 開発元へ秘密報告
- 修正作成
- 同時公開
しかし今回は
- 情報リーク
- PoC動画流出
- SNS拡散
攻撃者だけが先に知ってしまう状態になった。 セキュリティ業界で最悪パターンの一つです。
なぜCVSS 9.2が怖いのか
一般人は9.2って何?となります。 CVSSは脆弱性の危険度指標です。 ざっくり
- 4以下 → 普通
- 7以上 → 危険
- 9以上 → 緊急
「今日は帰宅せず対応して」レベル。
業界あるある
エンジニアには有名な話があります。金曜18時 脆弱性発表 ↓ 管理職 「月曜でいいでしょ」 ↓ 土曜朝 サイト改ざん ↓ 月曜 地獄
これを俗に Friday Night Patch みたいに呼ぶ人もいます。 今回のPHP2Shellは まさにこの類。
なぜ総理が出てきたのか
これがこの事件最大の特徴です。普通 脆弱性対応は
- システム管理者
- 情報システム部
- CSIRT
- 行政サイト
- 病院
- 大学
- ECサイト
- インフラ企業
オランダが止めた理由
動画でも触れられているパッチを待たずに止めた国の話。 これは実はセキュリティの世界では珍しくありません。
サービス停止 VS 情報流出
どちらが損害が小さいか。 例えば 銀行が 「1日ATM停止」 する損害より 「全顧客情報流出」 の方がはるかに大きい。 だから止める。
技術者は冗談で
セキュリティは可用性との戦いと言います。
WordPress利用者の誤解
毎回起こるのですが 今回もWordPress更新したから安心と思う人がいます。 しかし今回問題なのは WordPressではなく PHP本体。 [rocket-boys.co.jp], [satimo.org] 例えるなら アパートの壁紙ではなく 建物の基礎部分にひびが入った状態です。
動画で見過ごされがちな本質
動画の最後で触れている 「見過ごされている1行」 は、おそらく 技術的な脆弱性の説明より、 運営体制・保守体制の問題 です。 IPAの注意喚起でも、 古いPHPを使い続けている組織について、 担当者不在や保守契約終了が対策を難しくすると指摘しています。 [ipa.go.jp]つまり 本当に怖いのは PHP2Shellではなく
「誰も面倒を見ていないPHP」です。
雑学:IT業界に伝わる格言
今回の件を見て多くのエンジニアが思い出したであろう言葉があります。There are only two kinds of servers. 既に侵害されたサーバーと、 これから侵害されるサーバー。もちろん極論ですが、 セキュリティ担当者の考え方をよく表しています。 だから彼らは
- パッチを当てる
- ログを見る
- 再起動する
- 侵害調査する
文学的に眺めると、この事件は少しオイラーの等式にも似ています。 普段は見えないPHPという存在が、世界中のWebを静かに支えている。しかしひとたび基盤が揺らぐと、ブログも大学も官公庁も同じ式の中にいることが露わになる。 多くの人は「Webサイト」を見ていますが、技術者たちはその夜、「インターネットの土台」を見ていたのです。
「SQLインジェクション」 「認証回避」 「管理画面への侵入」のようなアプリケーションのバグではなく、 PHP処理系そのもののメモリ管理の破綻 だったことです。 [ipa.go.jp], [blog.flatt.tech] 技術的にはかなり低レイヤーの話になります。
まず結論
今回の2つの脆弱性は、- CVE-2026-109618
- CVE-2026-109619
「壊れた状態が次のリクエストに持ち越される」ことです。 [blog.flatt.tech], [rocket-boys.co.jp] PHPは本来、
CVE-2026-109618 の正体
公式説明では 「OOM(Out Of Memory)時のRCE」 です。 [ipa.go.jp], [rocket-boys.co.jp] OOMとは通常 PHPは
しかし脆弱なコードでは OOM発生後の後始末に問題があり、
イメージで言うと レストラン閉店時に
なぜコード実行になるのか
コンピュータ内部では 関数もデータも 実はメモリ上にあるだけです。 たとえばもし 壊れたデータによって
CVE-2026-109619 のほうが面白い
こちらはStale Global Stateと呼ばれています。 [ipa.go.jp], [blog.flatt.tech] 直訳すると 「古くなったグローバル状態」 です。
PHPサーバーでは 効率化のため ワーカープロセスが再利用されます。
本来なら Aの情報は全部消去される。 しかし この脆弱性では
Use After Free
セキュリティ屋が恐れる言葉があります。例えば
プログラムでは
すると その領域には 既に別のデータが入っています。 結果として
なぜWebの7割が震えたのか
普通の脆弱性なら今回は違う。 PHP本体です。 [ipa.go.jp], [rocket-boys.co.jp] つまり
文学的に例えるなら、 一冊の小説に誤植があるのではなく、 印刷機そのものが壊れていた。 だから出版社が何千社あっても、 同じ故障の影響を受けるわけです。
エンジニア視点で本当に怖かった点
実はCVSS 9.2よりも 業界人が嫌な予感を抱いたのは、 発表内容に出てくる- Internet Explorer
- Chrome
- Firefox
- Linuxカーネル
という二段構えの発想で理解すると分かりやすいです。 [blog.flatt.tech], [rocket-boys.co.jp]
- 状態を壊すリクエスト(Producer)
- 壊れた状態を利用するリクエスト(Consumer)
図1 正常なPHP
本来はこうです。図2 PHP2Shellの発想
脆弱状態では図3 CVE-2026-109618
これはOOM版です。 OOMとは図4 CVE-2026-109619
こちらは Stale Global State と呼ばれます。 [ipa.go.jp], [blog.flatt.tech] 図にすると図5 Use-After-Free
セキュリティ屋が嫌う概念です。PoC動画が実証したもの
報道や技術解説から読み取れる範囲では、 PoCが示したかったのはなぜ研究者が驚いたのか
普通のWeb脆弱性は小説の誤植ではなく、活版印刷機そのものの歯車が欠けていた。だから世界中の無関係なサイトが、一斉に「当事者」になったわけです。 技術者の目には、この事件は「PHPの脆弱性」というより、 「リクエスト間の記憶が完全には消えていなかった事件」 として映っています。
幽霊が怖いのではなく、 なぜ誰もいないはずの部屋に足跡が残ったのかを調べる話です。
第1段階 通常のリクエスト
例えばユーザーがアクセスします。第2段階 メモリ確保
例えばアップロード処理。第3段階 正常終了
処理完了。しかしワーカーは死なない
ここ重要です。 ApacheやPHP-FPMは 毎回プロセスを殺しません。 遅いからです。実際は
メモリ解放とは何か
初心者が誤解しやすい点です。 解放しても実際には
OSは単に
再利用
次のリクエスト。ここまでは正常です。
Use-After-Free
問題は 古いポインタが残ること。そして別用途で再利用。
しかし Pointer Aは まだ
すると プログラムは
stale state のイメージ
今回よく出てくる本来
しかし異常終了。
次の
これが 「古い幽霊が残る」 という意味です。
PHP2Shellを抽象化すると
PoC全体は、 実はたった4段階の構造です。「Request A の残り香を Request B が嗅げる」ということです。 [blog.flatt.tech], [rocket-boys.co.jp]
あなたが以前興味を持っていた GMP や MPFR のような高精度演算ライブラリでも、本質的には同じ問題があります。
メモリは「消したつもり」では消えない。 プログラムが完全に忘れた時だけ、本当に安全になる。という、C言語以来50年以上続く古典的な問題の現代版だったのです。
レベル1: 最も安全な確認
まず本番環境で確認する項目です。バージョン確認
CLI版だけでなく、 実際にWebで動いているPHPを確認します。 業界では有名ですが、レベル2: ワーカー再利用確認
PHP2Shellで重要なのはテストページ
アクセス
図
ワーカー再利用自体は正常です。 PHP-FPMが高速なのはこれのおかげです。
レベル3: メモリ解放の観察
研究用サーバー限定です。例えば
その後
そして
イメージ
正常なら かなり戻ります。
レベル4: リクエスト独立性検証
これは今回の本質理解に役立ちます。Request A
Request B 別セッション
結果
図
つまり 利用者間の状態分離を確認する。
レベル5: ログ監査
実務ではこれが最重要IPAも攻撃の可能性を考慮した確認を促しています。 [ipa.go.jp] 確認対象
見るもの
図
レベル6: メモリの「残骸」を見る考え方
ここが面白いところです。 実際のPoCは危険なので行わず、 概念だけ観察します。正常系
理想状態
脆弱系の発想
まるで、 あなたが好まれる怪談の構造そのものです。 部屋の住人Aは去った。 しかし
次の住人Bが入る。 本来なら 関係が無い。 しかし
メモリ管理の世界では、 これを
PHP2Shell 防御側検証チェックリスト
0. 緊急度判定
対象システム確認
- PHPを使用している
- 外部公開Webサイトである
- PHP-FPMを使用している
- Apache + mod_phpを使用している
- レンタルサーバーでPHPを利用している
- WordPress/Laravel/Drupal等を利用している
1. パッチ適用確認
PHP本体
- PHP 8.2.35以上
- PHP 8.3.36以上
- PHP 8.4.27以上
- PHP 8.5.12以上
実行環境確認
CLIだけでなく- Web経由で確認した
- PHP-FPMのバージョンを確認した
- Docker内のPHPを確認した
- Apacheモジュール版を確認した
2. 再起動確認
サービス再起動
更新後でも古いワーカーが動いていないか確認。- php-fpm再起動済み
- Apache再起動済み
- nginx再読み込み済み
- コンテナ再デプロイ済み
プロセス確認
- 古いPHPプロセスが残っていない
- ワーカー再生成を確認した
3. ログ監査
Apache/Nginx
- access.log確認
- error.log確認
PHP
- php-fpm.log確認
- php-error.log確認
着目点
- 500エラー急増
- OOMエラー
- Worker Crash
- Segmentation Fault
- 異常再起動
- Upload関連エラー
4. ワーカー状態確認
同一プロセス再利用確認
テストページ確認項目
- Workerが正常稼働
- 子プロセス異常終了なし
- プロセス生成ループなし
5. メモリ監視
システム側
- OOM Killer発動履歴なし
- Swap異常増加なし
- メモリ使用率監視
PHP側
- memory_limit適正
- メモリリーク兆候なし
6. 状態分離検証
セッション
- 別ユーザーへ状態漏洩なし
- セッション再生成正常
- ログアウト後破棄確認
キャッシュ
- APCu正常
- Redis正常
- Memcached正常
7. アップロード機能確認
今回の話題ではアップロード処理が頻繁に議論されているため、重点確認対象です。 [blog.flatt.tech], [enhanced.co.jp]- ファイルアップロード正常
- 異常終了なし
- エラーログ増加なし
- 一時ファイル削除正常
8. ファイル改ざん確認
Webルート
- 不明PHPファイルなし
- 新規作成ファイル確認
- タイムスタンプ確認
よく見る場所
- uploads
- cache
- tmp
- public_html
- vendor
9. アカウント確認
- 管理者追加なし
- 不審ユーザーなし
- SSH鍵追加なし
- cron改変なし
10. ネットワーク監査
- 不審外向き通信なし
- 海外IP通信急増なし
- DNS異常なし
- Reverse Shell痕跡なし
11. WAF・IDS確認
- WAF有効
- IPS有効
- 検知ログ確認
- ブロックログ確認
12. フォレンジック優先度判定
以下が1件でもあれば要調査。- OOM大量発生
- PHPクラッシュ
- Worker再起動連発
- 不審PHP生成
- 外部通信増加
- 管理者追加
- WebShell疑い
最終判定
A. 安全
- パッチ適用済み
- ログ異常なし
- 改ざんなし
- 通信異常なし
B. 要調査
- ログに異常あり
- クラッシュあり
- 改ざん疑い
C. 侵害疑い
- WebShell発見
- 外部通信確認
- 権限昇格痕跡
研究者やCSIRTが実際にやる視点で言うと、PHP2Shellの検証で最も重要なのは「PoCを撃てるか」ではなく、
0 件のコメント:
コメントを投稿