CVE-2026-42923NLnet Labs Unbound 1.25.0及之前版本存在安全漏洞。该漏洞位于DNSSEC验证器中,当查询DS记录的负缓存时,代码路径未正确应用1.19.1版本引入的NSEC3哈希计算限制。攻击者可控制DNSSEC签名区域,通过使用高迭代次数的NSEC3记录对子委托进行签名,并查询存在漏洞的Unbound服务器。这将导致Unbound持续执行哈希计算,且在计算期间持有负缓存的全局锁,从而阻塞其他线程。协同攻击可导致服务降级或拒绝服务。
该漏洞的核心在于Unbound处理DNSSEC验证时的逻辑缺陷。在版本1.19.1中,为了防止NSEC3哈希计算导致的资源耗尽,开发者引入了计算次数限制。然而,在Unbound 1.25.0及更早版本中,用于查询DS记录负缓存的特定代码路径绕过了这一限制。攻击者利用这一点,只需控制一个经过DNSSEC签名的区域,并将该区域的NSEC3参数设置为极高的迭代次数。当受害者的Unbound解析器尝试验证该区域下的委托(DS)记录时,会触发该漏洞代码路径。Unbound将不受限制地进行高耗时的NSEC3哈希计算。与此同时,由于负缓存的全局锁被长时间持有,其他并发的DNS查询线程将被阻塞,无法正常处理请求。这种组合效应使得攻击者能够通过相对少量的查询包,消耗服务器的CPU资源并阻塞处理队列,实现高效的拒绝服务攻击。