3分でわかるphp2shell。PHPという「料理人」に何が起きたのか
(本記事はこちらの記事の短縮版です)
10月21日の夜、イラスト投稿サイトや銀行、ゲームなど、国内のウェブサービスが次々と止まりました。原因は「PHP」というプログラミング言語に見つかった、深刻な欠陥です。総称して「php2shell」とます。
コンピュータシステムにおけるセキュリティ脆弱性の深刻度を評価する「共通脆弱性評価システム(CVSS)」における危険度は10点満点中9.2で「緊急(critical)」に該当するケースです。私は20年ほどwebの世界におりますが、これほどの事態はほとんど記憶にありません。
この記事では、今回の事案をなんとかわかりやすく説明しようと、レストランで例えて考えてみます。
くだらないと思うかもしれませんが、3分で読めますので、お付き合いくださいますと嬉しいです。
PHPはいわば「厨房の料理人」
ホームページには2種類あります。完成したページをそのまま渡す「静的サイト」は、作り置きの弁当屋のようなもの。一方、ページを開いた瞬間に中身を組み立てる「動的サイト」は、注文を受けてから作るレストランです。
PHPは後者のレストランの、厨房に立つ料理人です。世界中で使われているCMS(専門知識がなくてもサイトを更新できる仕組み)の多くが、このPHPという料理人を雇っています。これにより、お客さんの注文に可能な限り応えられるようになっています。
何が起きたのか
この料理人、PHP氏は、基本的には几帳面な性格です。通常、一注文ごとにきれいに調理台を片付けて、次の注文に備えます。ところが、手に負えない量の注文が入ると、作りかけの材料を片付けないまま次へ移ってしまう癖がありました。
あるとき、このPHP氏を貶めたい、悪意をもつ犯人、ミスターXが現れました。ライバル料理人なのか、以前PHP氏にクビにされたことを根にもつ元部下なのか?など、彼の素性はわかりません。とにかく、ひどく性格の歪んだ人物です。
PHP氏は自由を愛する開放的な人物として知られています。しかし一方で、人を信じすぎる性格でもあり、たびたびオーナーからそれを指摘されてもいました。ミスターXは、PHP氏のこの性格を「脆弱性だ」としてつけ込みます。ある日、「忙しそうですね。手伝いますよ」と偽の美人アシスタント料理人(ミッシェル)を送り込みました。このミッシェルは、まんまとPHP氏の料理に毒を仕込んだり、キッチンにスマホを持ち込み、遠隔操作で好きな命令を実行できてしまうことにすら成功しました。スマホを駆使して店内システムを乗っ取り、いつでもレストランの鍵を開け、オーナーの部屋にまで入れるようにもしました。
これは全権を任されているスター料理人、PHP氏本人による独断なので、お店のオペレーションやレシピ(サイトのテーマやプラグイン)がどれほど丁寧でも防げません。そして、オーナーや株主にもまったく気が付かれず、日々が過ぎていきました。
…と、こんなことが起きていたのでした。のちのち、どのようなことが起こり得るかを考えると、恐ろしいですね。
PHPの違和感にいち早く気がついた人たちが、10/21に対応を開始
PHPの開発チームは10月21日23時ごろ(日本時間)、料理人を「再教育」する修正版を公開しました。8.5.12、8.4.27、8.3.36、8.2.35の4つです。8.1以前には、公式の修正版は出ていません。
一斉にサービスが止まったのは、被害が出たからではありません。各社が先手を打ってPHP自体の違和感(脆弱性)に気がつき、止めたのです。
一方、厨房のない静的サイトは、そもそも無関係でした。
サイトを持っている人が確かめること
- CMS(店)を更新しても直らない:直すべきは料理人、つまりPHP本体です。
- レンタルサーバーなら、まず事業者のお知らせを確認:管理画面で8.1以前を選んだままなら、新しい系列に切り替えましょう。
- メンテナンスモードでは守れない:「本日休業」の札を出しても、厨房の裏口は開いたままです。
- 放置しているサイトこそ危ない:使っていないなら、この機会に閉じることも考えてください。
今から動いても、意味は大いにある
攻撃は修正版の公開前から始まっていました。ですから、今から対応を始めるのは、正直に言えば後手です。それでも、やる意味は大いにあります。
ただし、料理人を再教育しても、すでに仕込まれた毒までは消えません。更新が遅れたサイトは、見覚えのないファイルや管理者アカウントが増えていないかも、あわせて確認してください。自信がなければ、制作を頼んだ人やサーバー事業者に相談しましょう。
世界中の厨房に、同じ料理人
今回見えたのは、世界中の厨房がほぼ同じ料理人を雇っているという事実です。一軒ごとには合理的な選択でも、揃えれば弱点まで揃ってしまう。便利さと引き換えに何を一か所に預けているのかは、一度考えておいて損はありません。
たとえ話をもっと詳しく、静的サイトとの違いや騒動の経緯まで知りたい方は、本編をどうぞ。
→ 本編:php2shellで何が起きたのか。PHPを「厨房の料理人」にたとえて説明してみます
アイキャッチ画像のPHPロゴ:Colin Viebrock / CC BY-SA 4.0(改変せず白背景に配置。この画像もCC BY-SA 4.0で提供)。本記事は2026年10月22日時点の情報に基づいています。