node2shell(CVE-2026-111497):Brotli デコーダ脆弱性の Red Hat 製品への影響範囲と対応状況

最新ニュース

Google Brotli デコーダの脆弱性「node2shell」(CVE-2026-111497)について、Red Hat の公式情報(Security Bulletin RHSB-2026-015、CVE ページ、Security Data API、errata)を基に、Red Hat 製品での影響範囲と修正の有無を整理します。

本記事は 2026年11月6日時点の情報です。Red Hat の Bulletin は Status が「Ongoing」であり、今後更新される可能性があります。

概要

項目 内容
通称 node2shell(Imperva)。HTTP2Shell(Aikido Security)、Brotli2Shell(Tenable / JFrog)、Broccoli2Shell(カナダ・サイバーセキュリティセンター)も同じ CVE を指す。HTTP/2 とは無関係
CVE CVE-2026-111497
影響するソフトウェア Google Brotli デコーダ(c/dec/decode.c)1.0.3〜1.2.0。Brotli は HTTP の Content-Encoding: br に広く使われ、Node.js、Firefox / Thunderbird、.NET、Python バインディングなど多数のソフトウェアに同梱されている
影響の内容 細工された Brotli 圧縮ストリームを復号すると、ブロック種別切り替え処理で境界外書き込み(CWE-787)が発生。メモリ内容の漏えい、サービス停止、または任意コード実行の可能性
攻撃の条件 攻撃者が制御する Brotli データを対象アプリケーションが復号すること。正常なエンコーダ出力では発生せず、意図的に壊したストリームが必要。認証・ユーザー操作は不要
深刻度(Google / 上流) CVSS v4.0: 9.2(Critical)
深刻度(NVD) CVSS v3.1: 9.8(Critical、AC:L)
深刻度(Node.js) High
深刻度(Red Hat) Important。CVSS v3.1: 8.1(AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H)
上流の修正版 Brotli 1.0.10 / 1.1.1 / 1.2.1、Node.js 22.23.4 / 24.22.1 / 26.12.1(2026年10月21日公開)。Python Brotli 1.2.1、brotlicffi 1.2.1.0(10月22日)
Red Hat Security Bulletin RHSB-2026-015(10月26日 公開、10月27日 更新、Status: Ongoing。11月6日時点で27日以降の更新なし)
悪用状況 CISA が10月27日(米国時間)に KEV カタログへ登録(連邦機関の対応期限は11月10日)。ELLIO が10月26日に Node.js 24.22.0 を狙う攻撃トラフィックを観測(同社検証ではクラッシュに留まる)。Imperva は公式 Node.js 24.22.0 コンテナでコード実行を実証(複数回の試行が必要、コードは非公開)。Sophos は「active exploitation」と報告。侵害された本番環境の公表事例はない
発見者 OpenAI Codex Security(Khai Tran 氏、Sylvie Mayer 氏)
緩和策 Red Hat は Bulletin に緩和手順を掲載(信頼できない相手からの Content-Encoding: br を拒否、Node.js での Brotli 復号 API の利用回避など)。ただしパッチの代替ではない

出典:RHSB-2026-015、Red Hat CVE-2026-111497、Node.js October 2026 Security Releases

Red Hat の深刻度評価の根拠

上流が Critical(CVSS v4.0 9.2)、NVD が 9.8 と評価する一方、Red Hat は Important(8.1)としています。CVE ページの Statement に記載された根拠は次のとおりです。

  • 悪用には、対象が攻撃者制御の Brotli データを復号する必要がある(Content-Encoding: br の HTTP コンテンツ、Node.js の zlib / fetch() など)
  • 脆弱なパスに到達するのは「壊れたストリーム」であり、通常のエンコーダ出力では発生しない
  • RHEL のコンパイラ / ランタイム強化(ASLR、NX、FORTIFY_SOURCE、SELinux)がメモリ破壊から確実なコード実行への転換を困難にする。ただしクラッシュやすべての影響を排除するものではない
  • CNA(Google)が CVSS v4.0 で Attack Requirements: Present(AT:P)としている点と合わせ、Red Hat は Attack Complexity を High と評価し、Critical ではなく Important とした

