16年前的JanuscapeKVM逃逸漏洞使攻击者能够入侵Linux主机

admin 2026-07-10 05:18:40 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: Linux内核KVM虚拟化中存在16年漏洞CVE-2026-53359(JanusCape),允许虚拟机逃逸到宿主机。漏洞源于影子MMU中影子页角色验证缺失,导致释放后重用,攻击者可破坏宿主机内核内存。影响多租户云环境,嵌套虚拟化场景下可被利用。建议及时更新内核补丁。 综合评分: 83 文章分类: 漏洞分析,云安全,网络安全


cover_image

16年前的Januscape KVM逃逸漏洞使攻击者能够入侵Linux主机

原创

ZM ZM

暗镜

2026年7月9日 06:35 北京

在小说阅读器读本章

去阅读

Linux 内核中新披露的一个漏洞,编号为 CVE-2026-53359,名为“Januscape”,揭示了 KVM/x86 虚拟化中一个存在了 16 年的缺陷。

该漏洞允许客户虚拟机 (VM) 在特定条件下逃逸到主机,这给多租户云环境带来了重大隐患。

安全研究员金贤宇发现了这一问题,问题出在KVM的影子MMU实现中。它允许不受信任的客户虚拟机仅通过自身控制的操作来破坏宿主机内核的内存。

Januscape 的核心是一个释放后重用漏洞,由 KVM 内存管理逻辑中对影子页结构的错误重用引起。具体来说,该缺陷存在于函数 kvm_mmu_get_child_sp() 中,该函数仅基于客户机帧号 (GFN) 重用影子页,而没有验证页面的“角色”。

该角色决定了影子页是代表访客页表(间接)还是拆分的大页(直接)。当同一个GFN使用不匹配的角色时,会导致内存状态跟踪不一致,最终破坏内核中的反向映射(rmap)不变性。

这种逻辑缺陷在嵌套虚拟化场景中会被利用,即一个客户机(L1)运行着它自己的嵌套客户机(L2)。在这种设置下,即使启用了硬件辅助分页(EPT/NPT),KVM 也必须在软件层面上对嵌套页表进行镜像。

由于嵌套的 EPT/NPT 影子攻击依赖于传统的影子 MMU 路径,因此在现代系统中,易受攻击的代码路径仍然可以访问。关键在于,所有这些处理都完全在内核中完成,这意味着该攻击不依赖于用户空间组件,例如 QEMU。

当直接和间接这两种不同的影子页面角色被错误地视为可以互换时,就会出现此漏洞。这种不匹配会导致系统状态损坏,即已释放的影子页面仍然被过时的父指针引用。

在清理过程中,内核会将一个固定的常量(例如,在 x86_64 架构上为 0x8000000000000000)写入可能已被重新分配的内存,从而创建了一个释放后使用写入原语。虽然这种原语受到限制(写入固定值),但在可控条件下,它足以破坏内核对象。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:暗镜 ZM ZM《16年前的Januscape KVM逃逸漏洞使攻击者能够入侵Linux主机》

评论:0   参与:  0