Januscape: 在KVM/x86中从客户机到主机的逃逸 [CVE-2026-53359]

Hacker News Top 新闻

摘要

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 使用说明

  1. 在客户机虚拟机内,安装头文件并构建模块。

    # sudo apt-get install -y build-essential linux-headers-$(uname -r)
    # make
    
  2. 在客户机内加载模块。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
    
  3. 竞争开始,几秒到几分钟内宿主 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 年”。

常见问题

此漏洞有何影响?

总共存在两种影响:

  1. KVM 逃逸:仅通过客户机侧操作,攻击者即可破坏运行其虚拟机的宿主机。例如,攻击者仅租用公有云上的单个实例,就能使宿主内核恐慌,从而击垮同一物理机上的所有其他租户虚拟机(DoS),或在宿主机上以 root 权限运行代码,从而接管宿主机及其上的所有客户机(RCE)。
  2. 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内核中因单个错误字符导致的高危漏洞

Ars Technica

Linux内核中一个错误的字符引入了一个use-after-free漏洞(CVE-2026-53111),允许非特权用户在Debian和Ubuntu系统上将权限提升至root;该漏洞已修复并移植回旧版本。