uClibcDNS安全漏洞曝光,影响全球数百万物联网设备全球工业网络安全领导者NozomiNetworks警告大量物联网产品使用的uClibc库的域名系统(DNS)组件存在漏洞,跟踪为CVE-2022-05-02。该缺陷还影响所有版本的uClibc-ng库的域名系统(DNS),它是OpenWRT的一个分支,OpenWRT是关键基础设施领域路由器的通用操作系统,专为关键基础设施领域而设计。攻击者可以利用此漏洞发起DNS缓存中毒或DNS欺骗攻击,并将受害者重定向到恶意网站而非合法网站。NozomiNetworks在公告中表示,该漏洞是由库生成的DNS请求中包含的交易ID的可预测性导致的,这使得攻击者可以对目标设备发起DNS投毒攻击。uClibc库被主要供应商使用,包括Linksys、Netgear和Axis,以及Linux发行版,如EmbeddedGentoo。安全专家没有透露该漏洞的细节,因为供应商尚未修复该问题。Nozomi的研究人员通过查看物联网设备如何在其测试环境中执行DNS请求来发现该问题。从Wireshark的输出中,他们能够确定执行DNS请求的模式,事务ID首先递增,然后重置为0x2值,然后再次递增。所请求的事务ID是可预测的这一事实可能允许攻击者在某些情况下发起DNS中毒攻击。研究人员分析了可执行文件,发现创建DNS请求的问题存在于C标准库uClibc的0.9.33.2版本中。NozomiNetworks还表示:“源代码审查表明,uClibc库通过调用位于源文件“/libc/inet/resolv.c”中的内部“__dns_lookup”函数来实现DNS请求。鉴于事务ID现在是可预测的,为了利用此漏洞,攻击者需要制作包含正确源端口的DNS响应,并在其与合法DNS响应之间赢得竞争。此漏洞的可利用性完全取决于这些因素。由于该函数不应用任何显式源端口随机化,如果操作系统配置为使用固定或可预测的源端口,则很可能很容易被利用。”如果操作系统使用源端口的随机化,则利用该问题的唯一方法是发送多个DNS响应以暴力破解16位源端口号,同时赢得与合法响应的竞争。NozomiNetworks总结道:“正如预期的那样,截至本博客发布时,此漏洞仍未修补。维护人员无法针对此漏洞开发修复程序,他们希望得到帮助。自2022年1月以来,计算机紧急响应小组协调中心已向受邀参与VINCE案件的200多家供应商披露了该漏洞。”
