脆弱性・CVE速報深刻度: 高

Node.js で dns.resolve の NUL 切り詰めと TLS の IP ホスト名検証回避が 3 件(CVE-2026-105482・106069・105483、各 CVSS 7.4): 22.23.4・24.22.1・26.12.1 で修正

目次(7)

CVE-2026-105482

CVE-2026-106069

CVE-2026-105483

Node.js プロジェクトは 2026-10-21 のセキュリティリリースで、深刻度 high とした 4 件のうち、DNS 解決と TLS のホスト名検証に関する 3 件(CVE-2026-105482・CVE-2026-106069・CVE-2026-105483)を修正しました(残る 1 件は Brotli の CVE-2026-111497 で別記事)。3 件とも、アプリが「検証した名前・アドレス」と「実際に使われる名前・アドレス」がずれる点が共通です。NVD の CVSS v3.0 は 3 件とも 7.4(HIGH、HackerOne=CNA の値)です。

3 件の内容

CVE内容影響する系列
CVE-2026-105482dns.resolve*() と dns.reverse() が、NUL バイトを含むホスト名を黙って切り詰める。attacker.example\0.trusted.example を解決すると attacker.example の結果が返る。CVE-2026-48930 の修正漏れ22.x・24.x・26.x
CVE-2026-106069tls.checkServerIdentity() が 0127.0.0.1 のような先頭ゼロの IPv4 表記を 8 進数として扱う(87.0.0.1 になる)一方、OS のリゾルバは一部の環境(macOS など)で 10 進数として接続する(127.0.0.1)。接続先と別の IP 向けの証明書で認証が通りうる22.x・24.x・26.x
CVE-2026-105483全角数字を含む 127.0.0.1 のような表記を IP アドレスと認識せず、証明書の DNS 名や Common Name と照合する。DNS:127.0.0.1 や DNS:*.0.0.1 を持つ証明書が受け入れられうる。CVE-2026-48618 の修正後に入り込んだ退行24.x・26.x(22.x は対象外)

何が起きるか

  • 105482: ドメインの許可リストなどでホスト名を検証してから dns.resolve*() で解決するアプリは、検証した名前とは別の名前の DNS 応答を信じてしまうことがあります。
  • 106069・105483: TLS クライアントが、接続先の IP アドレス向けではない証明書を持つサーバーを正しい相手と判断することがあります。通信の盗聴や改ざんにつながりうる種類の欠陥です。
  • CVSS は 3 件ともネットワーク越し・攻撃条件の複雑さ高・認証不要・ユーザーの関与なしで、機密性と完全性が「高」、可用性は影響なしです。
  • 攻撃の成立には、細工したホスト名や IP 表記をアプリが受け取って使うこと(105482・106069・105483)に加え、通信経路上の位置など別の条件が要ると考えられます(推定)。
  • 実際の攻撃での悪用は確認していません。

修正の状況

  • 修正は 2026-10-21 のセキュリティリリース(Node.js 22.23.4・24.22.1・26.12.1)に含まれます(Node.js の公式ブログ)。
  • 2026-11-02 時点の GitHub リリースでは、26.x の最新は 26.13.0、24.x の最新は 24.22.2 です。22.x の最新版は確認できていません。
  • 暫定的な回避策は確認できていません。

数値と出典(2026-11-02 時点)

項目内容
NVD の状態3 件とも Awaiting Analysis(2026-10-23 公開)
CVSS v3.03 件とも 7.4 HIGH(AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N)。HackerOne(CNA)の値
CWE105482: CWE-284、106069・105483: CWE-295
EPSS(FIRST、2026-11-01 付)105482: 0.00468(パーセンタイル 0.41)、106069・105483: 0.00304(パーセンタイル 0.23)
KEV3 件とも掲載なし(CISA のカタログ 2026.10.30 で確認できず)

severity を high とした理由

CVSS v3.0 が 3 件とも 7.4 で、Node.js プロジェクト自身も high としています。一方で、攻撃条件の複雑さは「高」、EPSS は 0.3〜0.5% 程度、KEV にも載っていないため、critical にはしません。なお NVD はまだ独自の評価をしていません。

対応として考えられること

  1. 使っている Node.js の系列と版を確認します(node --version)。
  2. 22.x は 22.23.4 以降、24.x は 24.22.1 以降、26.x は 26.12.1 以降へ更新します。
  3. 更新までの間、外部から受け取ったホスト名を検証してから解決・接続する処理では、NUL バイトや全角文字、先頭ゼロの IP 表記を入力の段階で拒否します(推定)。
  4. TLS の接続先を IP アドレスで直接指定しているコードがないか見直し、可能ならホスト名と証明書の対応で検証します(推定)。

未確認の点

  • 実際の攻撃での悪用は確認していません。
  • 暫定的な回避策は確認できていません。
  • 22.x の最新版、および 3 件それぞれを修正したコミットの範囲は確認できていません。
  • NVD の独自評価(CVSS 付与)は未了です。

この記事について

出典

この記事を共有