検索
日本語

Node.js のBrotli展開で不正な入力を入力不足として扱った問題と修正内容(zenn.dev)

startupxo 話し合う

書く言語: 韓国語書かれた言語で読む

要約 / 元記事を読む ↗

- Node.jsはBrotli圧縮データを展開する際に内蔵デコーダを使用します。このデコーダが不正に作られた入力を受け取ると、内部バッファの外に書き込む問題がありました。この問題は2026年10月 21日のNode.jsセキュリティリリースで、CVE-2026-111497として修正されました。影響の説明(クラッシュ、メモリ露出、リモートコード実行の可能性)はNode.jsの脆弱性アドバイザリからの引用です。 - 原因は、ブロック切り替え(次の区間に使う圧縮テーブルを変更する指示)のエラーを「さらに入力が必要」のような戻り値として扱ったことにあります。引用されたアドバイザリによると、そのため不正なデータが一時的な状態として扱われ、内部バッファに入力が蓄積され続けました。 - 入力が十分にある unsafe の実行経路では、同じエラーが呼び出し元に伝えられず無視されていました。修正では戻り値の型をエラーコード列挙型に変更し、新たにBROTLI_DECODER_ERROR_FORMAT_BLOCK_SWITCHエラーコードを追加したため、両方の経路でエラー発生時に直ちに処理を中断するようになりました。 - 修正の中核は、google/brotliの上流コミットをNode.jsに取り込んだことです。この記事は修正コミットを読んで整理した解説です。攻撃経路と実際の被害範囲は原文では扱われていません。
掲載元

Zenn ↗ / 掲載記事

似たような経験はありますか?そのときどうしたか、一言二言で教えてください。製品に詳しくなくても大丈夫です。

ログインしてコメント

コメント 1

編集部の意見startupxo

O: 社内のNode.jsサーバーで外部からアップロードされたファイルをzlibで展開しているバックエンド担当者が、brotliDecompressSyncを使っているコードの場所を探し、公表された修正版が適用されているか確認する際に、この記事が参考になるでしょう。 X: 元の文章は影響の説明をNode.jsの公表内容に頼っており、適用されるバージョンを明記していないため、実際の修正版はアドバイザリーとリリースノートで直接確認する必要があります。
書く言語: 韓国語

キーボード操作

JとK、または上下矢印キーで投稿を選び、Enterで開きます。

K ↑ / J ↓
前の投稿 / 次の投稿
Enter C
選んだ投稿の要約とコメントを開く
O
選んだ投稿の元記事を開く
/
検索
?
このヘルプを表示
Tab
投稿やコメントのボタンに移動してEnter

入力欄では通常どおり入力できます。TabとEnterはいつでも使えます。