潜伏约16年的Linux KVM漏洞使客户机虚拟机可在Intel和AMD x86系统上逃逸至宿主机
导语:安全研究员Hyunwoo Kim披露了一个潜伏约16年的Linux KVM高危漏洞CVE-2026-53359(Januscape),攻击者可从客户机虚拟机逃逸至宿主机,影响Intel和AMD x86系统。
Linux KVM虚拟机监控程序中存在一个使用后释放(use-after-free)漏洞,可被客户机虚拟机触发,破坏运行该客户机的宿主机内核影子页表状态。该漏洞被命名为"Januscape",编号为CVE-2026-53359,位于KVM在Intel和AMD平台上共用的影子MMU代码中。公开的概念验证(PoC)漏洞利用程序可使宿主机崩溃;研究员同时声称,有一份单独且尚未公开的漏洞利用代码,能够将同一缺陷转化为对宿主机的完整代码执行能力。
安全研究员Hyunwoo Kim(@v4bel)发现并报告了该漏洞。据其所知,Januscape是首个在Intel和AMD平台上均可触发的客户机到宿主机逃逸漏洞,而该缺陷在代码中潜伏了约16年未被发现。Kim透露,该漏洞利用程序曾作为零日漏洞提交给Google的kvmCTF——这是一个有控制的KVM漏洞奖励项目,为实现完整的客户机到宿主机逃逸提供最高25万美元的奖励。
要运行虚拟机,KVM需要维护一套自己的私有页表,用来镜像客户机的内存布局。当KVM需要一个跟踪页时,它会查找一个已存在的跟踪页以便复用。这里存在一个问题:KVM仅凭内存地址进行匹配,而忽略了所获取的跟踪页的类型。两种不同类型的跟踪页可能共享同一个地址,却承担完全不同的职责,因此KVM有时会复用了错误类型的那一个。这种混乱会搅乱KVM内部对页面归属的记录,而一旦这些记录出错,系统必然会出现问题。
在大多数情况下,内核会察觉到这种混乱,并立即自我关闭以避免造成进一步破坏。这一崩溃现象正是公开演示所触发的效果:一个客户机可以击倒整个宿主机,连带影响该物理机上的其他每台虚拟机。而更为罕见且严重的情况发生在被释放的跟踪页在内核清理之前被重新分配另作他用时。这样一来,清理过程会向一块已不再属于自己的内存写入数值。攻击者虽然只能控制写入的目标位置,却无法控制写入的具体内容,但即便如此有限立足点,也足以被进一步加工成在宿主机上执行任意代码。
该漏洞在Intel和AMD芯片上的表现完全相同;只有将其转化为完整宿主机控制的最困难、最末端步骤在两家平台上需要不同的工作。该漏洞代码自2010年8月的commit 2032a93d66fa(内核2.6.36时代)起就已存在,并已于2026年6月19日通过commit 81ccda30b4e8合并入主线内核得到修复。

攻击在客户机侧需要两个条件:一是拥有客户机虚拟机内部的root权限(在租用的云实例中这很常见),二是宿主机暴露了嵌套虚拟化。即便在默认启用硬件EPT或NPT的宿主机上,嵌套虚拟化仍会强制KVM回退到遗留的影子MMU代码路径,而漏洞恰恰位于该路径中。该漏洞利用不需要QEMU或任何用户态VMM的配合,它纯粹是KVM内核内部的缺陷。
值得关注的实际风险场景是任何托管不可信客户机且启用了嵌套虚拟化的x86环境。一名攻击者只要租用这样一个实例,就可以使宿主机的宿主机崩溃,从而关闭同一物理机上的所有其他租户虚拟机。Kim表示,被扣留的完整漏洞利用代码可在宿主机上以root权限执行代码,这会使同一物理机上的其他客户机暴露在该root访问之下。在RHEL等将/dev/kvm权限设置为全局可写(0666)的发行版上,Kim指出同一缺陷还可用作本地权限提升至root的途径,但客户机到宿主机的路径影响更大。
Januscape是Kim在大约两个月内披露的第三个Linux内核漏洞利用。2026年5月,他披露了Dirty Frag(CVE-2026-43284 / CVE-2026-43500),这是一条可在大多数主流发行版上实现确定性root的页缓存写入漏洞链,扩展了与Dirty Pipe和Copy Fail相同的漏洞类别。2026年6月,他又发布了ITScape(CVE-2026-46316),这是首次公开演示的KVM/arm64上的客户机到宿主机逃逸漏洞,利用的是虚拟中断控制器中的竞态条件。如今,Januscape补齐了x86一侧;同一触发机制在Intel和AMD上均可生效,且其PoC分别针对两家厂商携带了不同的代码路径。
Google于2024年推出kvmCTF,正是因为KVM是Android和Google Cloud共同的基础组件。另一个与影子页相关的KVM x86使用后释放漏洞(CVE-2026-46113)涉及相关但不同的rmap不匹配问题,已于2026年5月被修复。
来源信息
来源:The Hacker News
原文链接:https://thehackernews.com/2026/07/16-year-old-linux-kvm-flaw-lets-guest.html
作者:info@thehackernews.com (The Hacker News)

