五个逻辑错误、DoS 和信息泄漏漏洞
除了前面章节中描述的六个 RCE 型漏洞外,我们还发现了另外五个会导致逻辑错误、拒绝服务或信息泄漏的漏洞。
这些漏洞在 TCP/IP 堆栈的各个子系统中发现——TCP、IGMP、DHCP,甚至可以在非常古老的反向 ARP(RARP) 协议中发现。下面将具体描述这些漏洞。
通过格式错误的 TCP 选项造成 TCP 连接 DoS (CVE-2019-12258)
这个问题会影响使用 IPnet 的所有 VxWorks 版本 (6.5及更高版本)。攻击者可以根据一个已存在的 TCP 连接的 4 元组发送一个特制的 TCP 报文段,但他不知道该连接的序列号,这将导致此 连接断开。此漏洞允许攻击者对与受影响的 VxWorks 设备之间的任何 TCP 连接实现拒绝服务攻击。
特制的 TCP 报文段包含非法 IP 选项,这导致函数 iptcp_process_options break掉:
上述函数在各种代码流中可能会失败并返回一个负值错误代码。
例如,如果接收到带有 TCP_MSS_OPTION_TYPE (case 2) 选项且其中有一选项长度不是 4 字节的 TCP 报文段,该函数将失败并返回 - 22 。
此函数由模块 iptcp_input 调用(在前一节中进行了深入描述),当它失败时,接收它的 TCP 连接将由函数 iptcp_send_reset 丢弃:
因此,通过发送一个带有无效 TCP 选项报头的 TCP 报文段,远程攻击者可以仅根据 TCP 连接的 4 元组来导致该 TCP 连接断开。