HTTP2Shellの脆弱性に続報 ― CISAが悪用を確認、.NETなど影響製品の対策

Share
HTTP2Shellの脆弱性に続報 ― CISAが悪用を確認、.NETなど影響製品の対策アイキャッチ画像

HTTP2Shell(CVE-2026-111497)について、実際の悪用を踏まえた注意喚起と、各製品の対応情報が相次いで公開されています。JPCERT/CCは2026年10月26日に注意喚起を公表し、米国CISAも27日に本脆弱性をKEVカタログに追加しました。今回の脆弱性はNode.jsだけでなく、Brotliを組み込む複数の製品に影響します。対応では、ライブラリや実行環境の更新に加え、コンテナーや配布済み実行ファイルに修正が反映されているかを確認する必要があります。本記事では、追加の注意喚起と製品別の対応情報を整理します。

HTTP2Shellの悪用確認とBrotliへの影響

今回調べる対象は、HTTP/2自体の欠陥ではなく、Brotliの展開処理です。同じC実装を組み込む製品にも影響するため、Node.jsの利用有無だけでは判断できません。

Node.jsの公式告知によると、不正な圧縮データを処理した際に、本来のエラーを入力待ちと扱うことで処理が続き、内部バッファの範囲を超えた書き込みが発生します。攻撃者のデータをアプリケーションが展開することが問題の入口です。深刻な影響があり得るという説明と、個々の環境で攻撃が成功したという事実は分けて受け止める必要があります。

米国サイバーセキュリティ・インフラストラクチャセキュリティ庁(CISA)は10月27日、本脆弱性をKnown Exploited Vulnerabilities(KEV)カタログに追加しました。KEVは実際の悪用が確認された脆弱性を掲載するもので、今回の登録は対応を優先する重要な根拠となります。ただし、登録された事実だけで、日本国内での被害や、すべての製品・構成での攻撃成功が確認されたことを意味するわけではありません。

【関連記事】
HTTP2Shellの脆弱性の仕組みや、Node.js・Pythonなどへの影響、主な攻撃経路と修正版については、前回の記事で詳しく解説しています。
▶記事はこちら「HTTP2Shellとは?」

修正版はライブラリと製品の両方で確認する

Brotli本体では、1.2.1、1.1.1、1.0.10が修正版として10月21日に公開されています。JPCERT/CCが示す対象は、1.2.0以上1.2.1未満、1.1.0以上1.1.1未満、1.0.3以上1.0.10未満です。製品に組み込まれたBrotliについては、その製品の開発元が出す対応情報に従います。

Node.jsでは、22.x、24.x、26.xの各系列に対し、22.23.4、24.22.1、26.12.1が公開されました*1。公式告知はサポート終了版の利用を続けず、更新されたバージョンを使うよう求めています。実際の更新では、利用する系列のサポート状況を確認し、今回の修正を含む後続の更新版が公開されている場合は、その適用も検討してください。

管理台帳には、サービス名に加えて、実行環境の製品名、現在のバージョン、提供元の修正版、更新担当を残しておくと確認が進めやすくなります。委託先が運用するシステムも同じです。「Brotli対応済み」という回答だけでなく、どの製品をどの版へ更新したかを確認する運用が考えられます。

外部サイトから取得するレスポンスも確認対象に

Vercelは、Node.jsアプリケーション自身や利用ライブラリが、攻撃者の用意したBrotliデータを展開する場合に影響を受けると説明しています*2。その入口には、受信するリクエスト本文と、別のサーバーから取得するレスポンスの両方があります。

同社はVercel WAFによる防御も案内していますが、その対象はVercelのネットワークを通過する通信です。関数が外部サーバーから取得する応答はWAFの対象外であり、更新の代わりにはならないと明記しています。そのため、Webサイトの入口に対策を適用したかどうかと、外部データを取り込むアプリケーションに修正が反映されたかどうかは、それぞれ確認する必要があります。調査の際は、受信データを展開する機能と、外部へ接続して応答を展開する機能を分けて確認すると整理しやすくなります。通信先を一覧にするだけではなく、取得後にどのライブラリや実行環境がデータを処理するかまで担当者に確認してください。

図:Brotli展開処理に届く二つのデータ経路

