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 的,对于写并不会出现什么问题,而读的话则造成了安全隐患,攻击者利用的方式包括:
目前 Xen 社区已经修复,从补丁看,只是简单的调整了读写范围。这个漏洞只影响了 x86 平台的实现,ARM 平台未受影响。
通常 XEN 的利用难度都很高,有兴趣的读者可以去看看曾经著名的虚机逃逸漏洞 CVE-2012-0217 的分析,目前虚机逃逸的成本 Xen > KVM > docker。