甲骨文VirtualBox被爆易受特權提升攻擊,並存在任意讀寫漏洞,即便使用者僅允許程式以使用者權限執行,但透過特權提升,惡意程式仍然能夠存取VBoxDrv核心驅動程式。駭客透過結合編號CVE-2018-3055的資訊洩漏漏洞以及CVE-2018-3085的絕對任意寫入漏洞,就能以訪客身分使用3D加速功能完全入侵VirtualBox。這兩個漏洞都已經在7月的VirtualBox版本5.2.16中被修補。

資安團隊Phoenhex提到,雖然VirtualBox官方文件建議,不應該允許不受信任的訪客系統使用VirtualBox的3D加速功能,就像是不應該允許不受信任的應用程式,在一般主機上使用3D加速功能一樣。由於3D硬體的驅動程式過於複雜,難以確保完全安全無虞,任何存取3D功能的應用程式,都可能危害執行這些工作的作業系統,而且提供訪客直接存取VirtualBox主機程式中的大量附加程式碼,便可能被利用來使虛擬機器崩潰。

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的絕對任意寫入漏洞,在某些條件下,來自訪客端的訊息將會被直接放入佇列中,或是在處理前就被釋放,導致訊息永遠不會被處理。結合這兩個漏洞,可以讓駭客實作出任意讀寫的攻擊基本功能。


Advertisement

更多 iThome相關內容