Deadwood (MaraDNS 3.5.0036) 漏洞总结 漏洞概述 Deadwood (MaraDNS 3.5.0036) 存在一个逻辑缺陷,当遇到无法解析的权威名称服务器地址时,会无条件地等待完整的固定重试间隔(默认 40 秒),即使服务器已立即返回确定性失败(如 NXDOMAIN)。这会导致上游连接槽位被长时间占用,耗尽连接池,进而导致解析器不可用。 触发条件:配置了无法解析的 NS 记录(如 NS 主机名不存在或 IP 不可达)。 根本原因: 函数无条件设置连接超时,未区分“网络超时”与“确定性失败”。 CVSS 评分:6.5 (Medium) 影响范围 受影响版本:MaraDNS / Deadwood 3.5.0036 受影响配置: 1. 循环 NS 委托:A 委托给 B,B 委托给 A,且无胶水记录。 2. 简单无效 NS 委托:委托给不存在的 NS 主机名。 后果: 单个查询占用连接槽位约 40 秒(5 次重试 × 8 秒)。 若并发 50 个此类查询,所有上游连接槽位将被占满。 * 后续所有非缓存查询将立即返回 ,导致解析器完全不可用。 修复方案 方案 1:代码修复(检测立即失败并跳过重试计时器) 在 中记录发送时间,在 中检查响应是否立即到达。如果是立即失败,则释放槽位。 方案 2:配置缓解(补充) 在代码修复前,可通过调整配置减少最大槽位占用时间: