FreeBSD、IPnet 和 Nucleus NET 中与 DNS 压缩实施中的错误相关的漏洞

Forescout 研究实验室和 JSOF 研究小组发布了一项联合研究的结果,该研究针对用于打包 DNS、mDNS、DHCP 和 IPv6 RA 消息中重复名称的压缩方案的各种实现的安全性(将消息中的重复域部分打包)包括多个名称)。 在工作过程中,发现了 9 个漏洞,这些漏洞被总结在代号 NAME:WRECK 下。

FreeBSD 以及网络子系统 IPnet、Nucleus NET 和 NetX 中均已发现问题,这些问题已在自动化设备、存储、医疗设备、航空电子设备、打印机中使用的 VxWorks、Nucleus 和 ThreadX 实时操作系统中广泛使用。和消费电子产品。 据估计,至少有 100 亿台设备受到该漏洞的影响。

  • FreeBSD 中的漏洞 (CVE-2020-7461) 可以通过向与受害者位于同一本地网络的攻击者发送专门设计的 DHCP 数据包来组织其代码的执行,该数据包的处理由易受攻击的 DHCP 客户端导致到缓冲区溢出。 由于存在漏洞的 dhclient 进程在 Capsicum 沙箱中以重置权限运行,因此需要识别另一个漏洞才能退出,这一事实缓解了该问题。

    该错误的本质是对 DHCP 服务器返回的带有 DHCP 选项 119 的数据包中的参数检查不正确,该选项允许您将“域搜索”列表传输到解析器。 容纳解压域名所需的缓冲区大小计算不正确,导致攻击者控制的信息被写入分配的缓冲区之外。 在 FreeBSD 中,这个问题早在去年 XNUMX 月就得到了修复。 仅当您有权访问本地网络时才能利用该问题。

  • RTOS VxWorks 中使用的嵌入式 IPnet 网络堆栈中存在漏洞,由于 DNS 消息压缩处理不当,导致 DNS 客户端上可能存在代码执行。 事实证明,这个漏洞早在 2016 年就被 Exodus 首次发现,但从未得到修复。 向 Wind River 发出的新请求也没有得到答复,IPnet 设备仍然容易受到攻击。
  • 在西门子支持的 Nucleus NET TCP/IP 堆栈中发现了六个漏洞,其中两个可能导致远程代码执行,四个可能导致拒绝服务。 第一个危险问题与解压缩压缩 DNS 消息时的错误有关,第二个危险问题与域名标签的错误解析有关。 在处理特殊格式的 DNS 响应时,这两个问题都会导致缓冲区溢出。

    要利用漏洞,攻击者只需向易受攻击的设备发送的任何合法请求发送专门设计的响应,例如,通过进行 MTIM 攻击并干扰 DNS 服务器与受害者之间的流量。 如果攻击者可以访问本地网络,那么他可以启动 DNS 服务器,尝试通过以广播模式发送 mDNS 请求来攻击有问题的设备。

  • NetX网络堆栈(Azure RTOS NetX)中的漏洞是为ThreadX RTOS开发的,被微软接管后于2019年开放,仅限于拒绝服务。 该问题是由解析器实现中解析压缩 DNS 消息时出现错误引起的。

在经过测试的网络堆栈中,未发现与 DNS 消息中重复数据压缩相关的漏洞,以下项目被命名为:lwIP、Nut/Net、Zephyr、uC/TCP-IP、uC/TCP-IP、FreeRTOS+TCP 、OpenThread 和 FNET。 此外,前两个(Nut/Net 和 lwIP)根本不支持 DNS 消息中的压缩,而其他两个实现此操作没有错误。 此外,值得注意的是,此前相同的研究人员已经在 Treck、uIP 和 PicoTCP 堆栈中发现了类似的漏洞。

来源: opennet.ru

添加评论