1月17日,甲骨文公司發布新一期安全補丁修復公告,修復旗下產品安全漏洞,本次補丁更新中,修復了虛擬化產品Oracle VirtualBox軟件的一個高危險漏洞(CVE-2017-3332),并向漏洞發現者360公司 Gear Team團隊工程師公開致謝。
公告介紹,Oracle的產品VirtualBox在SVGA顯卡模擬中存在堆溢出漏洞,該漏洞能造成拒絕服務和宿主機任意代碼執行。在公告中,Oracle對該漏洞危險評分為8.4分,屬于風險性較高的漏洞。
桌面虛擬化已經越來越成為IT專業人士的重要助手,他們經常在本地機器運行不同操作系統,比如在Mac電腦上運行專為Windows設計的軟件。
對于IT專業人士而言,VMware Workstation和Oracle VirtualBox是創建和運行虛擬機的兩個主要選擇。Oracle VirtualBox廣泛用于對Mac OS X、Solaris或32位Windows主機虛擬化,為用戶提供實用的用戶界面,簡化虛擬機的構建、部署和管理。對于大型的虛擬機,VirtualBox的強大處理功能也毫不遜色,因此受到專業人士的青睞。
360Gear Team團隊研究員李強發現,VirtualBox在SVGA顯卡模擬中存在堆溢出漏洞,該漏洞能造成拒絕服務和宿主機任意代碼執行。2016年12月2日,李強將漏洞報告給Oracle安全團隊,該漏洞于今年1月獲得修復。
360 Gear Team是360公司一支專注于云安全與互聯網核心開源組件安全研究的新銳團隊,2016年獲QEMU、Xen、VirtualBox等虛擬化軟件致謝65次,以及OpenSSL、NTP、Firefox等重要開源項目致謝49次,成立不到一年就榮獲了上百次漏洞報告致謝。團隊在保衛360自身內部業務安全的同時,也在守護互聯網的安全。
時間線:
2017年1月17日正式在Oracle的Critical Patch Updates公布
2017年1月14日郵件通知預公布
2016年12月22日通知漏洞已修復
2016年12月3日Oracle回復確認郵件
2016年12月2日Qihoo 360Gear Team的 Li Qiang 將漏洞報告給Oracle安全團隊
具體描述:
在VirtualBox的文件srcVBoxDevicesGraphicsDevVGA-SVGA.cpp中SVGA設備模擬在處理FIFO命令SVGA_CMD_REMAP_GMR2的過程中存在堆溢出漏洞。
左邊是存在漏洞的文件,paNewPage64在堆上分配一塊內存,大小由pGMR->cMaxPages指定,之后在一個循環中向該內存寫入數據,通過pGMR->paDesc[i].numPages控制寫入的數據。如果pGMR->cMaxPages比較小,但是pGMR->paDesc[i].numPages又比較大則會造成堆溢出。
進一步分析一下補丁。
首先看看pGMR->cMaxPages的限制。
pGMR->cMaxPages在修補之前可以由guest直接設置,只要長度大于VMSVGA_MAX_GMR_PAGES即可。在補丁之后,我們看到會有一個判斷其是否小于pGMR->cbTotal/X86_PAGE_SIZE,這樣就保證了pGMR->cMaxPages不會小于一定值。