PHPの穴で損を負うのは誰か|コドモンもウマ娘も修正前に止めた
この記事で学べること
ネットのお店や予約サイトの画面の裏で、ページを組み立てる言語の1つがPHPだ。
W3Techsの集計では、サーバー側の言語が分かっているWebサイトの69.2%が使っている(2026年10月29日時点)。
その開発を支える財団の、2025年の支出は78万4,376ドルだ。
2025年末に契約していた開発者は、11人だった。
修正版が出る前に、狙われるかもしれない夜があった。
使う側の会社は、止めるか・いつ止めるか・どこまで止めるかを迫られた。
数時間で決めた会社もあった。
✓ システムが苦手な人向けの例え話で分かるPHPの穴と、その後約1億回表示された首相のXアカウントの投稿
✓ コドモンが「止めない」から「今止める」に変えた理由と、退けた3つの案
✓ 先に守れた側と、規約の上で損が残る側:公開前に防御を配った会社と、「責任を負わない」が2段で続く規約
✓ 画面の版の番号だけでは分からない、自分のサイトで今確かめる順番
マーケやビジネスモデルの事例をストーリーで深掘り。ほぼ毎日届くニュースレター。登録で全文無料で読めます。サポートメンバーにはさらにニュース性の高い速報記事やリクエスト事例もお届け。ぜひ登録ください。
「大至急のお願い」が首相のXに出た夜|PHPの穴とは何だったか
Webサイトを、レストランにたとえてみる。
お客さまがスマホで注文を出す。
厨房にあたるサーバーで、料理にあたるページが作られる。
できあがった皿だけが、テーブルに届く。
1994年に生まれたPHPは、この厨房で使われる調理の手順の書き方の1つだ。
その厨房の仕組みに、欠陥が2つ見つかった。
こうした欠陥を脆弱性と呼び、穴とも言う。
穴は2つで、仕組みは別だ。
1つは、メモリが足りなくなったときの後始末の不具合だ。
メモリは、コンピューターの作業台を指す。
作業台が足りなくなって処理が途中で打ち切られると、その後始末がうまくいかない。
もう1つは、前のアクセスの中身が残ってしまう不具合だ。
不具合を外から起こせば、ログインせずに、つまり合鍵なしで、厨房の手順を勝手に動かせる可能性があった。
動かせるのは、厨房の係ができる範囲の手順だ。
どの店でも起きるわけではない。
PHPの版や動かし方、メモリの並び方などの条件がそろったときの話だ。
穴そのものの深刻さを0〜10点で分ける物差しに、CVSSがある。
台風の強さの段のようなもので、被害が出たかどうかとは別の話だ。
今回の2つは、どちらも4.0版の物差しで9.2だった。
9.0以上の、いちばん上のCriticalの段にあたる。
穴をふさぐ修正版、いわゆるパッチは、厨房の手順書の差し替えページにあたる。
PHPの開発チームは日本時間10月21日の朝4時33分、メールで予告を出した。
その日の23時に、修正版を出すという予告だ。
差し替えページが届くまで、穴のある扉を閉めておく。
これが予防のための停止だ。
壊されたから閉めるのではなく、壊されないように閉める。
この日の主な停止を、時刻の順に並べる。
・13時46分から14時49分にかけて順に停止 コドモン
・15時50分 BASE
・16時 エックスサーバーの管理画面など
・22時ごろから ウマ娘
BASEは、PHPに重大な脆弱性が確認されたとして、メンテナンスに入った。
予告していた時間を変えての実施で、終えたのは22日8時だ。
ウマ娘は21時18分に公式Xで、メンテナンスの開始時刻の変更を告知した。
PHPの脆弱性対応に伴うメンテナンスとしている。
ウマ娘のこの告知は、21時55分の首相のXアカウントの投稿より37分早い。
政府のサイバー対策の部署である国家サイバー統括室は、13時1分にXで呼びかけた。
中身は、PHPを使っているかの確認と、23時に出る予定の修正版をすぐ当てる準備だ。
この投稿は、10月28日朝の時点で約6,815万回表示されている。
21時44分には、すぐ当てるのが難しい場合について続けた。
例えばサイトなどを一時的に止めることも、有効策の一つと考えられるという。
21時55分には、高市早苗首相のXアカウントも投稿した。
「今夜に対応して頂きたい大至急のお願い」として、同じ趣旨を呼びかけた。
この投稿は、10月28日朝の時点で約1億回表示されている。
いいねは、同じ時点で約39.6万ついている。
首相の事務所関係者によると、首相自身の公式サイトも21日夜に止めた。
戻したのは、22日午前だという。

政府や首相の発信を異例と報じたのが、時事通信やギズモード・ジャパンだ。
J-CASTは、現場の技術者から後方支援になったと評価する声を紹介した。
並べた停止の中でいちばん早く動いたのは、保育園の連絡アプリだった。
その朝から昼までの3時間半に、何があったのか。
