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值进行校验,因此造成了堆溢出。
可利用性分析
- 攻击者可以进行越界写,比如在函数xhciR3WriteEvent中变量v4是被攻击者控制的,下面代码会将v4 的值写入v7->errp中,v7即是从aInterrupters数组中取出的越界的地址。
- 攻击者通过内存布局,将代码中的关键数据结构布局到越界写的数据内容之后,可覆盖关键数据结构的值,从而造成虚拟机逃逸。
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发布预警