安全研究人员已公开VMware Workstation中一个高危漏洞链的概念验证(PoC)利用代码,攻击者可借此从客户机虚拟机逃逸,在宿主机操作系统上执行任意代码。
该漏洞利用成功串联了信息泄露和基于栈的缓冲区溢出漏洞,实现了完整的虚拟机逃逸攻击——这是虚拟化软件中最严重的安全漏洞类型之一。这些漏洞最初在2023年温哥华Pwn2Own黑客大赛上被演示。NCC Group安全研究员Alexander Zaviyalov近期发布了详细技术分析和功能性PoC,展示了这些漏洞的实际风险。
两阶段攻击剖析
此次虚拟机逃逸攻击通过串联VMware Workstation虚拟蓝牙设备功能中的两个独立漏洞实现。该功能默认启用,允许客户机虚拟机使用宿主机的蓝牙适配器。
信息泄露漏洞(CVE-2023-20870、CVE-2023-34044):攻击第一阶段利用了释放后重用(UAF)内存泄露漏洞。通过向虚拟鼠标和蓝牙设备发送特制的USB请求块(URB)控制传输,攻击者可泄露宿主机vmware-vmx.exe
进程的内存指针。这些泄露的信息对于绕过地址空间布局随机化(ASLR)至关重要——ASLR是一种通过随机化内存位置来增加漏洞利用难度的标准安全特性。
缓冲区溢出漏洞(CVE-2023-20869):在绕过ASLR后,攻击者进入第二阶段。通过从客户机虚拟机向宿主机可发现的另一蓝牙设备发送恶意服务发现协议(SDP)数据包,触发基于栈的缓冲区溢出。该溢出漏洞允许攻击者劫持程序执行流,结合此前泄露的内存地址,最终在宿主机系统上执行自定义载荷。
Alexander Zaviyalov表示,这些漏洞的组合使控制客户机的攻击者能够完全掌控宿主机。在演示中,该漏洞利用成功从Linux客户机向完全打补丁的Windows 11宿主机发起反向shell,有效攻陷底层系统。
受影响版本与补丁情况
完整漏洞利用链主要影响VMware Workstation 17.0.1及更早版本,各漏洞补丁时间线不同:
- 基于栈的缓冲区溢出(CVE-2023-20869)已在17.0.2版本修复
- 内存泄露漏洞(CVE-2023-20870和CVE-2023-34044)分别在17.0.2和17.5.0版本完成修补
由于完整利用需要同时存在缓冲区溢出和内存泄露漏洞,使用17.0.1或更旧版本的用户面临最高风险。
缓解措施
对所有用户的首要建议是将VMware Workstation更新至最新版本(17.5.0或更高),该版本包含所有讨论漏洞的补丁。无法立即更新的用户可临时禁用虚拟蓝牙设备:在虚拟机USB控制器设置中取消勾选"与虚拟机共享蓝牙设备"选项。禁用该功能可消除此PoC利用的攻击面。
这项详细研究揭示了现代漏洞利用的复杂性,也凸显了及时为虚拟化平台打补丁的重要性。
参考来源:
PoC exploit Released for VMware Workstation guest-to-host escape Vulnerability
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)