Node.jsのRCE脆弱性はBrotliが原因。影響範囲はPythonやEnvoyにも拡大

Wait 5 sec.

Webアプリケーションやクラウドサービスで広く利用されている圧縮形式「Brotli」で、深刻なメモリ破損の脆弱性(CVE-2026-111497)が発見されました。この問題はNode.jsだけでなく、Bun、Python向けBrotliライブラリ、Envoy、Istioなど、多くのソフトウェアに影響を及ぼすことが明らかになっています。今回の脆弱性は、Googleが開発するBrotli圧縮ライブラリのデコーダー部分に存在するメモリ破損バグです。攻撃者が細工したBrotli圧縮データを送り込むことで、バッファ領域を超えてメモリを書き換えられる可能性があり、アプリケーションのクラッシュや情報漏えいだけでなく、最悪の場合は攻撃者による任意コード実行につながる恐れがあります。セキュリティ企業Impervaは、未修正のNode.js環境においてリモートコード実行を成功させたことを報告していますが、記事執筆時点では実際の攻撃事例は確認されていません。なぜ影響範囲がここまで広いのか今回の問題の根本原因は、GoogleのBrotli実装そのものにあります。そのため、このC言語ライブラリを組み込んでいる多くのソフトウェアが影響を受けます。Node.jsやBunでは、fetch() がBrotli圧縮されたレスポンスを自動展開する場面で脆弱性が悪用される可能性があります。また、Expressやbody-parserなどのミドルウェアがBrotli圧縮されたリクエストボディを処理するケースも対象です。Python環境ではさらに注意が必要です。brotliまたはbrotlicffiパッケージがインストールされているだけで、requestsやurllib3、httpx、aiohttpといったHTTPクライアントが自動的にBrotliを展開するため、アプリケーション側で直接Brotliを利用していなくても影響を受ける可能性があります。以下のような広く使われている製品が影響を受けます。Node.js 22系、24系、26系Bun 1.4.3以前EnvoyIstioPython BrotliPython brotlicfficdxgenそれぞれのプロジェクトではすでに修正版が公開されており、利用者には速やかなアップデートが推奨されています。なお、この脆弱性には少し特殊な背景があります。実は問題を解消するコード自体は2026年2月の段階ですでにBrotliのソースコードへ取り込まれていました。しかし当時はセキュリティ上の重大な問題であることが認識されておらず、新しい正式リリースも行われていませんでした。結果として、修正コードが存在していたにもかかわらず、多くの製品が脆弱な状態のまま利用され続けることになったそうです。今すぐとるべき対策は?最も確実な対策は、各製品の修正版へ更新することです。アップデート後はサービスの再起動やコンテナイメージの再ビルドも必要になります。実行中のプロセスは古いライブラリを保持したままだからです。すぐに更新できない場合は、外部から受け取るBrotli圧縮データの展開を停止することが推奨されています。Python環境では、必要がなければbrotliやbrotlicffiパッケージを削除し、gzipやdeflateへフォールバックさせる方法もあります。まとめ今回の脆弱性は、単一のBrotliライブラリの不具合がNode.js、Python、Bun、Envoyといった複数のエコシステムへ連鎖的に影響を与える典型的なサプライチェーン問題といえます。現時点で大規模な悪用は確認されていないものの、CVSS 9.2のクリティカル評価が付与されており、影響範囲の広さを考えると早急な対応が求められます。[via The Hacker News]