Januscape: 在KVM/x86中从客户机到主机的逃逸 [CVE-2026-53359]
摘要
Januscape(CVE-2026-53359)是KVM/x86的shadow MMU中的一个释放后使用漏洞,允许从客户机逃逸到主机。利用此漏洞可能导致主机内核崩溃或代码执行,影响多租户云环境。
查看缓存全文
缓存时间: 2026/07/06 20:06
V4bel/Januscape 源代码:https://github.com/V4bel/Januscape
Januscape:KVM/x86 中的客户机到宿主机逃逸
摘要演示
本文档描述了由 Hyunwoo Kim (@v4bel) (https://x.com/v4bel) 发现并报告的 Januscape (CVE-2026-53359) 漏洞。这是一个 KVM 逃逸漏洞,允许在 KVM/x86 环境中从客户机逃逸到宿主机。据公开所知,这是第一个在 Intel 和 AMD 上均可触发的客户机到宿主机利用研究,而非仅限于单一架构。
Januscape 是 KVM/x86 影子 MMU 模拟中的一个释放后使用 (use-after-free) 漏洞。仅通过客户机侧操作即可触发该漏洞,从而破坏宿主内核的影子页,并威胁到接受不可信客户机并暴露嵌套虚拟化(特别是多租户 x86 公有云(如 GCP、AWS 等))的 KVM/x86 宿主的客户机-宿主机隔离。
事实上,Januscape 已成功作为 0 天漏洞在 Google kvmCTF (https://security.googleblog.com/2024/06/virtual-escape-real-reward-introducing.html) 中使用。有关详细技术信息,请参见此处。
在将此漏洞报告给 [email protected] 后,约定的禁运期已结束,因此该漏洞利用已发布到 oss-security,同时此 Januscape 文档也已公开。有关披露时间线,请参见技术细节文档。
PoC 结构
在客户机虚拟机内运行 PoC 可触发宿主机内核恐慌。还有一个在受控环境下可工作的完整逃逸利用程序,但目前尚未发布,计划在非常遥远的将来发布。
在 RHEL 等发行版中,/dev/kvm 是全局可写的 (0666),因此非特权用户也可以将这个漏洞转化为可靠的 LPE 提权至 root。话虽如此,但这样做等同于用金子换垃圾,所以我不打算赘述。
PoC 使用说明
-
在客户机虚拟机内,安装头文件并构建模块。
# sudo apt-get install -y build-essential linux-headers-$(uname -r) # make -
在客户机内加载模块。KVM 持有原始 VMX/SVM 状态,因此需要先卸载它。在 Intel 上不带参数加载,在 AMD 上使用
amd=1加载。[Intel] # sudo rmmod kvm_intel; sudo insmod poc.ko [AMD] # sudo rmmod kvm_amd; sudo insmod poc.ko amd=1 -
竞争开始,几秒到几分钟内宿主 KVM 便会恐慌。
[*] poc step 4/4: race live -- host DoS triggering ... kernel BUG at arch/x86/kvm/mmu/mmu.c (pte_list_remove) Comm: qemu-kvm
此 PoC 旨在提供准确信息。请勿在未获授权的系统上使用。
受影响版本
Januscape (CVE-2026-53359) 影响范围从 2032a93d66fa (2010-08-01) (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2032a93d66fa) 到 81ccda30b4e8 (2026-06-16) (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=81ccda30b4e8)。换言之,该漏洞潜伏了约“16 年”。
常见问题
此漏洞有何影响?
总共存在两种影响:
- KVM 逃逸:仅通过客户机侧操作,攻击者即可破坏运行其虚拟机的宿主机。例如,攻击者仅租用公有云上的单个实例,就能使宿主内核恐慌,从而击垮同一物理机上的所有其他租户虚拟机(DoS),或在宿主机上以 root 权限运行代码,从而接管宿主机及其上的所有客户机(RCE)。
- LPE:在 RHEL 等发行版中,
/dev/kvm是全局可写的 (0666),因此非特权用户也可利用此漏洞作为可靠的 LPE 获取 root 权限。
我应该担心吗?
如果您运营一个接受多租户客户机并支持嵌套虚拟化的 x86 KVM 宿主机,或者使用在此类宿主机上的实例,请确认宿主机内核已应用 81ccda30b4e8 补丁。
arm64 上的 KVM 宿主机也受影响吗?
不受影响。该漏洞仅在 Intel 和 AMD 架构上触发。话虽如此,如果您尚未修补先前公布的 ITScape (CVE-2026-46316) (https://github.com/V4bel/ITScape),您的 arm64 宿主机仍有风险,请及时应用补丁。
此漏洞是否出现在 QEMU 中?
不。与常见的 QEMU 逃逸漏洞不同,Januscape 发生在内核 KVM 中,因此独立于 QEMU 的模拟触发。正因如此,它同样威胁到那些实现并使用自有虚拟化栈的大型公有云。
我需要在客户机虚拟机内拥有 root 权限吗?
是的。插入模块需要客户机内核权限。当您在公有云上分配到一个实例时,通常对自己的 VM 拥有 root 权限,因此满足条件。在没有客户机 root 的场景下,需要结合诸如 Dirty Frag (https://github.com/V4bel/dirtyfrag) 的 LPE 漏洞链。
相似文章
谷歌为允许客户虚拟机逃逸的Linux漏洞支付25万美元赏金
谷歌为Linux KVM漏洞(Januscape)支付了25万美元赏金,该漏洞允许非特权客户虚拟机逃逸并获取主机的root权限,影响使用AMD或Intel处理器的云平台。
RefluXFS: Linux内核XFS文件系统中的本地权限提升至root漏洞 (CVE-2026-64600)
Qualys和Anthropic披露了CVE-2026-64600,这是Linux内核XFS文件系统中的一个竞态条件漏洞,允许本地权限提升至root,影响超过1600万个系统,且无内核日志输出,能够在重启后持续存在。
CVE-2026-40369: 通过NtQuerySystemInformation实现任意内核地址递增
CVE-2026-40369 描述了 Windows 内核中 NtQuerySystemInformation 函数的一个漏洞,该漏洞允许任意内核地址递增,使无特权的进程(包括 Chrome 沙箱)能够提升权限。该利用在 Windows 11 24H2-25H2 上是确定性的。
Linux内核中因单个错误字符导致的高危漏洞
Linux内核中一个错误的字符引入了一个use-after-free漏洞(CVE-2026-53111),允许非特权用户在Debian和Ubuntu系统上将权限提升至root;该漏洞已修复并移植回旧版本。
Linux 内核 __ptrace_may_access() 函数的逻辑漏洞 (CVE-2026-46333)
Qualys 披露了 Linux 内核 __ptrace_may_access() 函数中的一个逻辑漏洞 (CVE-2026-46333),可导致本地权限提升和信息泄露。该漏洞自 2016 年起存在,影响多个发行版,Qualys 已开发出四种概念验证利用代码。