php2shell(CVE-2026-109618 / 109619)と同様、上流と Red Hat で深刻度が異なる案件です。脆弱性スキャナが上流や NVD のスコアで Critical と報告する一方、Red Hat の errata は Important として発行されているため、対応優先度の判断では両方の評価を併記して扱う必要があります。

出典:Red Hat CVE-2026-111497

攻撃経路の整理

Red Hat の Bulletin と第三者の解析から、Brotli の復号が発生する経路は大きく4つです。

経路 内容 該当例
サーバー側(受信) リクエストボディの Content-Encoding: br を自動復号する Express 5 の express.json()(body-parser 2.x は既定で br を復号)、Koa(co-body)、Fastify + @fastify/compress、zlib.createBrotliDecompress() の直接利用
サーバー側(送信) 外部 URL へアクセスし、応答の Content-Encoding: br を自動復号する Node.js の fetch()(Accept-Encoding: identity を送っても防げない)、Python の urllib3 / requests / httpx / aiohttp(brotli または brotlicffi が導入済みの場合)
ブラウザ 信頼できないサイトの Brotli 圧縮コンテンツを読み込む Firefox、Thunderbird
ライブラリ直接利用 ユーザー入力を brotli C ライブラリに渡す 独自アプリケーション、リバースプロキシの br 対応モジュール

Webhook など利用者が指定した URL へ Node.js が fetch() でアクセスする機能は、送信側経路として狙われやすいと指摘されています。受信側の br をブロックしても、送信側の経路は残ります。

出典:RHSB-2026-015、Sysdig: Node2Shell (CVE-2026-111497)、BleepingComputer

影響範囲(Red Hat 製品)

製品 影響 備考
Red Hat Enterprise Linux 10 影響あり brotli、dotnet8.0、Firefox / Thunderbird。修正済み。nodejs22 / 24 / 26 と dotnet9.0 / 10.0 / 11.0 はシステム brotli を使うため「Not affected」(brotli の更新が必要)
Red Hat Enterprise Linux 9 影響あり brotli、nodejs:24 モジュール、dotnet8.0、Firefox / Thunderbird。修正済み。nodejs:26 モジュールは未修正。nodejs:22 と dotnet9.0 / 10.0 / 11.0 はシステム brotli を使うため「Not affected」
Red Hat Enterprise Linux 8 影響あり brotli、nodejs:24 モジュール、dotnet8.0、Firefox / Thunderbird。修正済み。nodejs:22 と dotnet9.0 / 10.0 / 11.0 はシステム brotli を使うため「Not affected」
Red Hat Enterprise Linux 7 影響あり Bulletin では影響製品に含まれる。Red Hat の CVE データで RHEL 7 に紐づく修正は Firefox(ELS)のみで、brotli パッケージとしての記載はない
Red Hat OpenShift Container Platform 4 / 5 影響あり RHEL CoreOS(openshift/ose-rhel-coreos-8 / -9)が「Affected」。11月6日時点で修正版の記載なし
JBoss Core Services 影響あり jbcs-httpd24-brotli が「Affected」。未修正
Red Hat Satellite 6 影響あり Satellite 6.19 の python3.12-brotli は修正済み。python-brotli と satellite/iop-remediations-rhel9 は「Affected」で未修正
Red Hat Ansible Automation Platform 2 影響あり 2.4 / 2.5 / 2.6 / 2.7 の python3.12-brotli と ee-supported イメージは修正済み。automation-dashboard-rhel9 は「Affected」で未修正。controller、python3.11-brotli は「Not affected」
Red Hat OpenShift AI 影響あり 3.0 / 3.4 / 3.5 のベースイメージ、mlserver、trustyai は修正済み。odh-mlserver-cuda-rhel9 は「Affected」
Red Hat OpenShift Dev Spaces 3.31 影響あり 修正済み(11月2日)
Red Hat Developer Hub 1 / 2 影響あり rhdh-hub-rhel9 が「Affected」で未修正
Red Hat build of Quarkus / Apache Camel / Apicurio Registry / Debezium 影響あり Quarkus 3.27.6.SP2 / 3.33.4.SP2、Camel 3.33.4.SP2 は修正済み。Camel 4 for Quarkus 3、Apicurio Registry 3、Debezium 3 の native-linux-x86_64 は「Affected」
Red Hat build of Keycloak 影響なし rhbk/keycloak-rhel9、operator、native-linux-x86_64 とも「Not affected」
OpenShift Service Mesh 3 影響なし istio-proxy が「Not affected」
Logging Subsystem for OpenShift 影響なし vector-rhel9 が「Not affected」
RHEL / UBI ベースのコンテナイメージ 影響の可能性あり Container Health Index で修正状況を確認。ベースイメージ更新後に再ビルドが必要
RHEL チャネルからパッケージを取る階層製品(OpenStack Platform、RHV など) 影響の可能性あり 基盤 RHEL の brotli パッケージを更新する

