
昔話でわかるPHP騒動 〜503じいさんと404ばあさん〜
昔話でわかりやすく書きましたがポッドキャストの方がわかりやすかったので最初に置いておきます
2026年10月22日 · 黒パグ
はじめに
10月21日、ゲームもネット通販も銀行のサイトも、あちこちで「緊急メンテナンス中」の画面が出ました。ウェブサイトの裏側で広く使われている「PHP」に、重大な欠陥が2つ見つかったためです。
止まったサイトが、みんな攻撃されたわけではありません。修正版を待つあいだや、修正と確認を進めるあいだ、安全のためにいったん閉めたサービスが相次いだのです。
とはいえ、PHPと言われてもピンとこない人が大半だと思います。そこで、何が起きたのかを昔話にしてみました。前半が昔話、後半が現実の解説です。
昔話の人物や会話は、出来事を説明するための創作です。
(2026年10月22日昼時点の公開情報に基づきます)
日本PHP昔話 〜503じいさんと404ばあさん〜
むかしむかし――といっても、ついこのあいだのこと。インターネット村に、503じいさんと404ばあさんが住んでいました。
(503は「一時的に利用できません」、404は「見つかりません」。サイトを開こうとしたときに見かける、あの番号です)
この村では、台所の型がわかっている店を数えると、およそ7割が「PHP」という台所を使っていました。お客さんから注文が入ると、その場で「ページ」という料理をこしらえて出すのです。
ある日、503じいさんは山へサーバーの再起動に、404ばあさんは川へログ(村の出入りや出来事の記録)を洗いに出かけました。
ばあさんが川で洗いものをしていると、どんぶらこ、どんぶらこと、大きな桃が流れてきました。桃には札が貼ってあります。
「PHPの台所の秘密 約束の日まで開けるべからず」
桃の中身は、PHPの台所に何年も前から潜んでいた、ふたつの欠陥の話でした。見つけたのは、からくり(AI)を使いこなす腕利きたちです。
腕利きたちと台所の作り手は、直す部品(パッチ)や守る準備をそろえてから、村じゅうへ知らせる段取りを進めていました。悪い者に先に知られたら、部品を付け替える前に台所を狙われてしまいますから。
「おやまあ、秘密の桃が、なんでもう川に」
ばあさんが手を伸ばしかけたそのとき、山の方から503じいさんの声が響きました。
「ばあさん! そいつはまだ開けちゃならん!」
しかし、時すでに遅し。川の上流では、もう中身の話が広まっていたのです。
ぱっかーん。
中から、そっくりな双子が飛び出してきました。
「おぎゃあ! ぼくは109618!」
「おぎゃあ! ぼくは109619!」
「ぼくらをうまく悪用すると、村の外から、店の台所を勝手に動かせちゃうんだ!」

兄の109618は、仕込みの途中で材料(メモリ)が足りなくなると、作業を放り出すくせがありました。困ったことに、店じまいの係は、そのやりかけの仕込みを「ちゃんとできている」と思い込んで扱ってしまいます。
弟の109619は、前のお客さんの注文メモを捨てたあとも、「メモはあそこ」という目印だけが台所に残ってしまうくせがありました。同じ店員が次のお客さんの注文を受けると、目印を片付ける前に、それを使ってしまうのです。
どちらも、悪い者にうまく突かれると、台所を乗っ取られかねない欠陥でした。
503じいさん「ぎゃああああ!」
404ばあさん「おじいさん、早くパッチを!」
503じいさん「部品はまだ届いておらん! 話が先に広まってしまったんじゃ!」
村は大騒ぎになりました。
村はずれの見張り塔から、声が飛びます。
「あの話は本物だ! くわしいことは言えん。部品が届いたら、すぐに付け替えよ!」
やがて、台所の作り手から知らせが届きました。
「部品は水曜の夜十一時に配る。みな、すぐ付け替えられるよう支度をしておくれ」
村の入口の関所では、Cloudflareの番犬が吠えました。
「覚えた手口は食い止める! だが、新しい手口まで全部止められるとは限らんぞ! 部品の付け替えは、それぞれの店でな! ワン!」
店主たちは「念のため」と、次々に店を閉めはじめました。ゲームの店、絵描きの集まる店、動画の芝居小屋、ネットの市場、保育園の連絡帳、電車の会社、銀行や証券の店。店の土台を貸している大家さん(レンタルサーバー)も、点検や部品の付け替えに追われました。
店先に「ただいま準備中」の札を掛けて回る503じいさんは、村じゅうを走りまわりました。
お城からも「大至急!」とお触れが出ました。
そこへ、通りすがりのカニが言いました。
「最初からRustで建てておけば、こんなことには……」
503じいさん「今からかああああ!」