Brotli展開処理に届く二つのデータ経路の図
出典:Vercel Inc.「Node.js security advisory: Brotli decoder RCE (CVE-2026-111497)」、Node.jsプロジェクト「Wednesday, October 21, 2026 Security Releases」の情報をもとに弊社作成。
※受信リクエストと外部から取得するレスポンスが、アプリケーションの展開処理へ届く関係を整理しています。製品・構成により利用する処理は異なり、すべての環境で攻撃が成立することを示す図ではありません。

.NETでは既定の構成と有効化した機能を区別する

Microsoftが10月25日に公表した.NETのアドバイザリは、ASP.NET CoreとHttpClientが既定の構成ではBrotliを自動展開しないことを明記しています*3。影響の判断には、Brotliの展開を有効にした設定や、展開APIで攻撃者が制御するデータを扱う処理の確認が必要です。.NET Frameworkは影響を受けません。また同社は同日、今回の脆弱性に対応する臨時のセキュリティ更新を公開しました。修正版は.NET 8が8.0.33、.NET 9が9.0.22、.NET 10が10.0.14です。更新後はアプリケーションの再起動が必要で、自己完結型(self-contained)アプリケーションやNativeAOTで作成した実行ファイルについては、再ビルドと再配置も必要になります。

更新までの対策として、同社は信頼できないBrotliデータの展開を避ける方法を示しています。ただし、設定例は既に展開を有効化しているアプリケーションを変更するためのものです。対策例をそのまま追加して、それまで無効だった自動展開を新たに有効化しないよう注意が必要です。導入済みパッケージだけで結論を出さず、実際の設定と処理を照合してください。

コンテナーと配布済み実行ファイルまで更新を反映する

Red Hatは10月27日更新の情報で、RHELやUBIを基にしたコンテナーについても確認を求めています*4。ベースイメージが更新された場合には、それを利用する顧客側のコンテナーを再ビルドする必要があるとしています。ベースイメージの修正情報を確認する作業と、自社のイメージを作り直す作業は別に管理する必要があります。

Bunにも、更新を配布物へ反映する際の注意点があります*5。公式アドバイザリによると、bun build –compileで生成した実行ファイルにはBunランタイムが含まれます。影響を受ける版で作った実行ファイルは、開発環境のBunだけを更新しても修正されません。Bun 1.4.4へ更新し、該当する実行ファイルを再ビルドするよう案内されています。

AWSも10月28日に本脆弱性に関するセキュリティ情報を公開し、30日に更新しました*6。AWS Lambdaについては、マネージドサービス自体と、関数で使用するランタイムの影響を区別しています。Node.jsや.NETのランタイムを使用する場合は、AWSが公開する対応状況を確認するとともに、利用者側で管理する依存ライブラリやデプロイ済みの構成についても確認が必要です。

対応完了の記録には、更新ファイルの入手だけでなく、稼働環境への適用と確認結果も残します。修正済みの構成を用意できた時点と、その構成でサービスが実際に動作している時点を区別すれば、再配置待ちの環境を見つけやすくなります。HTTP2Shellへの対応は、Brotliという部品の所在から始め、製品、コンテナー、配布済みプログラムへと確認を進めることが大切です。

HTTP2Shellへの対応では、脆弱なBrotliを使用しているかだけでなく、攻撃者が用意したデータが展開処理に届くか、修正版が稼働環境まで反映されているかを確認することが重要です。ライブラリや実行環境の更新情報を継続的に把握し、コンテナーや配布済み実行ファイルも含めて対応状況を管理する必要があります。


脆弱性情報の収集・管理を効率化しませんか?

利用している製品やライブラリの脆弱性情報を継続的に把握するには、システム構成情報と関連付けた管理が重要です。ブロードバンドセキュリティ(BBSec)の「脆弱性情報提供 SAS(Secure Net Alert Mail Service)」は、登録されたシステム情報に基づいて脆弱性情報を絞り込み、配信するサービスです。対応状況を管理する機能も備え、日々の脆弱性管理を支援します。


【参考情報】

編集責任:木下

ウェビナー開催のお知らせ

最新情報はこちら


Security NEWS TOPに戻る
バックナンバー TOPに戻る