文章预览
前言 2017-03-14,我给 Xen’s security teamp 报告了一个 Bug。该 Bug 允许位于paravirtualized(半虚拟化)Guest 中的一个拥有 root 权限的的攻击者跳出 hypervisor 的管理,完全控制宿主机的物理内存。Xen Project 在 2017-04-04 发布了一个公告和 Patch 补丁。 背景知识 在 x86-64 上,Xen PV(paravirtualized) guests 和 hypervisor 共享虚拟地址空间。粗略的内存布局如下: Xen 允许 guest 内核执行 hypercall,即使用 Sytem V AMD64 AMI 来实现从 guest 内核到 hypervisor 的一个必备的系统调用。通常是使用指令 syscall 实现,最多 6 个参数,通过寄存器传递。就像正常内核的 syscall,Xen hypercall 通常直接 使用 guest 上的指针来作为参数。由于 hypervisor 共享它的地址空间,故它能理解直接传递过来的 guest-virtual 指针。
………………………………