1月17日,甲骨文公司发布新一期安全补丁修复公告,修复旗下产品安全漏洞,本次补丁更新中,修复了虚拟化产品oraclevirtualbox软件的一个高危险漏洞(cve-2017-3332),并向漏洞发现者360公司gearteam团队工程师公开致谢。
公告介绍,oracle的产品virtualbox在svga显卡模拟中存在堆溢出漏洞,该漏洞能造成拒绝服务和宿主机任意代码执行。在公告中,oracle对该漏洞危险评分为8.4分,属于风险性较高的漏洞。
桌面虚拟化已经越来越成为it专业人士的重要“助手”,他们经常在本地机器运行不同操作系统,比如在mac电脑上运行专为windows设计的软件,虚拟化不可或缺。
对于it专业人士而言,vmwareworkstation和oraclevirtualbox是创建和运行虚拟机的两个主要选择。oraclevirtualbox广泛用于对macosx、solaris或32位windows主机虚拟化,为用户提供实用的用户界面,简化虚拟机的构建、部署和管理。对于大型的虚拟机,virtualbox的强大处理功能也毫不逊色,因此受到专业人士的青睐。
360gearteam团队研究员李强发现,virtualbox在svga显卡模拟中存在堆溢出漏洞,该漏洞能造成拒绝服务和宿主机任意代码执行,2016年12月2日,李强将漏洞报告给oracle安全团队,并与今年1月获得修复。
360gearteam是360公司一支专注于云安全与互联网核心开源组件安全研究的新锐团队,2016年获qemu、xen、virtualbox等虚拟化软件致谢65次,以及openssl、ntp、firefox等重要开源项目致谢49次,成立不到一年就荣获了上百次漏洞报告致谢。团队在保卫360自身内部业务的同时,也在守护互联网的安全。
时间线:
2017年1月17日正式在oracle的criticalpatchupdates公布
2017年1月14日邮件通知预公布
2016年12月22日通知漏洞已修复
2016年12月3日oracle回复确认邮件
2016年12月2日qihoo360gearteam的liqiang将漏洞报告给oracle安全团队
具体描述:
在virtualbox的文件src\vbox\devices\graphics\devvga-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不会小于一定值。
继续看pgmr->padesc[i].numpages的限制,在补丁之前,对该值是没有限制的,补丁只有也有一个最大的限制,即assertbreakstmt(desc.numpages<=cmaxpages,rc=verr_out_of_range)附近。
相关新闻
2017-04-18
2017-05-08
2017-05-25
2017-06-09
2017-06-19