甲骨文 VirtualBox高危堆溢出漏洞(CVE-2017-3332)剖析

責(zé)任編輯:editor005

作者:Martin

2017-01-20 14:28:47

摘自:安全牛

1月17日,甲骨文公司發(fā)布新一期安全補(bǔ)丁修復(fù)公告,修復(fù)旗下產(chǎn)品安全漏洞,本次補(bǔ)丁更新中,修復(fù)了虛擬化產(chǎn)品Oracle VirtualBox軟件的一個(gè)高危險(xiǎn)漏洞(CVE-2017-3332),并向漏洞發(fā)現(xiàn)者360公司 Gear Team團(tuán)隊(duì)工程師公開致謝。

1月17日,甲骨文公司發(fā)布新一期安全補(bǔ)丁修復(fù)公告,修復(fù)旗下產(chǎn)品安全漏洞,本次補(bǔ)丁更新中,修復(fù)了虛擬化產(chǎn)品Oracle VirtualBox軟件的一個(gè)高危險(xiǎn)漏洞(CVE-2017-3332),并向漏洞發(fā)現(xiàn)者360公司 Gear Team團(tuán)隊(duì)工程師公開致謝。

公告介紹,Oracle的產(chǎn)品VirtualBox在SVGA顯卡模擬中存在堆溢出漏洞,該漏洞能造成拒絕服務(wù)和宿主機(jī)任意代碼執(zhí)行。在公告中,Oracle對該漏洞危險(xiǎn)評分為8.4分,屬于風(fēng)險(xiǎn)性較高的漏洞。

 

桌面虛擬化已經(jīng)越來越成為IT專業(yè)人士的重要助手,他們經(jīng)常在本地機(jī)器運(yùn)行不同操作系統(tǒng),比如在Mac電腦上運(yùn)行專為Windows設(shè)計(jì)的軟件。

對于IT專業(yè)人士而言,VMware Workstation和Oracle VirtualBox是創(chuàng)建和運(yùn)行虛擬機(jī)的兩個(gè)主要選擇。Oracle VirtualBox廣泛用于對Mac OS X、Solaris或32位Windows主機(jī)虛擬化,為用戶提供實(shí)用的用戶界面,簡化虛擬機(jī)的構(gòu)建、部署和管理。對于大型的虛擬機(jī),VirtualBox的強(qiáng)大處理功能也毫不遜色,因此受到專業(yè)人士的青睞。

360Gear Team團(tuán)隊(duì)研究員李強(qiáng)發(fā)現(xiàn),VirtualBox在SVGA顯卡模擬中存在堆溢出漏洞,該漏洞能造成拒絕服務(wù)和宿主機(jī)任意代碼執(zhí)行。2016年12月2日,李強(qiáng)將漏洞報(bào)告給Oracle安全團(tuán)隊(duì),該漏洞于今年1月獲得修復(fù)。

360 Gear Team是360公司一支專注于云安全與互聯(lián)網(wǎng)核心開源組件安全研究的新銳團(tuán)隊(duì),2016年獲QEMU、Xen、VirtualBox等虛擬化軟件致謝65次,以及OpenSSL、NTP、Firefox等重要開源項(xiàng)目致謝49次,成立不到一年就榮獲了上百次漏洞報(bào)告致謝。團(tuán)隊(duì)在保衛(wèi)360自身內(nèi)部業(yè)務(wù)安全的同時(shí),也在守護(hù)互聯(lián)網(wǎng)的安全。

時(shí)間線:

2017年1月17日正式在Oracle的Critical Patch Updates公布

2017年1月14日郵件通知預(yù)公布

2016年12月22日通知漏洞已修復(fù)

2016年12月3日Oracle回復(fù)確認(rèn)郵件

2016年12月2日Qihoo 360Gear Team的 Li Qiang 將漏洞報(bào)告給Oracle安全團(tuán)隊(duì)

具體描述:

在VirtualBox的文件srcVBoxDevicesGraphicsDevVGA-SVGA.cpp中SVGA設(shè)備模擬在處理FIFO命令SVGA_CMD_REMAP_GMR2的過程中存在堆溢出漏洞。

 

左邊是存在漏洞的文件,paNewPage64在堆上分配一塊內(nèi)存,大小由pGMR->cMaxPages指定,之后在一個(gè)循環(huán)中向該內(nèi)存寫入數(shù)據(jù),通過pGMR->paDesc[i].numPages控制寫入的數(shù)據(jù)。如果pGMR->cMaxPages比較小,但是pGMR->paDesc[i].numPages又比較大則會造成堆溢出。

進(jìn)一步分析一下補(bǔ)丁。

首先看看pGMR->cMaxPages的限制。

pGMR->cMaxPages在修補(bǔ)之前可以由guest直接設(shè)置,只要長度大于VMSVGA_MAX_GMR_PAGES即可。在補(bǔ)丁之后,我們看到會有一個(gè)判斷其是否小于pGMR->cbTotal/X86_PAGE_SIZE,這樣就保證了pGMR->cMaxPages不會小于一定值。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號