DNSリゾルバ「Unbound」に重大な脆弱性、悪意あるDNSゾーン経由でリモートコード実行の恐れ――NLnet Labsが修正版1.26.1を公開
要点
-
DNSリゾルバ「Unbound」のDNSSEC検証機能に、リモートコード実行につながる重大なヒープオーバーフローの脆弱性が判明した。
-
バージョン1.26.0を含む1.26.1未満の全リリースが影響を受け、開発元のNLnet Labsは修正版「Unbound 1.26.1」を公開した。
-
悪意あるゾーンを管理する攻撃者が脆弱なリゾルバに問い合わせを行うことで悪用可能だが、現時点で実際の悪用は確認されていない。
-
今回のリリースでは、Anthropicの研究者が報告したCNAME合成処理の欠陥を含む、合計9件の脆弱性が同時に修正された。
-
オープンソースのDNSキャッシュリゾルバ「Unbound」の開発元であるNLnet Labsは、DNSSEC検証機能においてリモートコード実行を許す恐れがある深刻な脆弱性を修正したと発表した。開発元はこの脆弱性の深刻度を「Critical」、CVSS 4.0スコアを「9.1」と評価している。あわせて公開された最新版「Unbound 1.26.1」では、本件を含む合計9件のセキュリティ欠陥に対処が行われた。
圧縮ポインタ処理に起因するヒープオーバーフロー
「CVE-2026-81642」として追跡されているこの脆弱性は、DNS応答の改ざんを防ぐ仕組みであるDNSSEC(DNS Security Extensions)の検証モジュール内に存在する。検証ツールがDNSKEYレコードを処理する際、所有者名(owner name)がレコード自身のデータ内を指す圧縮ポインタ(compression pointer)となっている場合に、ヒープオーバーフローが発生するという。
悪意あるDNSゾーンを制御する攻撃者が脆弱なリゾルバに問い合わせを行うことで、この欠陥が悪用される可能性がある。NLnet Labsによると、影響としてサービス拒否(DoS)が発生するほか、攻撃者が制御するデータを介してリモートコード実行(RCE)に至る恐れがある。
影響範囲はバージョン1.26.0を含む1.26.1より前の全バージョンだ。これには7月に提供されたセキュリティ更新版「1.25.2」や、8月4日リリースの「1.26.0」も含まれる。なお、過去の5月に修正されたDNSSEC検証機能の脆弱性(CVE-2026-33278)とは異なる問題であり、当時の更新版「1.25.1」では本件は解消されない。NLnet Labsは本脆弱性に対象となる設定条件を付与しておらず、DNSSEC検証を無効にしたリゾルバが攻撃可能かどうかについても言及していない。
NLnet Labsの評価では、本脆弱性はネットワーク経由で悪用可能であり、事前の権限やユーザーの対話操作は不要とされている。米サイバーセキュリティ・インフラセキュリティ庁(CISA)のエントリでは悪用状況は「なし(none)」と記録されており、実際の悪用事例は報告されていない。米国立標準技術研究所(NVD)では分析待ち(Awaiting Analysis)となっており、CVSSスコア9.1はメンテナーによる独自算出値である。
Anthropicからの報告含む計9件の脆弱性を修正
今回公開されたバージョン1.26.1では、CVE-2026-81642に加えて8件の脆弱性が修正された。
そのうちの1つ「CVE-2026-82717」(深刻度High)は、AI企業AnthropicのBen Morris氏によって報告されたCNAMEレコード(別名定義)の合成処理におけるヒープ破損のバグだ。上位サーバからの応答処理中に発生し、特定のシステムやコンパイルオプション下でリモートコード実行につながる可能性があると説明されている。
今回修正された9件の脆弱性の概要は以下のとおりである。
- CVE-2026-81642(深刻度Critical / 1.26.0以下):悪意あるゾーンからの問い合わせによるDoSおよびリモートコード実行の可能性。
- CVE-2026-82717(深刻度High / 1.26.0以下):CNAME合成時のヒープ破損によるDoSおよび特定環境下でのリモートコード実行の可能性。
- CVE-2026-81634(深刻度High / 1.26.0以下):長さ255文字のクエリ名と大きなTCP応答によるDoS。
- CVE-2026-77955(深刻度Medium / 1.13.2〜1.26.0):トラストアンカー下位のZONEMD検証ゾーンにおけるDoS、および検証前の改ざんデータ配信の発生。
- CVE-2026-78227(深刻度Medium / 1.22.0〜1.26.0):
--with-libngtcp2でビルドされQUICポート設定時のDoS。 - CVE-2026-80225(深刻度Medium / 1.26.0以下):単一のTCP/DoT(暗号化DNS通信規格)接続での未キャッシュ名連続要求によるサービス品質低下。
- CVE-2026-82720(深刻度Medium / 1.12.0〜1.26.0):
--with-libnghttp2でビルドされHTTPSポート設定時のDoS(影響は限定的)。 - CVE-2026-85501(深刻度Medium / 1.26.0以下):ReTrap攻撃(TagTrap、DelegationTrapなど)を提供するゾーンによるサービス品質低下。
- CVE-2026-77860(深刻度Low / 1.20.0〜1.26.0):期限切れキャッシュ配信(serve-expired)処理における対策の回避。
アップグレードおよびパッチ適用方法
NLnet Labsは最新版「Unbound 1.26.1」への更新を呼びかけている。公式サイトではソースコード(チェックサムとPGP署名付き)に加え、Windows向けのインストーラおよびバイナリが公開されている。
即座にバージョンアップできない環境向けには、ソースツリーに直接適用するパッチが提供されている。CVE-2026-81642単体用には「minimal」と「complete」の2種類が用意され、全9件の修正を含む統合パッチも利用可能だ。パッチはpatch -p1コマンドで適用した後にmake installを実行する手順となっており、CVE-2026-81642およびCVE-2026-82717の単体パッチはバージョン1.26.0での動作確認が完了しているという。
なお、Debianのセキュリティトラッカーでは、開発版「unstable」において修正版(1.26.1-1)が登録された一方、bookworm、trixie、forkyの各ブランチでは依然として脆弱な状態にあることが示されている。