影響を受けない条件(Red Hat Bulletin より)

Red Hat は Bulletin で、次の3点のいずれにも該当しない環境は「実際には影響を受けない」としています。

  • brotli、firefox、thunderbird、nodejs パッケージがインストールされ、信頼できない入力に晒されている
  • 外部または信頼できない相手との間で Content-Encoding: br を含む HTTP リクエスト / レスポンスを受け付けるサービスがある
  • ユーザー入力を Brotli 復号 API(Node.js の zlib.brotliDecompress()、fetch() の br 対応、brotli C ライブラリなど)に直接渡すアプリケーションがある

出典:RHSB-2026-015、Red Hat CVE-2026-111497(Security Data API の package_state)

システム brotli と同梱 brotli の違い

Red Hat の CVE ページ Statement は、Node.js と .NET についてどのパッケージがシステムの brotli を使い、どれが独自の同梱版を持つかを明記しています。運用上、最も誤解しやすい点です。

パッケージ brotli の種類 必要な対応
RHEL 8 / 9 の nodejs:22 モジュール システム brotli Node.js パッケージは「Not affected」。brotli / libbrotli パッケージの更新が必須
RHEL 8 / 9 の nodejs:24 モジュール 同梱 brotli nodejs:24 の errata を適用
RHEL 9 の nodejs:26 モジュール 同梱 brotli 「Affected」。errata 待ち
RHEL 10 の nodejs22 / nodejs24 / nodejs26 システム brotli Node.js パッケージは「Not affected」。brotli パッケージの更新が必須
RHEL 8 / 9 / 10 の dotnet8.0 同梱 brotli dotnet8.0 の errata を適用
RHEL 8 / 9 / 10 の dotnet9.0 / 10.0 / 11.0 システム brotli .NET パッケージは「Not affected」。brotli パッケージの更新が必須

「Not affected」は「対応不要」ではありません。システム brotli を使うパッケージは、brotli パッケージが更新されていなければ脆弱なままです。rpm -q brotli libbrotli で修正版(下表)になっていることを確認してください。

出典:Red Hat CVE-2026-111497

対象パッケージと修正の有無

RHEL の brotli パッケージ