水曜の夜十一時ごろ。台所の作り手は、新しい部品を村じゅうに配りました。
部品を付け替え、安全を確かめた店から、ひとつ、またひとつと「準備中」の札が外されていきます。503じいさんは、ようやく腰をおろしました。
404ばあさんは、まだ川にいます。直す前に悪い者の足あとがついていないか、ログを一枚一枚洗っているのです。
「どうか、見つかりませんように……(404 Not Found)」
ただし村には、古い型の台所を使い続けている家もありました。作り手から、正式な新しい部品が届かなくなっている型です。一部には応急の継ぎあてや、別の職人が用意する部品もありますが、どこまで直せるかは確かめなければなりません。使い続けられる新しい型への引っ越しも必要です。
そして、まだ部品を付け替えていない店は、危険が残ったままです。関所の番犬だけでは、裏口までは守れません。

めでたし、めでたし……?
園児「せんせー! ぜんぜんめでたくないよー!」
先生「昔話ですから」
園児「むかしじゃなくて、きのうのはなしだよー!」
語り:HTTP/1.1 200 OK(営業再開)
教訓:部品(パッチ)は、配られただけでは効かない。付け替えて、確かめるところまでが仕事です。
要するに、何が起きたの?
ウェブサイトを動かすPHPに、外部から不正なプログラムを実行されかねない重大な欠陥が2つ見つかりました。修正版と詳細情報の公表を関係者が準備するなかで、情報が予定より早く流出。国内でも、多くのサービスが予防的に一時停止しました。
修正版は、10月21日23時ごろ(日本時間)に公開済みです。ただし、公開されたことと、それぞれのサーバーで修正が済んだことは別です。
PHPの利用率についても、ひとつ補足があります。W3Techsの10月22日の集計では、「サーバー側のプログラミング言語が判明しているサイト」の69.3%がPHPを使用しています。すべてのウェブサイトを数えた7割、という意味ではありません。
昔話と現実の対応
・PHPの台所:ウェブサイトの裏側で、アクセスに応じてページを組み立てるプログラミング言語。WordPressもPHPで動いています
・台所の作り手:PHPの開発チーム
・からくりを使う腕利きたち:セキュリティ企業Califが、OpenAIの「GPT-5.6 Sol」を使って1件を発見したと、OpenAIが発表しています。Wizも2件を独自に発見・報告し、研究にWiz Atlas、Gemini 4 Argon、GPT-5.6 Solを使ったと公表しています
・双子(109618と109619):CVE-2026-109618とCVE-2026-109619。「CVE」は、公表された脆弱性を識別する共通の番号です
・台所を勝手に動かされる:リモートコード実行(RCE)。ネット越しに、サーバー上で攻撃者の指定したプログラムを動かされてしまうこと。改ざんや情報流出につながるおそれがあります
・秘密の桃の札:情報解禁日(エンバーゴ)。修正や防御の準備を進めるため、関係者が詳細の公表時期を調整していました
・見張り塔:セキュリティ会社watchTowr。予定より早く情報が漏れたことと、脆弱性が実在することを表明しました
・関所の番犬:CloudflareのWAF(ウェブアプリケーションファイアウォール)。サイトの手前で、不審な通信などを検出・遮断する防御です
・準備中の札:各社の予防的な一時停止や緊急メンテナンス。各社の画面がすべてHTTPの「503」を返していた、という意味ではありません
・お城のお触れ:国家サイバー統括室やIPAの注意喚起と、首相のXでの呼びかけ
・新しい部品:PHP 8.5.12/8.4.27/8.3.36/8.2.35、または配布元が提供する修正済みパッケージ
・ばあさんのログ洗い:修正前の侵入や不審な動きがなかったか、記録を調べる作業
・カニ:別のプログラミング言語「Rust」のマスコット。詳しくは後半のコラムで
何が、どの順番で起きたのか
主な経緯を並べます。時刻は、断りのない限り日本時間です。
・約2か月にわたり:OpenAIによると、PHPの開発者や研究者、セキュリティ企業などが、修正と防御の準備に取り組んでいました。Wizは8月に発見・報告したとしています
・10月17日:AWSが、監視用のおとり環境「MadPot」の記録から、この日にさかのぼる攻撃試行を確認したと後に公表。公に情報が流れる前から試行があったことになります
・10月20日〜21日未明:予定より早く脆弱性の情報が広まり、watchTowrが実在を確認したと表明。PHP開発チームは、21日23時の緊急リリースを予告しました。深刻度は2件ともCVSS v4.0で9.2の「緊急」です
・10月21日12時02分から:Cloudflareの説明では、無料・有料のWAFを利用する顧客向けに、既定で保護が適用されました。同社は攻撃通信を観測し、防御ルールの更新を続けているとしています
・10月21日午後〜夜:国内サービスの予防的な一時停止が相次ぎ、IPAや国家サイバー統括室が注意喚起。首相もXで、大至急の対応準備を呼びかけました
・10月21日23時ごろ:修正版のPHPが公開されました
・10月22日にかけて:修正や確認を終えたサービスが順次再開。BASEは、22日8時にメンテナンスを終了したと案内しています
なお、watchTowrが述べた当初の情報解禁予定は「木曜日の午前11時・米東部時間」で、日本時間では23日(金)0時です。PHP公式が20日に予告した21日23時の公開予定とは、区別して読む必要があります。
なにがそんなに危なかったの?
1. やられることが重い
2件とも、認証なしでのリモートコード実行につながりうる欠陥です。PHP開発チームは、Apacheの「mod_php」という動かし方で、とくにリスクが高いとしています。サイトのプログラムが動き出す前に、不正なリクエストによって攻撃を起こせることが実証されています。
昔話では「台所を動かされる」と書きましたが、現実には、サイトの改ざんや情報流出につながるおそれがあります。Wizは、コード実行を伴わずに、PHPプロセスのメモリからパスワードやトークンなどを読み取れることも実証したとしています。
2. アプリの出来がよくても、土台に穴がある
今回の問題は、PHPで書かれた個々のサイトやプラグインではなく、PHP本体のメモリ管理にあります。
WizやCloudflareは、PHP 5.4以降の幅広いバージョンが影響すると説明しています。ただし、攻撃が成立する条件や方法は、PHPのバージョン、設定、動かし方などによって異なります。どのサイトも同じ一発で乗っ取れる、という意味ではありません。
PHP公式は、mod_phpだけでなく、PHP-FPM、php-cgi、FrankenPHP、LiteSpeedなど、ウェブリクエストを処理するPHP環境を広く対策の対象として挙げています。
3. 修正が行き渡る前に、攻撃の試みがある
修正と公表の準備をしていても、すべてのサイトが同時に更新できるわけではありません。今回は予定より早く情報が広まり、修正版の公開前から攻撃試行やPoC(攻撃を実証するコード)の存在も報告されました。
さらにAWSは、10月17日にさかのぼる攻撃試行を公表しています。その試行が実際のサービス環境で成功したかは不明としていますが、「情報が漏れた日より前は安全だった」とも言えません。
止まったサービスは「やられた」わけではない
メンテナンスには、攻撃を受ける前に外部からのアクセスを止める予防措置も含まれます。首相や国家サイバー統括室も、すぐに修正パッチを適用することが困難な場合、一時停止がリスクを減らす有効策のひとつになると呼びかけていました。
公式告知や報道で確認できた主な対応は、次のとおりです。停止対象や再開時刻は、サービスごとに異なります。
・ネットサービス・ゲーム:コドモン、BASE、Cygamesのゲーム、ニコニコ、pixivなどで、サービスの一時停止や緊急メンテナンス
・レンタルサーバー:さくらインターネット、XServer、GMOペパボなどで、一部機能の停止や緊急メンテナンス
・銀行:静岡銀行は、公式告知の本文でホームページと「しずぎんアプリ」の一時停止を案内。七十七銀行も一部サービスの停止を案内しました。共同通信によると、みずほ銀行は臨時メンテナンスを実施し、ホームページ上の来店予約サービスが一時停止しました
・証券:報道によると、大和証券が口座開設を含むウェブサービスを停止。三菱UFJモルガン・スタンレー証券も、本人確認などの手続きを停止しました
・交通:阪急電鉄、京阪ホールディングスなどで、サイトの一時停止。共同通信によると、日本航空は企業サイトや予約サイトの一部機能を停止しましたが、旅客の予約や運航に影響はないと説明しています
全国銀行協会は、銀行間の決済関連への影響は確認されていないと説明した、と共同通信が報じています。BASEも、21日の告知時点では不正アクセスなどは確認されていないと説明していました。
ただし、個々のサービスについての説明と、世界全体の被害状況は別です。AWSやCloudflareが攻撃試行・攻撃通信を観測している一方、侵入成功や被害の全体像がどこまで判明しているかは、各社の発表を分けて見る必要があります。
わたしたちは何をすればいい?
サービスを使うだけの人
PHP本体の更新は、サービスを運営している側の仕事です。利用者が自分のスマホにPHPのパッチを入れる必要はありません。再開状況や代替手段は、各社の公式案内を確認しましょう。
「脆弱性対応のため再ログインしてください」といった便乗の偽メールや偽SMSにも気をつけたいところです。案内が届いた場合は、メール内のリンクからではなく、公式アプリやブックマークから確認してください。
ブログやお店のサイトを持っている人
・レンタルサーバーなら、まず事業者のお知らせを確認。自分の契約・利用環境が対応済みかを確かめます。管理画面でPHPのバージョンを選ぶタイプなら、古い版を使い続けていないかも確認してください
・WordPressやプラグインの更新だけでは、今回の穴はふさがりません。PHP本体への対応が必要です
・自分でサーバーを管理しているなら、利用系列に応じてPHP 8.5.12/8.4.27/8.3.36/8.2.35以降、または配布元の修正済みパッケージへ更新し、稼働中のPHPプロセスにも反映させます
・Linuxディストリビューションなどが古い版へ修正を取り込む「バックポート」を提供する場合もあります。バージョン番号だけで未修正と決めず、配布元の勧告とパッケージ情報を確認してください
・PHP 8.1以前は、PHP公式の通常のサポート対象外です。7.4〜8.1向けに最小限のソース修正は提供されていますが、両方の問題が完全に解決するとは限りません。配布元の対応範囲を確認し、サポート中の版への移行を進めてください。8.2も2026年末でサポートが終わります
・WAFは追加の防御で、PHPの修正を代わりに済ませてくれるものではありません。防御の対象外の通信経路や、新しい攻撃方法が残る可能性があります
・更新後も、修正前の侵入や不審な動きがなかったかを確認してください。パッチは、すでに起きた侵入を取り消すものではありません。また、ログに異常が見つからないことだけで、侵入がなかったと証明できるわけでもありません
コラム:カニの言うことにも一理ある?
昔話のカニは、Rust(ラスト)という別のプログラミング言語のマスコットです。「全部Rustで書き直せばいい」は、エンジニアのあいだでおなじみの決まり文句でもあります。
実は、弟の109619のような「解放したメモリを、残った参照から使ってしまう」失敗は、Rustの所有権や借用の仕組みが防ぐ種類のメモリ不具合です。安全なRustの範囲では、こうした使い方をコンパイラが制限します。カニの言い分にも、一理はあるのです。
OpenAIも今回の発表で、重要な構成要素をメモリ安全な言語へ移すことを、長期的な改善の方向として挙げています。
とはいえ、30年あまり積み上がってきた村を、一晩で建て直すことはできません。いまできることは、パッチを当てることです。
503じいさん、今夜もお疲れさまです。
この記事について
この昔話は、チャットで作った初稿を、公式発表や報道と照合して書き直したものです。今回の脆弱性も、AIを使って見つかったと発表されています。見つけるのもAI、物語にするのもAI。勢いで事実まで作られては困るので、そこは確認しました。
サービスの停止・再開状況や攻撃の分析は、今後も更新されます。運用上の判断には、PHP公式と、利用している製品・サービスの最新の案内を確認してください。
参考
PHP公式:セキュリティ勧告・修正版公開・事前予告
https://www.php.net/archive/2026.php
PHP公式:CVE-2026-109618 技術勧告
https://github.com/php/php-src/security/advisories/GHSA-w8hw-w9fx-j79w
PHP公式:CVE-2026-109619 技術勧告
https://github.com/php/php-src/security/advisories/GHSA-6wmf-4rv5-p3rp
OpenAI:Patch the Planet
https://openai.com/index/coordinated-disclosure-of-critical-vulnerabilities/
Wiz:PHP2Shellの発見と技術分析
https://www.wiz.io/blog/php2shell-php-rce
Cloudflare:PHP2Shellに対するWAF防御
https://blog.cloudflare.com/php-vulnerabilities-waf-protection
AWS:公開前の攻撃試行をMadPotで確認
https://aws.amazon.com/blogs/security/amazon-threat-intelligence-identifies-php2shell-exploitation-prior-to-public-disclosure-in-madpot/
AWS:PHPの脆弱性に関するセキュリティ勧告
https://aws.amazon.com/security/security-bulletins/2026-143-aws/
W3Techs:PHPの利用率
https://w3techs.com/technologies/details/pl-php
IPA:PHPのセキュリティリリース公開予定について
https://www.ipa.go.jp/security/security-alert/2026/pre-alert20261021.html
watchTowr:情報流出と当初の解禁予定に関する投稿
https://x.com/watchtowrcyber/status/2112611507749982605
高市早苗首相:PHPへの対応を呼びかけた投稿
https://x.com/takaichi_sanae/status/2112890642590564386
BleepingComputer:緊急リリースの予告とwatchTowrへの取材
https://www.bleepingcomputer.com/news/security/php-warns-admins-of-two-critical-flaws-emergency-patches-coming-tomorrow/
ITmedia NEWS:PHP修正版の公開
https://www.itmedia.co.jp/news/article/2610/22/2000002480/
Impress Watch:国内サービスの停止・緊急メンテナンス
https://www.watch.impress.co.jp/docs/news/2150159.html
共同通信/熊本日日新聞:銀行決済への影響と各社の対応
https://www.kumanichi.com/articles/2049160
静岡銀行:ホームページ・アプリ等の一時停止について
https://www.shizuokabank.co.jp/notice/detail/20261021_etB/
七十七銀行:一部サービスの利用停止について
https://www.77bank.co.jp/emergency/detail1.html
BASE:緊急メンテナンス完了のお知らせ
https://help.thebase.in/hc/ja/articles/63455442867737
HTTP仕様(RFC 9110):503 Service Unavailable
https://www.rfc-editor.org/rfc/rfc9110.html#name-503-service-unavailable
The Rust Programming Language:所有権
https://doc.rust-lang.org/book/ch04-01-what-is-ownership.html
#PHP #PHP2Shell #セキュリティ #サイバーセキュリティ #脆弱性 #昔話 #風刺 #AI #エンジニア #システム障害