Web・セキュリティ

Node.js 22.23.4 / 24.22.1 / 26.12.1公開|Brotli RCEなどHigh脆弱性を修正

更新

2026年10月21日、Node.js Projectは Node.js 22.23.4 / 24.22.1 / 26.12.1 をセキュリティリリースとして公開しました。

今回の更新では複数の脆弱性が修正されており、最高深刻度は High です。

中でも目立つのが、Node.jsのBrotli decoderでOut-of-Bounds Writeが発生し、リモートコード実行(RCE)につながる可能性があるCVE-2026-111497です。

そのほかにも、TLS証明書のホスト名検証を回避できる問題、DNS名にNUL文字を含めた場合の処理不備、乱数キャッシュの扱いなどが修正されています。

この記事はNode.js Projectが2026年10月21日に公開したSecurity Release情報と各リリースノートをもとに整理しています。

先に結論

  • Node.js 22.23.4 / 24.22.1 / 26.12.1 がセキュリティ更新として公開されました
  • 22.x / 24.x / 26.xには複数のHigh脆弱性があります
  • 特に CVE-2026-111497 はBrotli decoderのOut-of-Bounds WriteからRCEにつながる可能性があります
  • TLS証明書のホスト名検証バイパスも複数修正されています
  • Node.js Projectは、EOL版についてもセキュリティリリース時には影響を受けるものとして扱い、サポート中のバージョンを使うよう案内しています
  • Node.jsをサーバー、API、SSR、ビルド基盤などで使っている場合は、実行中のバージョンを確認して更新するのが基本です

今回公開された修正版

Node.js Projectが公開した修正版は次の通りです。

系統 修正版
Node.js 22.x 22.23.4
Node.js 24.x 24.22.1
Node.js 26.x 26.12.1

22.xと24.xはLTS、26.xはCurrent系です。

古いメジャーバージョンを使っている場合は、単純に今回のパッチ番号だけを見るのではなく、Node.jsのRelease Scheduleで現在サポート中かも確認してください。

最も目立つのはBrotli decoderのRCE

CVE-2026-111497 - High

Node.js公式は、Brotli decoderにOut-of-Bounds Writeが発生する問題があり、リモートコード実行につながる可能性があると説明しています。

影響するのは、

  • Node.js 22.x
  • Node.js 24.x
  • Node.js 26.x

です。

BrotliはHTTP圧縮などでも使われるため、Node.jsアプリが直接『Brotli機能を実装している』という認識がなくても、依存関係やWeb通信処理の中で利用しているケースがあります。

Node.js 22.23.4 / 24.22.1 / 26.12.1には、この問題への修正が含まれています。

なおNode.js公式は、この脆弱性の報告者として OpenAI Codex SecurityのKhai Tran氏とSylvie Mayer氏 を記載しています。

TLS証明書のホスト名検証バイパス

今回の更新ではTLS関連でも複数のHigh脆弱性が修正されています。

CVE-2026-105483 - High

IPアドレスを全角数字で表記した場合に、TLS証明書のホスト名検証を回避できる可能性がある問題です。

Node.js公式では、

  • 26.x
  • 24.x

が影響対象です。

CVE-2026-106069 - High

ホスト名がIPアドレスとして緩く解釈されるケースで、TLS証明書のホスト名検証を回避できる可能性がある問題です。

影響対象は、

  • 26.x
  • 24.x
  • 22.x

です。

証明書検証はHTTPSや外部API接続の信頼性に直結するため、RCEほど派手ではなくても重要度の高い修正です。

DNS名にNUL文字を含めた場合の問題

CVE-2026-105482 - High

dns.resolveが、NUL文字を含む名前を正しく扱わず、途中で切り詰めた形で処理してしまう問題です。

影響対象は22.x / 24.x / 26.xです。

外部入力をもとにDNS解決を行うアプリや、接続先検証をDNS名へ依存している処理では特に更新が重要です。

Medium・Lowの修正も複数