対象 修正の有無 修正パッケージ errata(公開日)
RHEL 10.2 修正済み brotli-1.1.0-8.el10_2.1 RHSA-2026:90449(10月26日)
RHEL 10.0 EUS 修正済み brotli-1.1.0-6.el10_0.3 RHSA-2026:90889(10月27日)
RHEL 9.8 修正済み brotli-1.0.9-10.el9_8.1 RHSA-2026:90495(10月26日)
RHEL 9.6 EUS 修正済み brotli-1.0.9-7.el9_6.3 RHSA-2026:90890(10月27日)
RHEL 9.4 E4S 修正済み brotli-1.0.9-6.el9_4.3 RHSA-2026:90888(10月27日)
RHEL 9.2 E4S 修正済み brotli-1.0.9-6.el9_2.3 RHSA-2026:90914(10月27日)
RHEL 8.10 修正済み brotli-1.0.6-5.el8_10 RHSA-2026:90501(10月26日)
RHEL 8.8 E4S / TUS 修正済み brotli-1.0.6-4.el8_8.1 RHSA-2026:90891(10月27日)
RHEL 8.6 AUS / EUS Long-Life 修正済み brotli-1.0.6-4.el8_6.1 RHSA-2026:90893(10月27日)
RHEL 8.4 AUS / EUS Long-Life 修正済み brotli-1.0.6-4.el8_4.1 RHSA-2026:90892(10月27日)

同梱 brotli を持つパッケージ

対象 修正の有無 修正パッケージ errata(公開日)
RHEL 9 nodejs:24 モジュール 修正済み nodejs:24-9080020261027142403.rhel9 RHSA-2026:92378(10月29日)
RHEL 8 nodejs:24 モジュール 修正済み nodejs:24-8100020261027151919.6d880403 RHSA-2026:92376(10月29日)
RHEL 9 nodejs:26 モジュール 未修正 Red Hat CVE データで「Affected」。11月6日時点で修正版の記載なし —
RHEL 10 dotnet8.0 修正済み dotnet8.0-8.0.133-1.el10_2 RHSA-2026:92428(10月29日)
RHEL 10.0 EUS dotnet8.0 修正済み dotnet8.0-8.0.133-1.el10_0 RHSA-2026:93455(11月2日)
RHEL 9 dotnet8.0 修正済み dotnet8.0-8.0.133-1.el9_8 RHSA-2026:92492(10月29日)
RHEL 9.6 EUS / 9.4 E4S dotnet8.0 修正済み dotnet8.0-8.0.133-1.el9_6 / el9_4 RHSA-2026:93457 / RHSA-2026:93456(11月2日)
RHEL 8 dotnet8.0 修正済み dotnet8.0-8.0.133-1.el8_10 RHSA-2026:92420(10月29日)
RHEL 7〜10 Firefox / Thunderbird 修正済み firefox-140.10.0 / thunderbird-140.10.0 2026年4〜5月発行の errata(RHSA-2026:10757 ほか)

※ Firefox / Thunderbird について、Red Hat の CVE データは2026年4〜5月発行の 140.10.0 の errata を本 CVE の修正として紐づけています。CVE の公開(10月22日)より前の errata であり、同梱デコーダ側で先行して修正が取り込まれていたものと推測されますが、Red Hat からの説明はなく、理由は公開情報からは判断できません。

階層製品

対象 修正の有無 errata(公開日)
Ansible Automation Platform 2.4(RHEL 8 / 9)python3.12-brotli 修正済み RHSA-2026:93065(10月30日)
Ansible Automation Platform 2.5(RHEL 8 / 9)python3.12-brotli 修正済み RHSA-2026:94100(11月2日)
Ansible Automation Platform 2.6 python3.12-brotli / ee-supported-rhel9 修正済み RHSA-2026:94101 / RHSA-2026:92856(11月2日 / 10月29日)
Ansible Automation Platform 2.7 ee-supported-rhel9 修正済み RHSA-2026:94108(11月2日)
Ansible Automation Platform automation-dashboard-rhel9 未修正 —
Satellite 6.19(RHEL 9)python3.12-brotli 修正済み RHSA-2026:92861(10月29日)
Satellite 6 python-brotli、iop-remediations-rhel9 未修正 —
OpenShift Container Platform 4 / 5(RHCOS) 未修正 —
JBoss Core Services jbcs-httpd24-brotli 未修正 —
build of Quarkus 3.27.6.SP2 / 3.33.4.SP2 修正済み RHSA-2026:93908 / RHSA-2026:93902(11月2日)
build of Apache Camel 3.33.4.SP2 修正済み RHSA-2026:93980(11月2日)
OpenShift Dev Spaces 3.31(udi、code、server など) 修正済み RHSA-2026:93987 / RHSA-2026:93984(11月2日)
OpenShift AI 3.0 / 3.4 / 3.5 ベースイメージ 修正済み RHSA-2026:94452〜94476(11月3日)
Red Hat Developer Hub 1 / 2 未修正 —
Red Hat Hardened Images brotli / dotnet8 修正済み RHSA-2026:87420(10月21日)/ RHSA-2026:91709(10月28日)

