近日,俄罗斯漏洞研究员SergeyZelenyuk曝光了一个VirtualBox的0day漏洞。他在网上发布了漏洞的详细信息和复现漏洞的过程,并给出了详细的介绍说明。根据漏洞披露的详细信息,我们可以了解到该漏洞存在于虚拟化软件的共享代码库中,也就是说所有支持该软件的操作系统都会受到该漏洞的威胁。利用该漏洞,攻击者可以脱离用户虚拟机环境,进入真实系统,获得RING3及更高级别的权限。从“虚拟”到“真实”SergeyZelenyuk发现此漏洞适用于在网络地址转换(NAT)模式下配置了[IntelPRO/1000MTDesktop(82540EM)]网络适配器的虚拟机。大家都知道,它是用来让虚拟机中的网络和物理系统互相访问的。问题的症结就出在这个【IntelPRO/1000MT台式机(82540EM)】上。它的漏洞允许攻击者获得root或管理员权限甚至主机RING3权限,然后继续通过/dev/vboxdrv将权限提升到RING0。Zelenyuk在报告中详细解释了该漏洞的机制,并描述了如何通过在虚拟操作系统中触发缓冲区溢出来达到攻击目的:首先,由于数据段允许网络适配器在系统内存中跟踪网络数据包,它可以使用描述符导致数据包中出现整数下溢。然后利用此状态将数据从用户操作系统读取到缓冲区并导致溢出情况,从而导致覆盖函数指针或堆栈溢出情况。一个可以100%实现的漏洞?该漏洞的实现主要依赖于两个溢出条件,但由于最初只能提供ring3级别的权限,所以仍然需要再次提升才能获得主机的控制权。Zelenyuk认为,该漏洞属于绝对“不友好”类型,因为发现和利用都需要一定的技术水平。他说,缓冲区溢出的状态不一定是稳定的,大多数时候会导致系统崩溃。不过,他仍然认为该漏洞利用是100%可用的,并表示该漏洞利用取决于某些二进制文件是否匹配。在复现漏洞的过程中,他分别使用了32位和64位Ubuntu16.04和18.04的默认配置,成功验证了漏洞的可用性。这不是VirtualBox第一次被曝出漏洞。之前软件5.2.10版本存在漏洞,不过上次Oracle修复的很快。在此次漏洞披露中,泽列纽克也明确说明了为何选择直接曝光,而不是先通知厂商。据说是因为他多次上报都没有被采纳,导致他一气之下公开了漏洞的细节。对此,我们只能说,招惹谁都不好,招惹黑客就好了。
