· adswds-team · セキュリティ  · 4 min read

dns.resolve は NUL で名前を切る:Node.js CVE-2026-105482

Node.js 2026-10-21:CVE-2026-105482(high)。dns.resolve は NUL を含む名前を切り詰める。26.x、24.x、22.x が対象。空バイトの検証が 26.12.1、24.22.1、22.23.4 に入る。

Node.js 2026-10-21:CVE-2026-105482(high)。dns.resolve は NUL を含む名前を切り詰める。26.x、24.x、22.x が対象。空バイトの検証が 26.12.1、24.22.1、22.23.4 に入る。

Node.js の 2026-10-21 セキュリティリリースは CVE-2026-105482 を high としている。題は dns.resolve が NUL 文字を含む名前を切り詰める。影響は 26.x、24.x、22.x。修正版は 26.12.1、24.22.1、22.23.4。リリースノートの修正は James M Snell の dns: validate resolve inputs for null bytes(報告は hasanfleyah)。

一言で:リゾルバが見る名前は、最初のヌルバイトで終わり得る。

告知に CVSS ベクタはなく、題にある dns.resolve 以外の入口も列挙されていない。呼び出しスタックはここでは推測しない。


公開されている範囲

項目内容
番号CVE-2026-105482
挙動dns.resolve が NUL を含む名前を切り詰める
修正resolve 入力の空バイトを検証する
深刻度high
影響26.x、24.x、22.x
修正版26.12.1、24.22.1、22.23.4
EOLセキュリティリリース時、保守終了版は影響ありとされる

同じビルドは c-ares 1.34.9 も 26/24/22 に入れる。告知は依存更新を CVE 一覧と並べているが、105482 が c-ares だけに存在するとまでは書いていない。システムの c-ares 包を替えただけでは、Node の dns.resolve が直ったことにはならない。


先に見るプロセス

NUL で切れるということは、プログラムが問い合わせたかった文字列と、実際に問い合わせた文字列が一致しないことがある、という意味である。公式は「したがって指定したホストへ解決できる」条件を公開していない。出来合いの汚染手順として読まない。確認するのは、リクエスト、設定、環境変数のホスト名がそのまま DNS API に入るかである。

  • ポストバック、短縮 URL の展開、素材取得が Node で DNS を引くなら、対応するセキュリティ版へ上げて再起動する;
  • 解決後に IP を許可リストと比べる場合、dns.resolve に渡す文字列が切れていないかを先に見る。切れた後の比較は別の名前に対するものになる;
  • 内部名を引く CI ジョブも、本番と同じ修正版を使う;
  • 「dns.resolve は使わず fetch だけ」は除外にならない。告知は入口を全部挙げていない。除外できないなら上げる。

静的なランディングページ自体は dns.resolve を呼ばない。隣の Node サービスとビルドスクリプトが呼ぶ。


まとめ

CVE-2026-105482 は high の DNS 名切り詰めであり、2026-10-21 の 26.12.1、24.22.1、22.23.4 で直る。セキュリティリリース全体を入れて再起動する。同日の証明書ホスト名は CVE-2026-106069、Brotli は CVE-2026-111497。

出典:2026-10-21 Security Releases、v26.12.1、v24.22.1、v22.23.4。

関連記事

すべて見る »

同じタグの記事