甲骨文VirtualBox被爆易受特权提升攻击,并存在任意读写漏洞,即便使用者仅允许程序以使用者权限执行,但透过特权提升,恶意程式仍然能够存取VBoxDrv核心驱动程式。黑客透过结合编号CVE-2018-3055的资讯泄漏漏洞以及CVE-2018-3085的绝对任意写入漏洞,就能以访客身份使用3D加速功能完全入侵VirtualBox。这两个漏洞都已经在7月的VirtualBox版本5.2.16中被修补。

安全团队Phoenhex提到,虽然VirtualBox官方文件建议,不应该允许不受信任的访客系统使用VirtualBox的3D加速功能,就像是不应该允许不受信任的应用程式,在一般主机上使用3D加速功能一样。由于3D硬件的驱动程式过于复杂,难以确保完全安全无虞,任何存取3D功能的应用程式,都可能危害执行这些工作的作业系统,而且提供访客直接存取VirtualBox主机程序中的大量附加代码,便可能被利用来使虚拟机器崩溃。

virtualbox虚拟实验仿真心得(VirtualBox遭爆3D加速功能存在任意读写漏洞)(1)

Phoenhex解释,这个官方文件说明只讲了事实的一半,在设计上,VirtualBox虚拟机器程序可以存取VBoxDrv核心驱动程式,所以即使以访客权限启动虚拟机器,仍可以透过本地端特权提升来进行攻击。

VirtualBox的3D加速功能在代码基础中称为共享的OpenGL,用于分布式OpenGL渲染的Chromium函数库,这个与开源浏览器同名但没有关系的函数库,定义了描述OpenGL操作的网络协定,可用来传递OpenGL实作。而VirtualBox负责维护Chromium的一个分支,以及主机访客通讯管理器管道通讯协定(Host-Guest Communication Manager,HGCM)。

HGCM是一个简单的主机到访客端的RPC协定,访客端一旦连接上HGCM服务,就能使用整数与缓冲区参数来进行远端呼叫,并在主机处理这些工作。但是值得注意的是,HGCM界面曝露给非特权程序以访客附加驱动程式存取,而没有安装访客附加驱动程式,黑客则需要有Root权限才能安装访客虚拟机器驱动程式以曝露装置,以便于攻击共享的OpenGL。

这个攻击基于Chromium一个奇怪的讯息设计,能让黑客回写控制的资料,再综合应用两个漏洞,第一个编号CVE-2018-3055的资讯外泄漏洞,这个允许黑客可以在讯息缓冲区中,以任意偏移量泄漏资讯。第二个则是编号为CVE-2018-3085的绝对任意写入漏洞,在某些条件下,来自访客端的讯息将会被直接放入伫列中,或是在处理前就被释放,导致讯息永远不会被处理。结合这两个漏洞,可以让黑客实作出任意读写的攻击基本功能。

,