CVE-2026-32792NLnet Labs Unbound 1.6.2 至 1.25.0 版本在编译时启用 DNSCrypt 支持的情况下存在拒绝服务漏洞。攻击者可发送特定的恶意 DNSCrypt 查询,利用解密后的明文全为 0x00 且缺少标记的特性,导致数据包读取过程发生下溢。这可能引发堆溢出读取及随后的服务崩溃,尽管崩溃概率受内存布局影响较低,但仍需及时修复。
该漏洞源于 Unbound 处理 DNSCrypt 数据包时的逻辑缺陷。当 Unbound 被编译启用 DNSCrypt 支持时,其 DNSCrypt 数据包读取程序未能正确验证边界。攻击者构造一个特殊的 DNSCrypt 查询,其解密后的明文完全由 '0x00' 字节组成,且未包含预期的 '0x80' 标记。这会触发读取过程的下溢,导致 Unbound 持续读取超出预期缓冲区的字节,直到遇到非零字节为止。这种行为可能导致堆读取溢出,进而引发程序崩溃。虽然崩溃发生的概率较低,因为它严重依赖于底层的内存分配器和内存布局,但若未发生溢出,Unbound 的后续数据包检查机制也会拒绝该数据包。该问题已在 1.25.1 版本中通过限制缓冲区读取范围得到修复。