Brotli脆弱性CVE-2026-111497、Node.js等に緊急パッチ

セキュリティ

2026年10月21日、Googleはデータ圧縮ライブラリ「Brotli」のC言語実装に境界外書き込みの脆弱性(CVE-2026-111497)が存在するとして修正版を公開した。JPCERT/CCは同月26日付で注意喚起(JPCERT-AT-2026-0034)を発表し、攻撃者が細工したBrotli形式の圧縮データを展開すると、メモリ破損によりアプリケーションの異常終了、メモリ上の情報漏えい、任意のコード実行などにつながる可能性があると警告している。Brotliはブラウザやサーバーのほか、Node.js、Bun、Pythonパッケージなど多数の製品・言語環境に組み込まれており、Webで圧縮データを扱う処理を持つ開発者・運用者は広く影響を受ける可能性がある。

Brotli脆弱性CVE-2026-111497、Node.js等に緊急パッチ

Brotliとは何か、なぜ影響が広範囲に及ぶのか

Brotliは、Googleが開発したオープンソースのデータ圧縮アルゴリズムであり、HTTPレスポンスの圧縮形式(Content-Encoding: br)として多くのWebブラウザ・Webサーバー・CDNで標準的にサポートされている。gzipなどと同様にテキストデータの転送量を削減する目的で広く使われており、Webサイトの表示速度向上のために導入している組織も多い。今回問題となっているのはBrotliのC言語実装によるデコーダ部分であり、このC実装はNode.jsの標準モジュールやBunのランタイム、PythonのBrotliパッケージなど、多くの言語・ランタイムから内部的に呼び出されている。つまり、開発者が直接「Brotliを使っている」と意識していなくても、HTTP通信や圧縮ファイルの展開処理を行うライブラリ・フレームワークの奥深くで本脆弱性のあるコードが動いているケースが少なくない。このような構造のため、影響範囲の特定には自社のコードだけでなく、依存ライブラリのさらに先の依存関係まで遡って確認する必要がある。

脆弱性の概要と影響を受ける製品

本脆弱性はBrotliのC言語実装(デコーダ)における境界外書き込みに起因する。Node.jsが2026年10月21日に公表した脆弱性との関連から当初「Node2Shell」と呼ばれていたが、原因がBrotli自体にあり、HTTP通信のデータ圧縮に広く使われていることから「HTTP2Shell」とも呼称されている。公式情報に記載された概要は以下の通り。

項目 内容
CVE番号 CVE-2026-111497
脆弱性の種類 境界外書き込み(Brotli C言語実装のデコーダ)
影響を受けるバージョン v1.2.0〜v1.2.1未満/v1.1.0〜v1.1.1未満/v1.0.3〜v1.0.10未満
影響を受ける製品の例 Node.js、Bun、Python向けBrotliパッケージなど、Brotliを組み込んだ多数の製品
想定される影響 アプリケーションの異常終了、メモリ上の情報漏えい、任意のコード実行
公表日 2026年10月21日(Google)/2026年10月26日(JPCERT/CC注意喚起)

Brotliを直接利用していなくても、依存先のミドルウェアやランタイム経由で間接的に組み込まれているケースが多いため、自組織のソフトウェア構成の把握が重要になる。特に、長期間アップデートを行っていないコンテナイメージや、社内で管理が行き届いていないレガシーシステムでは、古いバージョンのBrotliが使われたまま放置されている可能性があるため、点検の優先度を上げておきたい。

深刻度と悪用状況

公式情報にはCVSSスコアの明示的な記載はないため、本記事でも数値は示さない。深刻度を数値で確認したい場合は、各ベンダーが公開するセキュリティアドバイザリを確認してほしい。ただし、想定される影響として「異常終了」「情報漏えい」「任意のコード実行」が挙げられている点、またBrotliがHTTP通信を含む幅広い用途でデータ圧縮に使われている点を踏まえると、影響範囲の広さと組み合わせ次第でのリスクの大きさは軽視できない。JPCERT/CCの注意喚起および参考情報として挙げられたGitHub Advisory DatabaseやAikido Securityの記事では、本脆弱性がNode.js・Bun・PyPIのBrotliパッケージなど複数のエコシステムに影響する旨が述べられているが、現時点で公式情報の中に実際の悪用が確認されたとの記載はない。とはいえ、影響範囲の広さから攻撃者にとって魅力的な対象となりやすく、迅速な対応が推奨される。一般的に、こうした圧縮ライブラリのデコーダ部分の脆弱性は、攻撃者が制御できる外部入力(アップロードされたファイルやHTTPレスポンスなど)を起点として悪用されやすい点も、リスク評価の際に踏まえておくべきポイントである。

ベンダーはどんな修正を行ったか

