CVE-2020-2905: VirtualBox 虚拟机逃逸漏洞通告
2020-04-24 11:27

报告编号:B6-2020-042401

报告来源:360-CERT

报告作者:360-CERT

更新日期:2020-04-24

0x01 漏洞背景

2020年04月24日, 360CERT监测发现 业内安全厂商 发布了 VirtualBox 虚拟机逃逸漏洞 的风险通告,该漏洞编号为 CVE-2020-2905,漏洞等级:高危

USB 3.0 XHCI模块 是 VirtualBox 中负责实现虚拟机连接 USB3.0 设备的通信模块。

VirtualBox USB 3.0 XHCI模块 存在 越界写漏洞本地攻击者 通过 在虚拟机内部执行特定程序,可以造成 虚拟机逃逸

对此,360CERT建议广大用户及时安装最新补丁,做好资产自查以及预防工作,以免遭受黑客攻击。

0x02 风险等级

360CERT对该漏洞的评定结果如下

评定方式 等级
威胁等级 高危
影响面 一般

0x03 漏洞详情

该漏洞由支付宝安全团队发现。其分析报告如下

该漏洞是个数组越界读写,存在于 xhciR3WriteEvent函数, iIntr 参数可以被攻击者控制。从IDA Pro的 Structures段可以得知 aInterrupters 数组只有8个元素,但是iIntr的值却可以是0~1023。iIntr用来对 aInterrupters数组进行索引,但代码未对iIntr值进行校验,因此造成了堆溢出。

可利用性分析

  1. 攻击者可以进行越界写,比如在函数xhciR3WriteEvent中变量v4是被攻击者控制的,下面代码会将v4 的值写入v7->errp中,v7即是从aInterrupters数组中取出的越界的地址。

  2. 攻击者通过内存布局,将代码中的关键数据结构布局到越界写的数据内容之后,可覆盖关键数据结构的值,从而造成虚拟机逃逸。

0x04 影响版本

  • VirtualBox:6.1.6以下版本

0x05 修复建议

通用修补建议:

升级到 6.1.6 版本,下载地址为: Downloads – Oracle VM VirtualBox

0x06 产品侧解决方案

360安全卫士

针对本次安全更新,Windows用户可通过360安全卫士实现对应补丁安装,其他平台的用户可以根据修复建议中的产品更新版本,对存在漏洞的产品进行更新。

0x07 时间线

2020-04-15 Oracle发布更新

2020-04-23 支付宝安全团队发布漏洞分析

2020-04-24 360CERT发布预警

0x08 参考链接

  1. Oracle Critical Patch Update Advisory - April 2020
  2. 【漏洞分析】VirtualBox USB模块堆越界读写,或可造成虚拟机逃逸
  3. 【安全提醒】赶紧更新VirtualBox,这个漏洞可能导致你的计算机被远程控制