0x00 背景
Armis研究人员在VxWorks中发现了11个零日漏洞,VxWorks是最受欢迎的实时操作系统(RTOS),被超过20亿台设备使用,包括工业,医疗和企业设备等关键任务设备。这些漏洞被称为’URGENT / 11’,存在于IPnet,VxWorks的TCP / IP堆栈中,影响了过去13年的版本,并且是影响操作系统的漏洞的罕见示例。 在其32年的历史中,MITER仅列出了13个影响VxWorks的CVE,其中没有一个像URGENT / 11那样严重。
近年来,广泛使用的TCP/IP栈实现中的漏洞变得极其罕见,尤其是那些能够在目标设备上实现远程代码执行的漏洞。这种类型的漏洞是攻击者的圣杯,因为它们不依赖于特定应用程序,只要求攻击者能够通过网络访问目标设备。当在TCP实现中发现这样的漏洞时,它们甚至可以被用来绕过防火墙和NAT解决方案,因为它们隐藏在看起来无害的TCP流量中。
0x01 漏洞列表
发现的11个漏洞由6个关键漏洞组成,可能导致远程代码执行:
1.CVE-2019-12256:在解析IPv4数据包IP选项时的栈溢出
2.CVE-2019-12255:TCP紧急指针 为 0时导致整数下溢
3.CVE-2019-12260:由格式错误的TCP AO选项导致的TCP紧急指针状态混乱
4.CVE-2019-12261:连接到远程主机时TCP紧急指针状态混乱
5.CVE-2019-12263:由竞争条件导致的TCP紧急指针状态混乱
6.CVE-2019-12257:在ipdhcpc中的DHCP Offer / ACK解析导致的堆溢出
以及5个可能导致拒绝服务、逻辑错误或信息泄漏的漏洞:
1.CVE-2019-12258:通过格式错误的TCP选项进行TCP连接时DoS攻击
2.CVE-2019-12262:处理未经请求的反向ARP回复(逻辑漏洞)
3.CVE-2019-12264:ipdhcpc DHCP客户端分配IPv4的逻辑缺陷
4.CVE-2019-12259:IGMP解析中的NULL dereference导致的拒绝服务
5.CVE-2019-12265:IGMP通过IGMPv3特定成员报告造成信息泄漏
0x02 漏洞利用场景
第一个攻击情形影响驻留在网络边界的VxWorks设备,例如防火墙。 这些设备直接受到来自Internet的攻击,因为它们保护的内部网络的完整性依赖于它们。 使用URGENT / 11漏洞,攻击者可以对这些设备发起直接攻击,对其进行完全控制,随后控制它们所保护的网络。
第二种攻击情形会影响任何受影响的具有外部网络连接的VxWorks设备。 URGENT / 11漏洞使攻击者能够接管此类设备,无论在网络外围实施任何防火墙或NAT解决方案以抵御攻击。 漏洞的低级性质使得攻击对安全措施保持不可见,因为它们将被视为良性网络通信。
第三种攻击情形攻击者与VxWorks设备处于同一个局域网,可以广播他的恶意数据包来同时攻击所有易受攻击的设备。
0x03 降低被攻击的可能性
降低所述漏洞的风险并非易事。 与PC和移动电话等消费类设备使用的操作系统不同,大多数嵌入式设备使用的底层操作系统不会定期做更新。 为了降低这些漏洞的风险,首先需要确定哪些设备运行VxWorks。
除了难以识别哪些设备运行VxWorks之外,设备制造商还面临着在合理时间内提供固件升级的挑战。许多VxWorks设备,如医疗和工业设备,需要经过广泛的测试和认证过程,才能向最终用户提供固件更新。在提供此类更新之前,用户如何保护自己?
幸运的是,对于发现的漏洞有一些惟一的标识符,防火墙和IDS解决方案可以使用它们来检测和阻止对这些漏洞的任何利用尝试。
例如,发现的四个最关键的漏洞(CVE-2019-1255,CVE-2019-1260,CVE-2019-1261,CVE-2019-1263)使用TCP的紧急标记来滥用TCP的紧急指针机制。 这种机制对于普通用户来说很少使用,创建规则来检测和阻止它的任何使用,可以有效防止被攻击。
要检测并阻止尝试利用IP选项漏洞(CVE-2019-12256),可以搜索包含LSRR或SSRR选项的任何IP数据包并丢弃。
0x04 影响版本
URGENT/11漏洞影响自6.5版以上的所有VxWorks版本。
VxWorks已提供补丁更新:
https://www.windriver.com/security/announcements/tcp-ip-network-stack-ipnet-urgent11/
0x05 时间线
2019-07-29 Armis发布报告
2019-07-31 360CERT发布预警