Hacker News 中文摘要

RSS订阅

Dnsmasq中关键缓存投毒漏洞 -- Critical Cache Poisoning Vulnerability in Dnsmasq

文章摘要

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的安全漏洞及其影响展开,观点分为以下几个方面:

  1. 漏洞描述与影响

    • 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. 漏洞披露方式

    • 有评论指出漏洞是通过公开邮件列表披露的,可能属于意外泄露。
    • 引用评论2:“Oops, accidentally posted to public mailing list?”
    • 引用评论3:“the email itself seeks disclosure coordination etc. So yeah, oops.”
  3. 缓解措施与替代方案

    • 建议增加检测机制、速率限制和欺骗检测技术,类似PowerDNS的做法。
    • 引用评论1:“We recommend adding: Detection mechanisms when upstream resolvers remain silent.”
    • 引用评论9:“OpenWRT userland can now replace dnsmasq with two separate programs.”
  4. 实际影响与更新问题

    • 由于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.”
  5. 技术细节与误解

    • 有评论对“特殊字符”的描述提出质疑,认为域名本身是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的安全漏洞及其披露方式,讨论了漏洞的影响、缓解措施、更新问题以及技术细节。尽管有不同观点,但普遍认为该漏洞存在严重的安全隐患,尤其是在未更新的设备上。