文章摘要
Dnsmasq存在严重的缓存投毒漏洞,可能导致安全风险,相关讨论已在邮件列表中展开。
文章总结
Dnsmasq缓存投毒漏洞安全报告
发布时间:2025年8月19日
主要内容:
清华大学和南开大学的研究团队发现并报告了Dnsmasq DNS软件中存在的一个严重的缓存投毒漏洞。该漏洞允许攻击者通过利用特殊字符,无需高级技术即可注入恶意DNS资源记录,从而污染域名缓存。
漏洞详情:
- 漏洞类型:缓存投毒防御中的逻辑缺陷
- 受影响软件:所有版本的Dnsmasq
- 严重性:严重
- 可利用性:攻击者可以在扩展的攻击窗口内通过暴力破解TxID和源端口进行攻击
- 攻击名称:SHAR攻击(通过ASCII解析器静默的单字符劫持)
- 成功率:20/20次攻击尝试均成功
- 平均执行时间:约9,469秒
关键发现:
- Dnsmasq会将包含特殊字符(如~, !, *, _)的查询转发给上游递归解析器。
- 一些上游递归解析器会静默丢弃这些格式错误的查询(不返回NXDomain/ServFail响应)。
- Dnsmasq未对此情况进行验证或检测,而是静默等待,从而创建了一个较大的攻击窗口。
- 在此窗口内,攻击者可以通过暴力破解TxID(16位)和源端口(16位)以高概率成功(生日悖论效应)。
安全影响:
- 攻击者可以污染Dnsmasq中的任何缓存域名。
- 攻击无需IP碎片或侧信道,即可在路径外进行。
- 该漏洞还放大了已知的缓存投毒攻击,如SADDNS和Tudoor。
- 破坏了DNS安全假设,即解析器静默是良性的。
建议的缓解措施:
- 添加上游解析器静默时的检测机制。
- 实施速率限制和欺骗检测技术,类似于PowerDNS中的措施。
参考文献:
- RFC1034
- RFC2182
- SADDNS
- Tudoor
- PowerDNS缓解措施
研究团队认为,由于Dnsmasq的广泛部署,此问题需要紧急关注,并愿意协助进行协调披露、提供更多PoC细节或测试。
报告人: - 苗发生(清华大学) - 李翔(南开大学AOSP实验室)
评论总结
评论主要围绕dnsmasq的安全漏洞及其影响展开,观点分为以下几个方面:
漏洞描述与影响:
- dnsmasq在处理包含特殊字符的DNS查询时,未正确验证或检测上游解析器的沉默,导致攻击者可以利用生日悖论效应进行缓存投毒攻击。
- 引用评论1:“Dnsmasq does not validate or detect this situation, and waits silently, creating a large attack window.”
- 引用评论4:“dnsmasq isn’t dealing with lost responses correctly, creating a window for birthday collision attack?”
漏洞披露方式:
- 有评论指出漏洞是通过公开邮件列表披露的,可能属于意外泄露。
- 引用评论2:“Oops, accidentally posted to public mailing list?”
- 引用评论3:“the email itself seeks disclosure coordination etc. So yeah, oops.”
缓解措施与替代方案:
- 建议增加检测机制、速率限制和欺骗检测技术,类似PowerDNS的做法。
- 引用评论1:“We recommend adding: Detection mechanisms when upstream resolvers remain silent.”
- 引用评论9:“OpenWRT userland can now replace dnsmasq with two separate programs.”
实际影响与更新问题:
- 由于dnsmasq广泛嵌入在消费者路由器的固件中,许多设备可能永远不会更新,导致长期安全隐患。
- 引用评论8:“there are easily 300m+ installs of dnsmasq that will never be updated.”
- 引用评论9:“This is at least the second major dnsmasq coding mistake that has been published in recent memory.”
技术细节与误解:
- 有评论对“特殊字符”的描述提出质疑,认为域名本身是8位干净的,不应影响解析逻辑。
- 引用评论4:“There are no ‘special characters’ in domain names -- they’re length-tagged 8-bit clean.”
- 引用评论7:“google’s dns resolver 8.8.8.8 correctly resolves the ‘special character’ domains.”
总结:评论主要关注dnsmasq的安全漏洞及其披露方式,讨论了漏洞的影响、缓解措施、更新问题以及技术细节。尽管有不同观点,但普遍认为该漏洞存在严重的安全隐患,尤其是在未更新的设备上。