Node2ShellからHTTP2Shellへ:Brotliデコーダーの境界外書き込み脆弱性

本脅威は、Googleが開発した汎用データ圧縮ライブラリ「Brotli」のデコーダー実装に存在する、深刻なメモリ破壊(境界外書き込み)の脆弱性(CVE-2026-111497)に起因するものです。
2026年10月21日にNode.jsプロジェクトおよびBrotliアップストリームによる緊急セキュリティパッチとして公表されました。
不正に細工されたBrotli圧縮データを処理させることで、悪意のある第三者がサービス運用妨害(DoS)を引き起こしたり、最悪の場合リモートコード実行(RCE)を達成したりするリスクを孕んでいます。
脆弱性の報告当初はNode.js環境での影響に注目が集まり「Node2Shell」と呼称されていましたが、Webサーバ、プロキシ、各種言語バインディング(Python、.NET、Envoy、Bun等)を含む広大なHTTP/Webエコシステム全体に波及することが判明したため、コミュニティやメディアの間でより広範な影響度を示す通称「HTTP2Shell」(あるいはBrotliに掛けた愛称的な「Broccoli2Shell」)へと呼称が変化・定着しました。
特徴的な部分をみてみましょう。

  • 命名の変遷(Node2Shell → HTTP2Shell / Broccoli2Shell)
    当初、Node.jsのHTTP/HTTP2処理パイプラインを標的としたPoC(概念実証)や脆弱性レポートが先行したため、コミュニティでは「Node2Shell」という通称で認知され始めました。
    しかし、根本原因がNode.js独自の実装ではなく、組み込まれていた「Google Brotliデコーダー」そのものにあると判明しました。
    公式な識別名はCVE-2026-111497ですが、HTTP/2環境下の通信経路やプロキシ、リバースプロキシ、APIゲートウェイなど広範なインフラに致命的な影響を及ぼすことから、リサーチャー界隈で「HTTP2Shell」へと改名されました。
    また、Brotliの語源(スイスドイツ語の「小さなパン」)や語感を揶揄・強調する形で「Broccoli2Shell」とも俗称されています。
  • 影響範囲の圧倒的な広さ(エコシステム横断型)
    Brotliは現代のWebトラフィック最適化において事実上の標準デファクトスタンダードとなっており、多くのWebサーバーやランタイムがネイティブまたはCバインディング経由で組み込んでいます。
    • 主要ランタイム: Node.js、Bun、Microsoft .NET
    • プロキシ / インフラ: Envoy、各種リバースプロキシ・APIゲートウェイ製品
    • 言語パッケージ: Python(brotli、brotlicffi)、Rust、Goバインディング等
      単一のソフトウェアではなく、Webスタック全体に影響が連鎖するサプライチェーン型の構造的リスクを持っています。
  • 攻撃成立の容易性と事前認証の不要性
    攻撃者は特別な権限や認証を必要としません。
    リクエストヘッダーに Content-Encoding: br を指定して圧縮された悪意あるペイロードを送信する経路、またはクライアント側でBrotli圧縮レスポンスを伸長処理する通信経路に対し、異常なハフマンツリーや無効なメタデータブロックを仕込んだBrotliペイロードを処理させるだけで、デコーダーのクラッシュや不正なメモリアドレスへの書き込みを誘発できます。
  • 深刻度(DoSからRCEへの発展性)
    境界外書き込み(Out-of-Bounds Write)であるため、最低限でもサーバプロセスの即時クラッシュ(DoS)を引き起こします。
    さらに、メモリレイアウトの予測やヒープスプレー等の悪用手法を組み合わせることで、特定のアーキテクチャやランタイム構成において任意のコード実行(RCE)に至る恐れがあり、CVSSスコアはクリティカル(Critical)に分類されています。

本件は、単一製品の不具合にとどまらず、基盤ライブラリの欠陥がインターネットインフラ全体に急激な影響を及ぼした典型的なサプライチェーン脆弱性です。
「Node2Shell」から「HTTP2Shell」への呼称変化が示すとおり、影響はWebアプリケーションサーバからエッジプロキシ、各言語環境にまで及んでいます。
外部入力をBrotli形式で伸長(解凍)するすべてのシステムにおいて、各ベンダーが提供する最新の修正パッチ(Node.js、.NET、Envoy、各種OSパッケージ)を可及的速やかに適用することが最優先の対応となります。
暫定対策として、パッチ適用が完了するまでの間、リバースプロキシやWAF等で外部からの Content-Encoding: br を含むリクエストの遮断、またはバックエンド手前でのBrotli伸長処理を一時的に無効化(gzip等への代替)する措置も検討されます。

『たかがBrotliのDoSだろう』という淡い期待は無情にも打ち砕かれ、まさかのRCEだったばかりかWeb基盤全体を揺るがす大惨事へと発展してしまった、というのが現場の率直な落胆でした。

Brotli: Out-of-bounds write in the Brotli decoder (“Node2Shell”) also affects the PyPI Brotli package
https://github.com/advisories/GHSA-9v8h-qqgm-4m35

一緒によく読まれている記事

最新の脅威情報
をお届け

BLOGブログ

情報セキュリティに対する啓蒙のため、
3つのメディアを運用し、
情報発信を行っています。

わたしたちはサイバー領域や
認知領域の未知なる脅威に、
テクノロジーとインテリジェンスで対抗します。

私たちが選ばれる理由

CONTACT リスクマネジメントサービスの
ご相談窓口

コンステラ セキュリティ ジャパンは
最先端のサービスを
お客様のニーズに
カスタマイズして提供し、
効果が出るまで寄り添います。