確認日:2026年10月28日
Node.jsの脆弱性対応では、アプリの依存パッケージに加えて、Node.js本体に同梱されるライブラリも確認対象になります。BrotliのCVE-2026-111497は、その関係を点検する具体例です。
Node.jsに同梱されたデコーダーが対象になる
Node.jsの10月21日付セキュリティ告知は、同梱Brotliデコーダーの領域外書き込みを説明しています。アプリが攻撃者の用意したBrotliデータをnode:zlibで展開する経路で、プロセスのクラッシュ、メモリ内容の開示、コード実行につながり得るとしています。
対象系列は26.x・24.x・22.xで、この告知に対応するリリースは26.12.1・24.22.1・22.23.4です。後続の修正版を含め、利用する系列の公式情報を確認してください。Node.js公式告知
Node.jsとBrotliの関係を登録しておくと、ライブラリの問題からランタイムの更新へ、またランタイムの告知から影響する処理へたどれます。
どのNode.jsを確認しているか
開発端末、CIのビルド環境、コンテナ、常駐するWebサーバー、定期実行ジョブでは、使うNode.jsが異なる場合があります。まず、点検対象の実行環境で動くNode.jsの情報を確認します。
node -p "JSON.stringify({node: process.version, brotli: process.versions.brotli})"
これは実行したNode.jsの本体とBrotliの版情報を表示する、読み取り用の例です。process.versionはNode.jsの版番号、process.versionsは依存ライブラリの版情報を返します。Node.js公式API文書
このコマンドを別のシェルで実行した結果だけでは、既に動いているアプリのプロセスや、別の配布先の状態までは確認できません。パッケージ提供元の修正情報、ビルド・配布の記録、アプリが起動時に使ったランタイムも照合します。
アプリから配布先までを一組で扱う
以下は、更新を適用するための確認手順の提案です。
| 段階 | 確認すること |
|---|---|
| アプリ | Brotliデータを展開する処理と、入力元を確認する。 |
| ビルド | 利用系列の修正版を選び、ビルド環境やベースイメージへ反映する。 |
| 配布 | 再ビルドしたイメージや成果物の識別子と、配布先を記録する。 |
| 稼働 | 切り替え後のプロセスが使うランタイムと、基本動作を確認する。 |
| 残存箇所 | 古いジョブ、別サービス、別の配布物に更新前の環境が残っていないか調べる。 |
アプリの依存一覧を更新する作業と、ランタイムを更新する作業を対応づけることが要点です。Node.jsの告知にある修正版へ切り替え、実際にどの配布先まで届いたかを記録すれば、担当者が変わっても確認を続けやすくなります。
Tesuji