今回のSecurity ReleaseにはHighだけでなく、MediumやLowの問題も含まれます。

主なものは次の通りです。

  • CVE-2026-105481(Medium):keep-alive socketが、リクエスト送信前に書き込まれたレスポンスを処理する可能性
  • CVE-2026-106072(Medium):非標準形式のIPv4ホスト名でDNS SANがIPエンドポイントを認証できてしまう問題
  • CVE-2026-106074(Medium):crypto.randomUUID()やrandomInt()のentropy cacheがstartup snapshotやSEAに保存され、別プロセスでも同じ値を繰り返す可能性
  • CVE-2026-106073(Low):fs.realpathSyncを使ったPermission Model回避
  • 26.xではさらにZIPヘッダ検証やPermission Model関連のLow脆弱性も修正

個別機能を使っていないから関係ないと判断するより、セキュリティリリース全体を適用する方が安全です。

依存ライブラリの更新も含まれる

今回のNode.jsリリースでは、Node.js本体だけでなく複数の依存コンポーネントも更新されています。

公式告知では、

  • c-ares
  • CA certificate bundle
  • OpenSSL
  • SQLite
  • Undici

などの更新が案内されています。

特にCA証明書については、eMudhra Intermediate CA compromiseへの対応も含まれています。

つまり今回の更新は、単一のCVEだけを直すパッチではなく、Node.js実行環境全体のセキュリティ更新として扱った方が分かりやすいです。

自分のNode.jsバージョンを確認する

ターミナルやコマンドプロンプトで、

node -v

を実行すると現在のNode.jsバージョンを確認できます。

たとえば、

v22.23.3

のように修正版より古いバージョンが表示された場合は、利用している導入方法に合わせて更新します。

Node.js公式インストーラー、nvm、Volta、Docker、OSパッケージマネージャーなど、環境によって更新方法は異なります。

DockerやCI/CDも確認

ローカルPCだけ更新しても、本番環境のDockerイメージやCI/CDが古いNode.jsを使い続けていれば修正されません。

次の場所も確認してください。

  • DockerfileのFROM node:...
  • GitHub Actionsなどで指定しているNode.jsバージョン
  • CloudflareやVercelなどのビルドランタイム
  • VPSやクラウドVM上のNode.js
  • PM2などで長時間稼働しているNode.jsプロセス

更新後は、必要に応じてコンテナの再ビルド・再デプロイやNode.jsプロセスの再起動を行います。

EOL版はどうするべきか

Node.js Projectは、セキュリティリリース時にEOL版も影響を受けるものとして考えるべきと案内しています。

EOL版には今回と同じような修正が提供されない可能性があります。

そのため、サポート終了済みのNode.jsを使い続けるのではなく、現在サポートされているLTSまたはCurrent系へ移行するのが基本です。

まとめ

  • Node.js 22.23.4 / 24.22.1 / 26.12.1が2026年10月21日に公開
  • 最高深刻度はHigh
  • CVE-2026-111497ではBrotli decoderのOut-of-Bounds WriteからRCEにつながる可能性
  • TLS証明書のホスト名検証バイパスやDNS処理の問題も修正
  • OpenSSL、c-ares、Undiciなど依存コンポーネントの更新も含む
  • 本番サーバーだけでなくDockerやCI/CDで使うNode.jsも確認する
  • EOL版ではなくサポート中の系統へ更新する

参考

関連記事

Web・セキュリティ

PHP2Shellは始まりか|Cloudflare CEOが『他の重要ソフトにも重大脆弱性』、AIで発見が加速

Cloudflare CEOのMatthew Prince氏は、PHP2Shell以外にも重要ソフトウェアに複数の深刻な脆弱性が存在すると認識しているとReutersに説明。AIで脆弱性の発見と悪用までの時間が短縮する中、今後数カ月〜数年に何が起きるのか、一般ユーザー・サイト管理者が備えるべきことを

← ホームへ戻る