「HTTP2Shell」とは?Node.js・Pythonで動くWebアプリや業務ツールで今すぐ確認すべきこと

2026年10月21日以降、データ圧縮の仕組み「Brotli(ブロトリ)」に見つかった重大な脆弱性への修正が、Node.jsやPython向けのライブラリなどで相次いで公開されました。最初にNode.jsで報じられたことから「Node2Shell」、その後PythonやBunなど幅広い環境に影響が広がったことから「HTTP2Shell」とも呼ばれています。
この脆弱性は、Node.jsやPythonで作られたWebアプリケーション、社内の業務ツール、データ取得の自動化プログラムなどに関係します。この記事では、何が起きているのか、自社のシステムは対象なのか、何をすればいいのかを、専門知識がない方にもわかるように整理します。
この記事は2026年10月25日時点の公開情報をもとに作成しています。各社の対応状況は日々更新されているため、最新情報は記事末尾の参考情報(各公式発表)もあわせてご確認ください。
まず結論:やること
- 自社で使っているWebアプリ・業務ツールが、何で動いているかを確認する(Node.js、Python、Bunなど)
- Node.jsは 22.23.4/24.22.1/26.12.1 以降に更新する。Node.js 20以前はサポートが終了しており修正版が出ないため、サポート中のバージョンへ移行する
- Pythonは
brotliを 1.2.1 以降、brotlicffiを 1.2.1.0 以降に更新する - サーバー(VPS・クラウド)のOSパッケージを更新し、アプリを再起動する。Dockerなどのコンテナで動かしている場合は、イメージを作り直す
「うちのシステムが何で動いているか分からない」「開発した会社と連絡が取れない」という方へ
C-TechLabでは、Webアプリケーションや業務ツールの状況確認から、バージョンアップ・改修まで対応しています。初回のご相談は無料です。
HTTP2Shellとは?何が起きたのか
HTTP2Shellは、Googleが開発しているデータ圧縮の仕組み「Brotli」の展開(解凍)処理に見つかった脆弱性 CVE-2026-111497 の通称です。
Brotliは、Webサイトの表示を速くするために、サーバーとブラウザやアプリの間でやり取りするデータを小さく圧縮する技術です。多くのWebサイトやサービスで使われており、Node.jsやPythonの通信用ライブラリにも組み込まれています。
今回見つかったのは、わざと壊した圧縮データを展開させると、プログラムのメモリが書き換えられてしまうという欠陥です。CVEの記録では、次のような被害が起こりうるとされています。
- プログラムが停止する(サービスが止まる)
- メモリ上の情報(設定値や処理中のデータなど)が漏れる
- 条件によっては、攻撃者が外部からプログラムを実行できる(いわゆる「乗っ取り」)
深刻度は、CVEの記録(採番元はGoogle)で CVSS 4.0 のスコア 9.2「Critical(緊急)」 と評価されています。ログインなどの認証なしに、ネットワーク越しに狙えるとされている点が特に重く見られています。
なお「HTTP2」という名前が付いていますが、通信方式のHTTP/2そのものの欠陥ではありません。HTTP通信で受け取った圧縮データを自動で展開するあらゆる環境に影響が及ぶことから、この呼び名が広まりました。
影響を受けるもの・修正版
主なソフトウェアの影響範囲と修正版は次のとおりです(2026年10月25日時点)。
| ソフトウェア | 影響を受けるバージョン | 修正版 |
|---|---|---|
| Brotli(本体) | 1.0.3〜1.2.0 | 1.0.10/1.1.1/1.2.1 |
| Node.js | 22.x/24.x/26.x の修正前のバージョン、およびサポート終了版(20以前など) | 22.23.4/24.22.1/26.12.1 |
Python brotli | 1.0.3以上 1.2.1未満 | 1.2.1 |
Python brotlicffi | 1.0.3以上 1.2.1.0未満 | 1.2.1.0 |
| Bun | 1.4.3以前 | 1.4.4 |
| Envoy(Brotliの展開を設定している場合) | 各系列の修正前のバージョン | 1.40.0/1.39.3/1.38.6/1.37.8/1.36.12 |
Pythonでは、requests(内部で使われる urllib3)、httpx、aiohttp など、よく使われる通信ライブラリが、brotli などのパッケージが入っていると圧縮されたレスポンスを自動で展開します。そのため、Brotliを直接使っている自覚がなくても対象になる場合があります。
このほか、LinuxのOSに含まれるBrotliのパッケージや、Brotliを組み込んだ製品も対象になりえます。Debian・Alpineなどでは修正版の配布が始まっていますが、ディストリビューションによっては対応状況を確認中のものもあります。お使いのOSやサービスの公式発表をご確認ください。
どんなシステムが狙われやすいのか
攻撃者が悪用するには、細工した圧縮データを、相手のプログラムに展開させる必要があります。中小企業のシステムでいうと、次のようなケースが当てはまります。
- Node.jsやPythonで作った、インターネットに公開しているWebアプリ・API(予約システム、会員サイト、管理画面など)
- 外部のWebサイトやサービスからデータを取得する仕組み(価格や在庫の自動取得、Webhookの受信、URLのプレビュー表示など)
- Node.jsやPythonで作った社内向けの業務ツール(外部と通信するもの)
- ChatGPTなどのAPIや外部サービスと連携する自動化プログラム
特に、作ってから何年も更新していないシステムは、Node.jsやライブラリのバージョンが古いまま動き続けていることが多く、注意が必要です。
WordPressのホームページは大丈夫?
一般的なWordPressのホームページは、Node.jsやPythonではなくPHPで動いています。2026年10月25日時点で、PHP本体やWordPressが今回の脆弱性の直接の対象だという公式発表はありません。
ただし、次の点は確認しておくと安心です。
- VPSやクラウドで自分でサーバーを管理している場合は、OSのBrotliパッケージを含めて、セキュリティ更新を適用する
- レンタルサーバーの場合は、OSの更新はサーバー会社の担当です。サーバー会社からのお知らせを確認しましょう
また、同じ時期にPHP本体にも別の重大な脆弱性(通称「PHP2Shell」)が見つかっています。WordPressをお使いの方は、PHP2Shellの記事もあわせてご確認ください。名前が似ていますが、HTTP2ShellとPHP2Shellは別の脆弱性です。
自社のシステムが対象か確認する方法
システムを動かしているサーバーで、次のコマンドを実行するとバージョンを確認できます。
Node.js の場合
node -v
v24.22.1 のように表示されます。22系なら22.23.4以降、24系なら24.22.1以降、26系なら26.12.1以降であれば修正済みです。v20 以前が表示された場合は、修正版が提供されないため、サポート中のバージョンへの移行が必要です。
Python の場合
pip show brotli brotlicffi
Version: が brotli は1.2.1以降、brotlicffi は1.2.1.0以降であれば修正済みです。「見つからない(not found)」と表示されたパッケージは、そもそも入っていません。
Bun の場合
bun --version
1.4.4以降であれば修正済みです。なお、bun build --compile で作った実行ファイルは、Bunを更新したあとに作り直す必要があります。
「サーバーにログインする方法がわからない」「どのサーバーで動いているのかわからない」という場合は、システムを開発した会社か、専門家に確認を依頼しましょう。
今すぐやるべき対策
1. Node.js・Python・Bunを修正版に更新する
いちばん確実な対策は、修正版への更新です。CVEの記録やNode.jsの公式発表でも、更新以外の回避策は示されていません。
Node.jsのバージョンを上げる場合、まれにアプリ側の修正が必要になることがあります。いきなり本番環境で更新するのではなく、テスト環境で動作を確認してから切り替えるのが安全です。
2. サーバーのOSも更新し、アプリを再起動する
アプリだけでなく、サーバーのOSに入っているBrotliのパッケージも更新します。更新したあとは、アプリを再起動しないと古いプログラムが動き続けることがあるため、再起動まで行いましょう。
3. コンテナ・実行ファイルは作り直す
Dockerなどのコンテナで動かしている場合は、古いイメージの中に古いNode.jsやライブラリが残っています。修正版をもとにイメージを作り直して、入れ替える必要があります。
4. サポートが終わったバージョンは移行を計画する
Node.js 20以前など、サポートが終了したバージョンには修正版が提供されません。今回のような脆弱性はこれからも見つかるため、サポート中のバージョンへの移行を計画しましょう。
悪用の状況
2026年10月24日時点で、実際の攻撃に悪用されたという確認は報告されておらず、米国CISAの「悪用が確認された脆弱性カタログ(KEV)」にも掲載されていないと報じられています。
一方で、攻撃方法を検証したとするプログラム(PoC)がすでに公開されているとの報道もあります。公開から時間がたつほど攻撃が増えるのがこれまでの傾向です。「まだ大丈夫」ではなく「今のうちに」更新することをおすすめします。
「作ったまま」のシステムこそ要注意
今回の脆弱性は、Brotliという、ふだんは意識することのない「部品」の中に見つかりました。Webアプリや業務ツールは、このようなたくさんの部品(ライブラリ)の組み合わせでできています。
次のようなシステムは、気づかないうちにリスクが高まっていることがあります。
- 開発してから何年も、Node.jsやライブラリを更新していない
- 開発した会社やフリーランスと連絡が取れなくなっている
- どのサーバーで動いているのか、社内の誰も把握していない
- 「動いているから触らない」状態が続いている
システムは作って終わりではなく、部品を定期的に更新し続けることが、いちばんのセキュリティ対策です。
C-TechLabにできること
C-TechLabでは、Node.jsやPythonで作られたWebアプリケーション・業務ツールの開発と改修をお引き受けしています。
- 状況の確認:お使いのシステムがどの環境・バージョンで動いているか、今回の脆弱性の対象かどうかを確認します
- バージョンアップ・改修:テスト環境で動作を確認したうえで、Node.jsやライブラリを修正版に更新します。サポートが終わったバージョンからの移行もご相談ください
- ほかの会社が作ったシステムの引き継ぎ:開発元と連絡が取れなくなったシステムでも、まずは中身を確認するところから対応します
「何から確認すればいいかわからない」という段階でも大丈夫です。代表エンジニアが直接、状況を伺います。詳しくはWebアプリケーション開発やIT相談のページもご覧ください。
参考情報
- CVE.org「CVE-2026-111497: Out-of-Bounds Write in Google Brotli Decoder」(2026年10月22日公開)
- Node.js公式「October 2026 Security Releases」(2026年10月21日)
- Google「Brotli v1.2.1 リリース」
- GitHub Advisory「GHSA-9v8h-qqgm-4m35(PyPI: brotli/brotlicffi)」
- Bun「GHSA-663w-cv8g-jj2p」
- Envoy「GHSA-3wvj-j6qm-62mr」
- Debian Security Tracker「CVE-2026-111497」
- Brandefense「HTTP2Shell: One Brotli Flaw, Many Stacks and Their Fixes」
