IPBUF安全漏洞报告
English
CVE-2026-44390 CVSS 5.3 中危

CVE-2026-44390 Unbound 拒绝服务漏洞

披露日期: 2026-05-20

漏洞信息

漏洞编号
CVE-2026-44390
漏洞类型
拒绝服务
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
NLnet Labs Unbound

相关标签

DoS拒绝服务DNSUnboundNLnet Labs资源耗尽

漏洞概述

NLnet Labs Unbound 1.25.0及之前版本存在拒绝服务漏洞。在处理需进行名称压缩的超大RRsets回复时,若记录不共享根以上后缀,会导致压缩操作耗时过长,进而引发性能下降或拒绝服务。攻击者可通过查询精心构造的恶意区域内容触发该漏洞。这是对CVE-2024-8508的补充修复。

技术细节

该漏洞发生在Unbound处理名称压缩的过程中。当Unbound收到包含大量RRsets的恶意上游响应,且这些记录在根级别以上没有共同后缀时,压缩树查找会失败。此前版本虽然在1.21.1引入了压缩计数器限制,但未覆盖此特定代码路径,导致计数器未递增,压缩操作变为无界循环,长时间占用CPU。Unbound 1.25.1版本修复了此问题,确保无论压缩树查找结果如何,压缩计数器都会增加,从而防止CPU资源耗尽。

攻击链分析

STEP 1
1. 准备恶意环境
攻击者配置一个恶意的DNS区域,该区域包含大量RRsets,且记录之间不共享根以上后缀。
STEP 2
2. 发起查询
攻击者向受害者的Unbound服务器发送针对该恶意区域内容的DNS查询。
STEP 3
3. 触发漏洞
Unbound在处理回复时尝试进行名称压缩。由于记录不共享后缀,压缩树查找失败,进入低效代码路径。
STEP 4
4. 资源耗尽
Unbound在压缩操作上消耗大量CPU时间,导致服务响应变慢甚至完全停止响应(拒绝服务)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import dns.query import dns.message # PoC for CVE-2026-44390: Unbound DoS via large RRsets # Description: Send a query to a malicious domain configured to return large RRsets # without shared suffixes to trigger the CPU exhaustion. def send_malicious_query(target_ip, domain): # Create a DNS query q = dns.message.make_query(domain, 'A') try: # Send the query to the vulnerable Unbound server response = dns.query.udp(q, target_ip, timeout=5) print(f"Query sent to {target_ip} for {domain}") print(f"Response received: {response}") except Exception as e: print(f"Error: {e}") if __name__ == "__main__": # Replace with the actual target IP and the malicious domain target = "127.0.0.1" malicious_domain = "example.malicious.zone" send_malicious_query(target, malicious_domain)

影响范围

NLnet Labs Unbound <= 1.25.0

防御指南

临时缓解措施
如果无法立即升级,建议在Unbound前部署限速设备或防火墙规则,限制单个源IP的查询频率。同时,密切监控系统资源,一旦发现CPU异常飙升,应及时排查并阻断可疑查询来源。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表