信息來源:比特網(wǎng)
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對(duì)該漏洞危險(xiǎn)評(píng)分為8.4分,屬于風(fēng)險(xiǎn)性較高的漏洞。
桌面虛擬化已經(jīng)越來越成為IT專業(yè)人士的重要“助手”,他們經(jīng)常在本地機(jī)器運(yùn)行不同操作系統(tǒng),比如在Mac電腦上運(yùn)行專為Windows設(shè)計(jì)的軟件,虛擬化不可或缺。
對(duì)于IT專業(yè)人士而言,VMware Workstation和Oracle VirtualBox是創(chuàng)建和運(yùn)行虛擬機(jī)的兩個(gè)主要選擇。Oracle VirtualBox廣泛用于對(duì)MacOS X、Solaris或32位Windows主機(jī)虛擬化,為用戶提供實(shí)用的用戶界面,簡化虛擬機(jī)的構(gòu)建、部署和管理。對(duì)于大型的虛擬機(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公司一支專注于云安全與核心開源組件安全研究的新銳團(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的文件src\VBox\Devices\Graphics\DevVGA-SVGA.cpp中SVGA設(shè)備模擬在處理FIFO命令SVGA_CMD_REMAP_GMR2的過程中存在堆溢出漏洞。
左邊是存在漏洞的文件,paNewPage64在堆上分配一塊內(nèi)存,大小由pGMR->cMaxPages指定,之后在一個(gè)循環(huán)中向該內(nèi)存寫入,通過pGMR->paDesc[i].numPages控制寫入的數(shù)據(jù)。如果pGMR->cMaxPages比較小,但是pGMR->paDesc[i].numPages又比較大則會(huì)造成堆溢出。
進(jìn)一步分析一下補(bǔ)丁。
首先看看pGMR->cMaxPages的限制。
pGMR->cMaxPages在修補(bǔ)之前可以由guest直接設(shè)置,只要長度大于VMSVGA_MAX_GMR_PAGES即可。在補(bǔ)丁之后,我們看到會(huì)有一個(gè)判斷其是否小于pGMR->cbTotal/X86_PAGE_SIZE,這樣就保證了pGMR->cMaxPages不會(huì)小于一定值。
繼續(xù)看pGMR->paDesc[i].numPages的限制,在補(bǔ)丁之前,對(duì)該值是沒有限制的,補(bǔ)丁只有也有一個(gè)最大的限制,即assertBreakStmt(desc.numPages <= cMaxPages, rc = VERR_OUT_OF_RANGE)附近。