出典:Red Hat CVE-2026-111497(Security Data API の affected_release / package_state)、各 errata ページ

※ errata と対象ストリームの対応は、Red Hat CVE データ API(affected_release)の記載に基づきます。Red Hat の CVE データに記載された修正リリースは 11月6日時点で 102 件あり、上表は RHEL と主要な階層製品を抜粋しています。

※ RHEL 8 の brotli 1.0.6 と RHEL 9 の brotli 1.0.9 はバージョン番号が据え置きで、リリース番号のみ更新されています(Red Hat のバックポートポリシー)。上流の「1.0.3〜1.2.0 が脆弱」という情報だけで判断するスキャナは、修正済みのシステムを脆弱と報告します。適用確認は errata 番号と rpm -q --changelog brotli の CVE 記載で行います。

対応

  1. 対象パッケージの有無を確認する:rpm -qa 'brotli*' 'libbrotli*' 'nodejs*' 'dotnet*' firefox thunderbird、dnf module list nodejs(RHEL 8 / 9)
  2. errata を適用する:dnf update brotli libbrotli(全環境で必須)。同梱版を持つパッケージは個別に dnf update nodejs(nodejs:24)、dnf update 'dotnet8.0*'
  3. プロセスを再起動する:brotli ライブラリを読み込んでいるプロセス(httpd、Node.js アプリケーション、Python アプリケーションなど)はライブラリ更新後に再起動しない限り修正が反映されない。コンテナは再ビルドして再デプロイ
  4. 適用を確認する:rpm -q --changelog brotli | grep CVE-2026-111497、Node.js は node -p "process.versions.brotli"(同梱版は 1.2.1 以降、または修正 errata の版数)
  5. Python アプリケーションは pip 側の Brotli / brotlicffi も確認する:pip list | grep -i brotli。RHEL の python3-brotli は brotli パッケージと同じ errata で更新されるが、venv に pip で入れたものは別途 brotli>=1.2.1 / brotlicffi>=1.2.1.0 への更新が必要

Satellite / Red Hat Lightspeed(旧 Insights)を利用している環境では、該当 errata が適用対象として表示されます。

緩和策(Red Hat Bulletin より)

Red Hat は Bulletin で次の緩和策を示しています。いずれもパッチの代替にはなりません。

対象 緩和策
全般 信頼できない相手からの Brotli を復号するサービスの露出を減らし、ネットワークアクセスを制限する。アプリケーションの設定で可能なら、信頼できない相手からの Content-Encoding: br を受け付けない・自動復号しない
Web サービス / リバースプロキシ brotli パッケージ更新までの間、リバースプロキシやロードバランサーで、信頼できないクライアントからのリクエスト・レスポンスの Content-Encoding: br を除去または拒否する
Node.js アプリケーション nodejs パッケージ更新までの間、信頼できないソースからのデータに zlib.brotliDecompress() / zlib.createBrotliDecompress() を使わない
Firefox / Thunderbird 更新版が入るまで信頼できないサイトの閲覧を避ける。企業環境ではプロキシやファイアウォールで信頼できない Web コンテンツへのアクセスを制限する

リバースプロキシで受信側の br を拒否しても、Node.js の fetch() や Python の HTTP クライアントが外部サイトの応答を復号する送信側経路は残ります。Webhook など外部 URL へアクセスする機能を持つアプリケーションでは、送信先の制限も合わせて検討してください。

出典:RHSB-2026-015

情報源

更新履歴

日時(JST) 内容
2026年11月6日 初版公開