Googleは本脆弱性に対応した修正済みバージョンとして、Brotli v1.2.1、v1.1.1、v1.0.10をGitHub上でそれぞれリリースしている。境界外書き込みが発生する処理の修正が行われたとされるが、具体的な修正箇所やコードの変更内容について公式情報に記載された詳細以上の情報は示されていない。詳細はベンダーのセキュリティアドバイザリ(GitHubのリリースページ)を確認してほしい。なお、Googleは本脆弱性に対する緩和策は提供していないと明記しており、回避策ではなく修正済みバージョンへのアップデートが唯一の恒久対策となる。Node.jsやBunなど、Brotliを内部に組み込んでいる各製品についても、それぞれの開発元が個別にアップデートを提供しているため、利用している製品の対応状況を個別に確認する必要がある。複数の言語・ランタイムにまたがる修正が同時並行で進んでいるため、一つの製品だけアップデートして安心するのではなく、関連するすべてのコンポーネントを横並びで確認する姿勢が求められる。

今すぐやるべき対策手順

  • 1. 利用状況の確認: 自社のサーバー・アプリケーション・コンテナイメージで、Node.js、Bun、PythonのBrotliパッケージなど、Brotliを直接または間接的に利用しているかを確認する。パッケージマネージャーの依存関係一覧(lockファイルなど)を確認すると洗い出しやすい。
  • 2. バージョンの確認: 導入しているBrotliライブラリまたはこれを内包する製品のバージョンが、影響を受ける範囲(v1.2.0〜v1.2.1未満/v1.1.0〜v1.1.1未満/v1.0.3〜v1.0.10未満)に該当するかを確認する。
  • 3. アップデートの適用: 該当する場合は、Brotli v1.2.1、v1.1.1、v1.0.10のいずれか該当する修正版、またはこれらを取り込んだ各製品の最新アップデートを、テスト環境での検証後に速やかに適用する。
  • 4. 回避策の検討: Googleから緩和策は提供されていないため、即時のアップデートが困難な場合は、該当機能の利用停止や外部からの入力を信頼できる経路のみに制限するなど、自組織の判断でリスクを下げる運用対応を検討する。
  • 5. 侵害有無の調査: アップデート適用前にBrotliデータの展開処理を行っていた期間について、アプリケーションログやクラッシュログに不審な異常終了やエラーが記録されていないか確認する。

社内に多数のシステムを抱える組織では、資産管理台帳やSBOM(ソフトウェア部品構成表)を整備しておくことで、こうした依存ライブラリの脆弱性対応をより速やかに行えるようになる。今回のように広範囲の製品に影響する脆弱性が公表された際に、どの時点でどのシステムが対象かを即座に把握できる体制を平時から整えておくことが望ましい。

Brotli脆弱性CVE-2026-111497、Node.js等に緊急パッチ

よくある質問

Q1. Node.jsを使っていれば必ず影響を受けますか?
影響を受けるのは、内部で対象バージョンのBrotliを利用しているNode.jsのバージョンです。すべてのNode.js環境が対象というわけではないため、利用しているNode.jsのバージョンと内包されているBrotliのバージョンを確認する必要があります。詳細はNode.js Projectが公表したセキュリティリリース情報を確認してください。

Q2. すぐにアップデートできない場合はどうすればよいですか?
Googleは本脆弱性に対する緩和策を提供していません。そのため、該当する圧縮データの展開処理を一時的に停止する、信頼できない入力からのBrotliデータ展開を避けるなど、自組織の環境に応じた運用上の回避策を検討しつつ、できるだけ早く修正済みバージョンへのアップデートを計画してください。

Q3. 自社で開発しているアプリケーションがBrotliを使っているかどうか分かりません。どう調べればよいですか?
まずは利用している言語・フレームワークのパッケージマネージャーが生成するlockファイルや依存関係一覧を確認し、「brotli」という名称を含むパッケージが含まれていないかを検索するのが手軽な方法です。加えて、HTTPサーバーやリバースプロキシの設定でBrotli圧縮(Content-Encoding: br)を有効にしている場合も対象となるため、サーバー設定ファイルも併せて確認してほしい。

まとめ

CVE-2026-111497は、BrotliのC言語実装における境界外書き込みの脆弱性であり、Node.js、Bun、PythonのBrotliパッケージなど幅広い製品に影響する。公式からはCVSSスコアや悪用状況の詳細な記載はないが、異常終了や情報漏えい、任意のコード実行につながる可能性がある以上、軽視はできない。Brotliは直接意識されずにHTTP通信やランタイムの内部で広く使われているライブラリであるため、「自分たちは使っていない」と思い込まず、依存関係を一段深く確認することが重要になる。まずは自組織のシステムがBrotliを利用しているかを確認し、該当する場合は修正済みバージョン(v1.2.1/v1.1.1/v1.0.10)または各製品のアップデートを速やかに適用してほしい。

参考情報(一次情報)

WP Twitter Auto Publish Powered By : XYZScripts.com
タイトルとURLをコピーしました