1. これは何の話?

Node.jsプロジェクトが2026年1月13日、4つのリリースライン(20.x、22.x、24.x、25.x)に対するセキュリティアップデートを公開しました。今回修正されたのはHigh重大度3件、Medium重大度4件、Low重大度1件の計8件の脆弱性です。Node.jsを本番環境で運用しているチームや、サーバーサイドJavaScriptを開発している開発者は、速やかにバージョン更新を検討する必要があります。

依存パッケージとして、DNSクライアントライブラリのc-ares(1.34.6)と、HTTPクライアントのundici(6.23.0 / 7.18.0)も同時に更新されています。

Node.js 2026年1月セキュリティリリース全体像

2. 何がわかったか

High重大度の3件は以下のとおりです。

1つ目はCVE-2025-55131で、vmモジュールでタイムアウトオプション使用時にBuffer.allocやUint8Arrayが未初期化メモリを含む可能性があります。攻撃者がタイミングを制御できる場合、トークンやパスワードなどの機密情報が漏洩するリスクがあります。

2つ目はCVE-2025-55130で、シンボリックリンクを巧妙に作成することで--allow-fs-readや--allow-fs-writeの制限を回避できます。パーミッションモデルを使用しているアプリケーションでは、任意のファイル読み書きが可能になる深刻な問題です。

3つ目はCVE-2025-59465で、不正なHTTP/2 HEADERSフレームを受信するとTLSSocketのECONNRESETエラーでサーバーがクラッシュします。明示的なエラーハンドラを設定していないHTTP/2サーバーが影響を受けます。

3. 他とどう違うのか

従来のNode.jsセキュリティリリースと比較すると、今回はパーミッションモデル関連の脆弱性が3件含まれている点が特徴的です。Node.jsのパーミッションモデルは実験的機能として導入されたものですが、--permissionフラグを有効にしている環境では特に注意が必要です。

また、async_hooksやAsyncLocalStorageといった非同期処理追跡機能に関連する脆弱性(CVE-2025-59466)も含まれており、これらを活用したAPMツールやトレーシング機能を導入している環境では影響範囲が広がる可能性があります。

4. なぜこれが重要か

Node.jsはWebサーバー、APIサーバー、マイクロサービスなど幅広い用途で使われており、今回の脆弱性はその多くに影響します。特にCVE-2025-55131のバッファ未初期化問題は、リモートから攻撃可能になる条件が存在するため、外部からの入力を処理するサーバーでは早急な対応が求められます。

パーミッションモデル関連の脆弱性も、サンドボックス環境やマルチテナント環境でNode.jsを使用している場合、想定していたセキュリティ境界が破られるリスクがあります。

5. 未来の展開・戦略性

Node.jsのパーミッションモデルは今後も機能拡張が予定されており、ネットワーク権限(--allow-net)は現時点でも実験的段階にあります。今回の脆弱性修正を通じて、信頼境界の設計がより堅牢になることが期待されます。

また、async_hooks周りの安定性向上は、OpenTelemetryなどの分散トレーシング基盤との統合においても重要な意味を持ちます。

6. どう考え、どう動くか

例えばCI/CDパイプラインでNode.jsバージョンを固定している場合、今回のセキュリティリリースに対応するためにバージョン指定を更新し、テストを実行する必要があります。

指針:

  • 現在使用しているNode.jsバージョンを確認し、20.20.0、22.22.0、24.13.0、25.3.0のいずれかへ更新する。
  • vmモジュールでタイムアウトを使用している箇所を洗い出し、Buffer.allocの使用状況を確認する。
  • パーミッションモデル(--permission)を使用している場合は、シンボリックリンク経由のアクセスがないか検証する。

次の一歩:

  • 今日やること:node -vで現在のバージョンを確認し、更新計画を立てる。
  • 今週やること:ステージング環境で新バージョンをデプロイし、機能テストを完了させる。

7. 限界と未確定

  • 一部の脆弱性(CVE-2025-55131)は精密なタイミング制御が必要であり、実際の攻撃難易度は環境に依存します。具体的な攻撃シナリオは公開されていません。
  • TLS PSK/ALPNコールバック関連の脆弱性(CVE-2026-21637)は、これらのコールバックを使用しているアプリケーションに限定されます。使用していない場合は影響を受けません。
  • 各CVEの詳細な技術情報は、Node.js Security WGのリポジトリで順次公開される予定です。

8. 用語ミニ解説

  • タイムアウト中に処理が中断された際のメモリ状態が保証されない問題です。(レースコンディション / race condition)
  • ファイルシステムの別の場所を指し示す特殊なファイルです。(シンボリックリンク / symlink)

9. 出典と日付

Node.js Project(公開日:2026-01-13):https://nodejs.org/en/blog/vulnerability/december-2025-security-releases