Node.js 26.12.1、24.22.1、22.23.4が脆弱性10件を修正
Node.js(ノード・ジェイエス)は2026年10月21日に脆弱性10件を修正しました。うち4件は深刻度「高」で、リモートからのコード実行につながりうるBrotliデコーダーのバグも含まれます。
3 分で読めます

数字で見る
- vulnerabilities fixed across three release lines
- 10
- rated high severity
- 4
- bundled dependencies updated, eMudhra block included
- 5
Node.jsプロジェクトは2026年10月21日、サポート中の3つのリリースラインすべてにセキュリティリリースを公開し、脆弱性10件を修正しました。4件は深刻度「高」です。その中には、プロジェクトがリモートからのコード実行を許しうるとするBrotliデコーダーのバグがあります。Node.js 26、24、22を使っている人は、26.12.1、24.22.1、22.23.4に更新してください。
修正版と対象範囲
Node.jsは、Web APIからビルドツールまで、サーバー側JavaScriptの多くを動かすJavaScriptランタイムです。Node.jsのセキュリティ告知は、修正を深刻度別に挙げています。「高」が4件、「中」が3件、「低」が3件です。各リリースラインに修正版が1つずつあります。
| リリースライン | 修正版 | 状態 |
|---|---|---|
| 26.x | 26.12.1 | Current |
| 24.x | 24.22.1 | LTS |
| 22.x | 22.23.4 | LTS |
LTSは長期サポートの意味で、何年にもわたって修正が届くラインです。各社の対応を調べた日本のサイトJinraiによると、24.xのサポートは2028年4月30日まで、22.xは2027年4月30日までです。Node.js 26は2026年10月28日にLTSへ移行する予定です。
今回のリリースでは、同梱ライブラリー5つも更新されました。c-ares(DNSの名前解決)、Undici(fetchを支えるHTTPクライアント)、OpenSSL、SQLite、組み込みの証明書リストです。最後の変更で、今週鍵の流出が判明した認証局eMudhraの証明書がブロックされます。この件はTech AI Wireの記事eMudhraのCA鍵が漏えい、Go・Firefox・NSSが修正版を公開で取り上げています。
深刻度「高」の4件
| CVE | 何が起きるか | 影響するライン |
|---|---|---|
| CVE-2026-111497 | Brotliデコーダーが範囲外に書き込み、リモートからのコード実行を許す | 26、24、22 |
| CVE-2026-106069 | ホストがIPアドレスに緩く解決されると、TLSのホスト名検証が通ってしまう | 26、24、22 |
| CVE-2026-105483 | IPアドレスが全角数字で書かれると、TLSのホスト名検証が通ってしまう | 26、24 |
| CVE-2026-105482 | dns.resolveがNUL文字を含む名前を途中で切り詰める | 26、24、22 |
Brotliは、Webサーバーやブラウザーがレスポンスを縮めるために使う圧縮形式です。範囲外書き込みとは、デコーダーが与えられたメモリの外側にデータを書いてしまうことです。Jinraiは、攻撃者に必要な条件を公式告知がまだ説明していないと指摘しています。
TLSの2件は、サーバーの証明書が接続先のアドレスと一致するかを確かめる処理にあります。アドレスが変わった形で書かれていると、この検証が間違った証明書を通すことがあります。Jinraiは修正記録を引き、悪用は「容易ではない」と伝えています。日本時間10月22日未明の時点で、攻撃の報告はありませんでした。
確認しておきたい「中」と「低」のバグ
「中」の1件は、単一実行ファイル(SEA)やスタートアップスナップショットで作ったアプリに影響します。どちらも、準備済みのプログラムのコピーを1つのファイルに焼き込む仕組みです。Node.jsの告知によると、crypto.randomUUID()とrandomInt()が使う乱数のキャッシュがそのコピーに保存されていました。そのため、どのプロセスも同じ値を繰り返していました。
別の「中」のバグでは、キープアライブ接続が、リクエスト送信前に書かれたレスポンスを受け取ってしまいます。「低」の2件はPermission Modelに関するものです。これは、スクリプトが触れるファイルを制限する任意のサンドボックスです。
開発者にとっての意味
更新作業そのものは定型的です。ただし、Node.jsをどこから入手しているかで、修正が届く速さが変わります。
- 手元のPCだけでなく、すべての実行環境を確認する。 本番、CI、コンテナーで
node --versionを実行してください。Jinraiによると、公式Dockerイメージには修正版のタグがすでに付いていました。一方、Homebrewは数時間後も26.12.0のままでした。 - 単一ファイルのアプリを再ビルドする。 SEAを配布している場合やスタートアップスナップショットを使っている場合は、修正済みのNode.jsで再ビルドしてください。ランタイムを直しても、古いバイナリーに焼き込まれた乱数は直りません。
- Node.js 20と25から移行する。 Node.jsの告知は、サポート終了版は常に影響を受けるとしています。Jinraiも、どちらにも修正が出ないことを確認しています。バージョン20のサポートは2026年4月30日に終了しました。
- クライアントのデータを展開するサービスを優先する。 Brotliで圧縮されたリクエスト本文を受け付ける公開APIは、CVE-2026-111497の最もわかりやすい標的です。
heise onlineが指摘するように、eMudhraのブロックは更新と一緒に届きます。Node.jsは、ブロック対象の中間証明書のリストを持つようになりました。これにより、ルート証明書がまだ信頼されていても、証明書チェーンを拒否できます。前回の9月のNode.jsセキュリティ修正は、より小規模なものでした。Node.js 22.23.3 LTS、HTTP/2のuse-after-freeバグを修正をご覧ください。
出典
関連記事

Tools This Week:2026年10月16日 - Bun 1.4.3、Figma Specs
今週の開発者ツール10本を紹介します。Bun(バン)1.4.3のTypeScript型チェッカーとFigma Specsを筆頭に、Rust 1.99.1、GitHubのライセンスチェック、DeepSeek V4.1-Flash-1017も取り上げます。

Zod 4.6.6のマルウェア騒動、不正なコミットはnpmに届かず
10月11日に公開されたZod 4.6.6の履歴には、9月21日に仕込まれたマルウェア入りの悪意あるコミットが残っていました。それらは同日に取り消され、どれもnpmには届いていません。

npmマルウェア「MALFEX」、14か月間検知されず稼働
1人の攻撃者によるnpmのサプライチェーン攻撃「MALFEX」は、2023年以降に12個のパッケージを公開し、ダウンロード数は40,767回に達した。一部は今もアドバイザリーなしで公開されている。