つみかさね
N

Node.js v25.8.2

major
リリース日: 2026-03-26データソース: GitHub Releases, npm, endoflife.date
影響度スコア
72/ 100影響度: 高
Breaking Changes0/40
新機能0/25
バグ修正10/20
セキュリティ15/15
依存関係5/15
Node.jsセキュリティCVETLSパーミッション

この変更が意味すること

Node.js v25.8.2 は全アクティブライン(v25 / v24 / v22 / v20)に対して同時にリリースされたセキュリティリリースです。合計 9件の CVE が修正されており、TLS ハンドシェイク時のクラッシュやパーミッションモデルの迂回など、重要度の高い脆弱性への対処が含まれています。

特に SNICallback でのクラッシュ(CVE-2026-21637)と headersDistinct / trailersDistinct のプロトタイプ汚染(CVE-2026-21710)は High 評価です。本番環境で Node.js を運用している場合は、速やかなアップデートを推奨します。

主な変更点

CVE-2026-21637: SNICallback クラッシュ防止(High)

SNICallback の呼び出しが try/catch でラップされ、TLS ハンドシェイク中に例外が発生した場合のプロセスクラッシュが防止されました。TLS サーバーを運用しており、カスタム SNI コールバックを使用している場合に影響します(Matteo Collina)。

CVE-2026-21710: headersDistinct / trailersDistinct のプロトタイプ汚染防止(High)

HTTP リクエスト/レスポンスの headersDistincttrailersDistinct プロパティに null プロトタイプオブジェクトが使用されるようになりました。これにより、プロトタイプ汚染を通じた意図しない動作が防止されます(Matteo Collina)。

CVE-2026-21711: pipe_wrap.cc パーミッションチェック追加(Medium)

pipe_wrap.cc にパーミッションチェックが追加されました。Node.js のパーミッションモデル(--experimental-permission)使用時に、パイプ操作がパーミッション制御を迂回できる問題が修正されています(RafaelGSS)。

CVE-2026-21712: URL パーサーのクラッシュ修正(Medium)

異なる URL フォーマットを処理する際にクラッシュが発生する可能性があった問題が修正されました(RafaelGSS)。

CVE-2026-21713: Web Crypto のタイミングセーフ比較(Medium)

Web Cryptography API の HMAC および KMAC 実装にタイミングセーフ比較が導入されました。これにより、タイミング攻撃を通じた暗号鍵の推測が困難になります(Filip Skokan)。

CVE-2026-21714: HTTP/2 フロー制御エラーハンドリング(Medium)

NGHTTP2_ERR_FLOW_CONTROL エラーコードが適切にハンドリングされるようになりました。HTTP/2 接続のフロー制御に関連する安定性が向上しています(RafaelGSS)。

CVE-2026-21717: 配列インデックスハッシュ衝突テスト(Medium)

配列インデックスのハッシュ衝突に関するテストが追加されました(Joyee Cheung)。

CVE-2026-21715 / CVE-2026-21716: fs パーミッションチェック追加(Low)

realpath.nativelib/fs/promises にパーミッションチェックが追加されました。パーミッションモデル使用時にファイルシステム操作がパーミッション制御を迂回できる問題が修正されています(RafaelGSS)。

EOL / サポート状況

サイクル最新バージョンLTSEOL
25 (Current)25.8.2-2026-06-01
24 (LTS)24.14.12025-10-28〜2028-04-30
22 (LTS)22.22.22024-10-29〜2027-04-30
2323.11.1-2025-06-01 (EOL済)
2121.7.3-2024-06-01 (EOL済)

Node.js 25 は Current リリースのため、2026年6月1日に EOL を迎えます。今回のセキュリティ修正は v25.8.2 / v24.14.1 / v22.22.2 / v20.20.2 として各ラインにリリースされています。

開発者への影響

  1. TLS サーバー運用者: SNICallback のクラッシュ防止(High)により、カスタム SNI コールバック使用時の安定性が大幅に向上します
  2. HTTP ヘッダー処理: headersDistinct / trailersDistinct のプロトタイプ汚染防止(High)。ヘッダー値を直接オブジェクトとして扱うコードでのセキュリティリスクが軽減されます
  3. パーミッションモデル利用者: pipe_wrap / realpath.native / fs/promises の3箇所でパーミッション迂回が修正されました。--experimental-permission フラグを使用している場合は必須のアップデートです
  4. Web Crypto API 利用者: HMAC / KMAC のタイミングセーフ比較導入により、暗号処理の安全性が向上します
  5. HTTP/2 利用者: フロー制御エラーのハンドリング改善により、高負荷時の安定性が向上します

アップデート方法

# nvm を利用している場合
nvm install 25.8.2
nvm use 25.8.2

# LTS をお使いの場合
nvm install 24.14.1  # v24 LTS
nvm install 22.22.2  # v22 LTS

# Homebrew(macOS)
brew upgrade node

# Docker
docker pull node:25.8.2
docker pull node:24-lts

データソース: GitHub Releases API, endoflife.date, npm Registry AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。

アップデート判断

即時アップデートを強く推奨

アップデートすべき場合

  • Node.js を本番環境で運用している場合
  • TLS サーバーでカスタム SNICallback を使用している場合
  • パーミッションモデル(--experimental-permission)を使用している場合
  • Web Crypto API の HMAC/KMAC を利用している場合

様子見でよい場合

  • 開発環境のみで使用しており、外部からのアクセスがない場合

EOL / サポート状況

Node.js 25ActiveEOL: 2026-06-01
Node.js 24ActiveEOL: 2028-04-30
Node.js 22ActiveEOL: 2027-04-30
Node.js 23End of LifeEOL: 2025-06-01
Node.js 21End of LifeEOL: 2024-06-01
Xでシェアはてブ
データソース: GitHub Releases API, npm Registry, endoflife.date (MIT License), NVD (NIST)
AI解説は Claude API により自動生成されています。正確性については原文リリースノートをご確認ください。