NAME:WRECK漏洞影响数百万设备

安全专家披露了九个漏洞,这些漏洞被统一称为NAME:WRECK,影响了流行的TCP / IP网络通信堆栈中DNS协议的实现。

安全研究人员披露了九个漏洞,这些漏洞统称为NAME:WRECK,它们会影响运行在至少1亿个设备上的流行TCP / IP网络通信堆栈中的域名系统协议的实现。

安全公司Forescout和以色列安全研究小组JSOF的研究人员发现了这些缺陷。

漏洞可能允许攻击者完全控制设备或使设备脱机,下表列出了专家发现的完整漏洞列表:

CVE ID描述受影响的功能潜在影响严重度分数
CVE-2020-7461FreeBSD
-在dhclient(8)中解析DHCP数据包中的选项119数据时出现边界错误-网络上的攻击者可以将精心制作的数据发送到DHCP客户端
讯息
压缩
RCE7.7
CVE-2016-20009互联网–消息解压缩功能上基于堆栈的溢出讯息
压缩
RCE9.8
CVE-2020-15795核心网络– DNS域名标签解析功能无法
正确验证DNS响应中的名称-解析格式错误的响应可能导致写操作超出分配结构的末尾
域名
标签解析
RCE8.1
CVE-2020-27009核心网络– DNS域名记录解压缩功能
无法正确验证指针偏移值-解析格式错误的响应可能导致写操作超出分配结构的末尾
讯息
压缩
RCE8.1
CVE-2020-27736核心网络– DNS域名标签解析功能无法
正确验证DNS响应中的名称-解析格式错误的响应可能会导致写入超出分配结构的末尾
域名
标签
解析
拒绝服务6.5
CVE-2020-27737核心网络– DNS响应解析功能不能正确
验证各种长度和记录计数-格式错误的响应解析可能导致读取超出分配结构的末尾
域名
标签解析
拒绝服务6.5
CVE-2020-27738核心网络– DNS域名记录解压缩功能
无法正确验证指针偏移值-解析格式错误的响应可能会导致超出分配结构末尾的读取访问
讯息
压缩
拒绝服务6.5
CVE-2021-25677核心网络– DNS客户端无法正确随机化DNS事务ID(TXID)和UDP端口号交易编号DNS缓存中毒/欺骗5.3
*NetX– DNS解析器中的两个功能无法检查压缩指针是否
等于当前正在解析的相同偏移量,从而可能导致无限循环
讯息
压缩
拒绝服务6.5

“ Forescout Research Labs与JSOF Research合作,披露了NAME:WRECK,这是一组域名系统(DNS)漏洞,有可能导致拒绝服务(DoS)或远程执行代码,从而使攻击者可以使目标设备脱机或控制他们。” 读取Forescout发布的分析。“这些堆栈的广泛使用以及易受攻击的DNS客户端的外部暴露通常会大大增加攻击面。”

名称:沉船
ù

三个TCP / IP堆栈易受Ripple 20和Amnesia:33等先前研究项目中发现的与DNS消息压缩相关的漏洞的侵害,而四个TCP / IP堆栈易受最近的NAME:WRECK研究推动中发现的新错误的侵害。

研究人员将分析重点放在DNS协议的“消息压缩”功能及其在TCP / IP堆栈上的实现。

前瞻研究人员发现,这9个漏洞影响了他们分析的15个TCP / IP堆栈中的7个。

名称:沉船

专家指出,DNS响应数据包可以多次包含相同域名或一部分域名,
DNS消息压缩使DNS服务器通过消除域名重复来减小DNS答复的大小。

组播DNS(mDNS),DHCP客户端和IPv6路由器广告中采用了相同的编码,但是专家解释说,由于代码复用或对规范的特定理解,几种协议并未正式支持这种压缩-

“ DNS压缩既不是最有效的压缩方法,也不是最容易实现的。如表1所示的历史漏洞所证明的那样,这种压缩机制在各种产品(例如DNS服务器,企业设备(例如,Cisco IP电话),以及最近的产品)上实施20年来一直存在问题。 TCP / IP堆栈有Treck,uIP和PicoTCP。” 阅读研究人员发表的报告。

研究人员进行的研究提供了有关漏洞利用的技术细节。

研究人员还描述了DNS消息解析器中的一些重复出现的实现问题,专家将其称为反模式(AP),这可能会导致NAME:WRECK漏洞。

本文中描述的反模式是:

  • –缺乏TXID验证,随机TXID和源UDP端口不足
  • –缺乏域名字符验证
  • –缺少标签和名称长度验证
  • –缺少NULL终止验证
  • –缺少记录计数字段验证
  • –缺乏域名压缩指针和偏移量验证

NAME:WRECK漏洞已在 FreeBSD,Nucleus NET和 NetX中得到解决

Forescout研究人员发布了两个开源工具,这些工具可以确定目标网络上运行特定嵌入式TCP / IP堆栈的设备(Project Memoria Detector)是否存在,并可以 检测类似NAME:WRECK的漏洞。

“ NAME:WRECK是这样一种情况,RFC特定部分的错误实现可能会造成灾难性的后果,这些后果会散布在TCP / IP堆栈的不同部分,然后是使用该堆栈的不同产品。” 总结报告。“值得注意的是,当堆栈具有易受攻击的DNS客户端时,通常会同时存在多个漏洞,但是消息压缩反模式非常突出,因为它通常会导致潜在的RCE,因为它通常与指针操作和内存操作相关联。 ”

*编译:Domino

*来自:securityaffairs