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 VMVirtualBox](https://www.virtualbox.org/wiki/Downloads)。
0x06 產品側解決方案
360安全衛士
針對本次安全更新,Windows用戶可通過360安全衛士實現對應補丁安裝,其他平臺的用戶可以根據修復建議中的產品更新版本,對存在漏洞的產品進行更新。
0x07 時間線
2020-04-15 Oracle發佈更新
2020-04-23 支付寶安全團隊發佈漏洞分析
2020-04-24 360CERT發佈預警
0x08 參考鏈接
- Oracle Critical Patch Update Advisory - April 2020
https://www.oracle.com/security-alerts/cpuapr2020.html - 【漏洞分析】VirtualBox USB模塊堆越界讀寫,或可造成虛擬機逃逸
https://mp.weixin.qq.com/s/ZpdPwySu0U1QVJ9GOJBNkw - 【安全提醒】趕緊更新VirtualBox,這個漏洞可能導致你的計算機被遠程控制
https://mp.weixin.qq.com/s/FkUj7LfdoZP0U0kY90K-Nw