jsonscraper

Brotliの脆弱性が.NETとNode.jsに影響:アプリの確認と更新方法

CVE-2026-111497は、細工されたBrotliデータの処理に関わる脆弱性です。ランタイムのバージョンだけでなく、デコーダーが実際に使われているかも確認しましょう。

編集方針 誤りを報告する

通常のHTTPSトラフィックを受け付けるアプリでも、ユーザーが提供したBrotliデータを展開する場合は、危険な入力を処理している可能性があります。2026年10月25日、MicrosoftはBrotliデコーダーのバッファーオーバーフローに対処する.NETの緊急更新を公開しました。この脆弱性にはCVE-2026-111497が割り当てられています。Node.jsも10月21日の個別のセキュリティリリースに同じ脆弱性への修正を含めました。開発者が最初に行うべきことは、外部データからデコーダーまでの経路を見つけ、その後ランタイムを更新し、アプリを再ビルドするか再起動することです。

記事:Brotliの脆弱性が.NETとNode.jsに影響:アプリの確認と更新方法
概要:10月25日、MicrosoftはBrotliデコーダーの脆弱性CVE-2026-111497に対処する.NETの緊急修正を公開しました。Node.jsも10月21日のセキュリティリリースに同じ脆弱性への修正を含めています。リスクを評価するには、どのアプリが信頼できないデータをデコードしているか、デプロイ環境でどのバージョンのライブラリが動作しているかを確認してください。
画像の役割:カバー画像 — 中心となるテーマ
セクション:
視覚的な題材:Brotli圧縮
© jsonscraper · AI生成イラスト

Microsoftの説明によると、.NETのこの脆弱性により、認証されていない攻撃者がプロセスのメモリを読み取ったり破損させたりするおそれがあり、情報漏えい、サービス拒否、権限昇格につながる可能性があります。修正は.NET 8、9、10、および.NET 11 Release Candidate 3向けに公開されました。.NET 8では、runtime 8.0.33とSDK 8.0.133または8.0.427が示されています。.NET Frameworkはこの脆弱性の影響を受けません。

どこでリスクが生じるか

アプリが信頼できないBrotliストリームを脆弱なデコーダーに渡すと、リスクが生じます。.NETでは、ASP.NET Coreのrequest decompression、HttpClientによる応答の自動展開、またはSystem.IO.CompressionのBrotliStreamやBrotliDecoderなどのAPIを直接呼び出す場合が該当します。.NETのアドバイザリではこれらの経路が列挙され、受信リクエストの展開と応答の自動展開は、どちらも既定で無効とされています。

パッケージの棚卸しは、確認の出発点にすぎません。ミドルウェアやHTTPクライアントの設定、デコーダーの直接呼び出し、圧縮データを受け取るサードパーティーコンポーネントを調べてください。データがクライアント、Webhook、プロキシ、外部APIのどこから届くのか、展開前にサイズや処理時間の制限が設けられているかも確認します。これにより、脆弱なコードが外部から制御可能なデータを受け取る箇所を特定できます。

.NETを更新する

使用しているブランチ向けの更新を適用してください。.NET 8は8.0.33、.NET 9は9.0.22、.NET 10は10.0.14、.NET 11はRelease Candidate 3です。framework-dependentアプリでは、更新済みのruntimeをインストールしてアプリを再起動します。self-containedアプリは再ビルドして再公開する必要があります。ホスト上のruntimeを更新しても、アプリに同梱されたコピーは置き換わりません。コンテナーは、更新済みの.NETイメージを使って再ビルドし、再デプロイしてください。

NativeAOTでも、再公開時に更新済みのSDKとruntimeパッケージを使用してください。修正をすぐにデプロイできない場合は、信頼できないデータを受け取ることが判明した入力経路で、Brotliを一時的に無効にしてください。圧縮された本文を送るクライアントの処理が変わる可能性があるため、通常のリクエストや連携機能も確認しましょう。

Node.jsとシステム依存関係を確認する

Node.jsプロジェクトは10月21日にこの脆弱性を公表しました。Node.js 22.x、24.x、26.xに組み込まれたBrotliデコーダーが影響を受けます。Node.jsのセキュリティリリースでは、それぞれの修正済みバージョンとして22.23.4、24.22.1、26.12.1が示されています。使用中のサポート対象ブランチを更新して、サービスを再起動してください。プロジェクトの説明によると、アプリがnode:zlibを使って攻撃者提供のデータを展開すると問題が発生します。メモリ破損により、クラッシュ、メモリ内容の漏えい、リモートコード実行につながる可能性があります。

システムのNode.jsや.NETとは別に提供される依存関係も確認してください。コンテナーやビルド成果物に含まれるBrotliのバージョンを照合し、デプロイ後にもう一度確認します。CIでは更新済みのベースイメージを固定し、通常のビルド工程に脆弱なライブラリのバージョン確認を組み込んでください。

対応手順のまとめ

  1. Brotliを使用するアプリ、SDK、runtime、コンテナー、NativeAOTビルドを一覧にします。
  2. 外部データが自動または直接のデコード処理を通る箇所を特定します。
  3. .NET、Node.js、および別途提供されるライブラリを修正済みバージョンに更新し、自己完結型アプリとコンテナーを再ビルドします。
  4. プロセスを再起動し、プロジェクトファイルだけでなく実行環境でバージョンを確認します。
  5. 修正がデプロイされるまで、特定した脆弱な経路で信頼できないBrotli入力の処理を制限します。

優先度は、脆弱なコンポーネントが存在するかどうかと、細工された圧縮ストリームをそこに渡せるかどうかの2つで決まります。更新によって欠陥を修正し、入力経路を把握することで、修正がプロセス、自己完結型ビルド、コンテナーに反映されたことを確認できます。

People

No people listed for this article yet.

Keep readingGitHub CLIに有効期限付きOAuthトークンが追加:有効化と連携の確認方法
Read the next article

読んだ内容を実用的な連携へ

jsonscraperのソーシャルデータAPIを調べ、リクエストを試し、次のワークフローを構築しましょう。

APIを探す