PHP2Shellから一週間 現状と”HTTP2Shell”についても
この記事の想定読者
- Webサイトを運営している事業者・団体の方
- サイトの制作や保守を外部に任せていて、何を確認すればよいか知りたい方
- 「PHP2Shell」「HTTP2Shell」という名前を報道で目にし、不安に思い状況を整理したい方
技術的な仕組みや攻撃の詳細には立ち入らず、公開された一次情報をもとに「いま何が起きていて、何を確かめるべきか」を整理します。
この記事の目的
不穏な事案名ばかりが先行するなかで、正確な情報にもとづいて不安を和らげ、サイトを運営する一人ひとりが落ち着いて手を打てるようにすることを目的としております。乗っ取られたサイトは、当事者に被害をもたらすのみならず、次の攻撃の踏み台にもなります。一つひとつのサイトの手当ては、ウェブ全体の健全さを保つことにつながると考えています(よって、すべて無料公開とします)。
はじめに
PHPの重大な脆弱性「PHP2Shell」の詳細が流出したのは、10月20日のことだった。それから一週間が経つ。この間に「Node2Shell」「Python2Shell」「HTTP2Shell」と、似た名前が次々と現れた。タイムラインを眺めていると、まるで、すでに攻撃の第二波、第三波が押し寄せているかのように見える。
だが、実態はそうではないと筆者は考える。事案件数と脅威の数は単純に一致しない。いま本当に警戒すべきものは何か。そして、名前の騒がしさに惑わされずに何を確かめればよいのか。10月26日朝の時点で分かっていることを、一次情報にあたって整理しておく。
結論を先に書く。いまも攻撃が続いている本丸は、あくまでもPHP2Shellである。HTTP2Shellは、それとは別系統の脆弱性だ。そしてもう一つ、あまり話題になっていない「未修正の小さな穴」がある。
PHP2Shell:攻撃は続き、焦点は侵害の確認へ
PHP2Shellは、PHP本体に見つかった2件の脆弱性の通称だ。どちらも深刻度は最高水準のCVSS v4.0 9.2で、ログインせずに外部からサーバー上でプログラムを動かされるおそれがある(注1)。PHPは世界のWebサイトのおよそ7割を支える言語である。影響が及ぶ範囲は、ほぼ「Webそのもの」と言ってよい。よって、最高レベルの警戒を継続するべきと思われる。
修正版は10月21日の夜(日本時間)に公開された。ただし、攻撃のほうが一足早かった。Amazonは、公表の4日前にあたる10月17日に、すでに悪用の試みを観測していた(注2)。その後の悪用の試みは数百万件規模に達しているという(注3)。
大半は失敗に終わっているとみられる。ただ、侵入に成功したとされる事例も伝えられている。セキュリティ企業の報告として、ある欧州の政府機関で、最初の侵入から2時間ほどでパスワードの情報や多要素認証の秘密鍵が盗まれたと報じられている(注4)。国内でも、PHPの脆弱性を狙った攻撃による情報流出の可能性を公表した企業がある。原因がPHP2Shellかどうかは、まだ特定されていない。
ここで強調しておきたいことが二つある。
一つ目に、設定を変えるだけでは防ぎきれない。修正版が出る前に暫定策として広まった設定変更について、最初にそれを提案したセキュリティ企業自身が「それだけでは攻撃は依然として可能」と見解を改めた。PHPのコア開発者も「唯一の緩和策は更新だ」と明言している(注5)。
二つ目に、更新しただけでは終わらない。修正版の公開より前に攻撃が始まっていた以上、「当てたから安全」とは言えない。JPCERT/CCは、侵害の有無を調べるよう呼びかけている。さらに、痕跡が見つからなくても、攻撃を受けていないとは断定できないとしている(注6)。
なお、米CISAが悪用確認済みの脆弱性として掲載する「KEVカタログ」には、10月25日の時点でまだ載っていない(注7)。だが、これは安全の証明ではない。現場の観測に手続きが追いついていない、と読むべきだろう。
PHPの新たな脆弱性:修正版でも塞がらない
10月23日、PHPはもう一つ、別の脆弱性を公表した。これもリモートからコードを実行されうる種類のものだが、成り立つ条件はかなり限られる。PHP自身も「現実には起こりにくい」と評価している。そのため緊急の修正ではなく、次の定例リリースで直す方針をとった(注8)。
厄介なのは、10月21日の修正版を当てても、この「穴」は塞がらないという点だ。修正が出るまでのあいだ、PHPは関連する機能を無効にしておくよう勧めている。悪用の報告は、いまのところない。
成立条件の詳細は、ここではあえて書かない。自分のサイトが該当するかどうかは、PHPの公式告知を見て、管理者やサーバー事業者に確かめていただきたい。
HTTP2Shell:PHPとは別系統の脆弱性
さて、本題のHTTP2Shellである。
結論から言うと、一般的なウェブサイトユーザーにはそこまで大きな影響を及ぼすモノではないと筆者は考えている。
まず名前から確認しておこう。HTTP2Shellは「HTTP/2」の脆弱性ではない。PHPの脆弱性でもない。正体は、Googleが開発した圧縮技術「Brotli」の、データを解凍する部分にあるバグだ。Brotliは、Webでやりとりされるデータを小さくするために広く使われている。深刻度はPHP2Shellと同じCVSS v4.0 9.2で、細工されたデータを解凍させると、メモリが破壊される(注9)。
このバグは、名前が三度変わった。最初に修正を出したのがNode.jsだったため、当初は「Node2Shell」と呼ばれた。Pythonにも波及すると分かると「Python2Shell」になった。そして、HTTPでデータをやりとりするあらゆるソフトに及ぶと見えてきた段階で、「HTTP2Shell」と呼ばれるようになった(注10)。どの名前も、指しているのは同じ一つのバグだ。
では、どれほど危険なのか。研究者が、改変していないNode.jsでコードを実行できることを実験環境で示している。一方で、公開された攻撃コードの多くはプログラムを落とすところまでしか届かない。「信頼できる攻撃手法はまだ公開されていない」との評価もある。実環境での悪用は、10月25日の時点で確認されていない(注11)。
一般的なPHPのWebサイトに目を向けると、PHP本体や主要なアプリケーションが直接の影響を受けるとは、いまのところ報告されていない。標準的なWebサーバーも、外から届いた圧縮データを解凍する使い方は基本的にしていない(注12)。ただ、サーバーに入っている周辺ライブラリには影響しうる。そこは事業者に確認する価値がある。より直接の当事者になるのは、Node.jsやPythonでサービスを組んでいる開発チームのほうだ。
もう一つ、見逃せない副作用がある。名前が売れると、それに便乗する者が現れる。すでに「HTTP2Shellの無料スキャナー」と称するツールや、攻撃コードの販売、暗号資産の宣伝が出回っている(注10)。正体の分からない検査ツールを、本番のサーバーに向けて走らせてはいけない。脆弱性は、それ自体が情報戦の素材にもなるのである。
サイト運営者がいま確かめること
3件の脆弱性を、警戒すべき順に並べると次のようになる。
| PHP2Shell | PHPの新しい穴 | HTTP2Shell | |
|---|---|---|---|
| 正体 | PHP本体の脆弱性2件 | PHPの一機能の脆弱性 | 圧縮ライブラリBrotliの脆弱性 |
| 修正 | あり(10/21) | なし(次の定例で対応) | あり(各ソフトで順次) |
| 実際の攻撃 | あり | 報告なし | 確認されていない |
| 警戒度 | 最高 | 低〜中 | 中(開発環境によっては高) |
手を動かす順番は、次のとおりだ。
- PHPが修正版になっているか確かめる。 レンタルサーバーなら事業者の告知を、自分で管理するサーバーならパッケージの更新履歴を見る。画面に表示されるバージョン番号だけでは判断できない場合がある。
- 侵入の痕跡がないか調べる。 調べる観点は、JPCERT/CCの注意喚起にまとまっている(注6)。少なくとも10月17日までさかのぼって確認したい。
- 管理画面のパスワードを見直す。 侵入されると、まず認証情報が狙われる。使っていないアカウントを消し、パスワードを更新しておく。
- HTTP2Shellは「使っているか」から確かめる。 Node.jsやPythonで作ったサービスがあるなら、ランタイムとライブラリを更新する。そうでなければ、サーバー事業者の対応状況を確認すれば足りる。
- 「無料の診断ツール」には近づかない。 確認は、公的機関と開発元の公式情報を起点にする。
名前ではなく、中身を見ることの大切さ
この一週間で、私がいちばん印象に残ったことがある。それは、脆弱性の「発見」の側にもAIが深く入り込んでいる、という事実だ。PHP2Shellは、OpenAIなどの研究者がAIを使った監査で掘り当てたものだ(注13)。HTTP2Shellを見つけたのも、OpenAIのセキュリティ研究者である(注9)。「穴」が見つかる速度が上がれば、それを突く速度も上がる。前回の記事で「すでに第三次世界大戦のなかにいる」と書いたのは、誇張のつもりではなかった。この混乱は、少なくとも半年は続くと私は見ている。あえて悲観的な見立てをすれば、今後数年は続く可能性がある。
だからこそ、名前の騒がしさに振り回されたくない。新しい「〇〇2Shell」が現れたら、次の三つを問えばよいと筆者は考える。
「それは何の脆弱性なのか」。「自分はそれを使っているのか」。「実際に攻撃は起きているのか。有事の勝敗は一瞬で決まる。だが、その一瞬を制するのは、平時に可能な限りの準備をしておいた側だ。
(2026年10月26日朝9:30時点の情報にもとづく。状況は日々変わるため、最新の情報は脚注の一次情報で確認していただきたい)
脚注
- CVE-2026-109618/CVE-2026-109619。PHP公式のセキュリティ告知/PHP 8.5.12 リリースノート
- Sophos Advisory(Amazon Threat Intelligenceの観測)
- Cybernews
- Palo Alto Networks Unit 42の報告による(Penligentの整理、10月25日更新)
- BleepingComputer(PHPコア開発者の発言)/The Hacker News(GMO Flatt Securityの見解修正)
- JPCERT/CC 注意喚起 JPCERT-AT-2026-0033
- Brandefense
- CVE-2026-115560。The Hacker News
- CVE-2026-111497。CVEレコード/Node.jsのセキュリティリリース告知
- Brandefense:HTTP2Shell
- Upwind/Phoenix Security
- Aikidoの調査を整理した解説(DEV Community)
- BleepingComputer/SentinelOne