Xen是大规模部署的虚拟化方案之一,这一轮的*EMBARGO*一共曝光了5个漏洞,其中最后一个已经于北京时间2014年10月1日晚上披露,这个编号CVE2014-7188的漏洞是由SUSE Linux的工程师Jan Beulich发现的,Xen和KVM的实现略有不同,在x86架构上,其hypervisor是运行于RING-0的,而传统的linux内核host运行于RING-1,通常的系统调用是直接CALL到RING-1,只有hypercall才是CALL到RING-0,引发这个漏洞的代码在于对于高级电源管理的hypercall中的实现本来只能访问到256个MSR(Model-specific Register),而事实上是可以读写访问1024个MSR的,对于写并不会出现什么问题,而读的话则造成了安全隐患,攻击者利用的方式包括:1,读到超过一个页表的地址然后引用造成物理机crash; 2,读取同一台物理机上其他guest的信息从而造成信息泄漏。目前Xen社区已经修复,从补丁看,只是简单的调整了读写范围。这个漏洞只影响了x86平台的实现,ARM平台未受影响。
通常XEN的利用难度都很高,有兴趣的读者可以去看看曾经著名的虚机逃逸漏洞CVE-2012-0217的分析[注1],目前虚机逃逸的成本Xen > KVM > docker。 "
[注1]Advanced Exploitation of Xen Hypervisor Sysret VM Escape Vulnerability 见
CentOS/Linux安装 XS-Tools (XenServer)