# KVM逃逸漏洞Zapscape

> Linux已修复一项自5.9起受影响的影子MMU漏洞，研究者另称在特定AMD嵌套虚拟化环境完成了从客户机到宿主机root的完整链。

_Source: Linux CVE record, upstream kernel fix, and Zapscape researcher disclosure · 2026-08-07 · 8 min read · Verified against primary sources_

Canonical: https://iyu.app/zh/e/zapscape-kvm-escape-cve-2026-64561

## 60 秒版本

Linux修复了一项回收期间可使活动根页失效的KVM/x86影子MMU漏洞；研究者另称在特定AMD嵌套环境完成了客户机到宿主机root链。

**要点**

- 官方受影响范围从Linux 5.9开始，稳定分支修复点包括6.6.148、6.12.101、6.18.42和7.1.6。
- 主线修复提交2abd5287f083把过期根页检查移到影子页回收之后，并在根页失效时重试缺页。
- 暴露面涉及x86 KVM影子MMU与嵌套虚拟化，研究者称公开攻击模型需要客户机root权限。
- Intel还需同时向L1暴露EPT四级与五级遍历能力；研究者称AMD没有这一额外条件。
- Linux 7.1.3 AMD环境中的完整root链是研究者PoC结果，本文所引来源未确认独立复现。

**结论.** 修补宿主机内核，并停止向不受信客户机开放非必要的嵌套虚拟化；既不能把特定PoC当作普遍可利用，也不能因此延后修复。

## 全文

**Linux已确认并修复CVE-2026-64561**，这是一项位于KVM/x86影子MMU的内存安全漏洞。官方记录把受影响边界定为Linux 5.9起，并列出多个稳定分支修复版本；研究者另以Zapscape之名披露，称在特定AMD嵌套虚拟化测试环境完成了客户机到宿主机root的完整链。

> **⚑ Caveat:** 证据边界：Linux官方确认漏洞与修复。Linux 7.1.3、AMD嵌套SVM/NPT环境中的完整客户机到宿主机root链，是研究者公开的PoC结果；本文所引一手来源未提供独立复现。


### 确认范围 — Linux官方确认了什么

[官方CVE记录](https://cveawg.mitre.org/api/cve/CVE-2026-64561)描述了KVM影子MMU缺页处理中的顺序错误。KVM可能先检查根页是否过期，随后在回收影子页时使这个正在使用的根页失效，最后仍继续在其下建立内存映射。

子影子页会继承父页角色。若处理在失效根页下继续，新建子页也可能带有失效状态，却进入活动MMU页列表，从而破坏KVM内部不变量，并形成宿主机内核内存安全条件。

- **5.9** — 官方受影响范围的起始Linux版本
- **4个** — 官方列出的稳定分支修复点
- **2abd5287f083** — 主线修复提交

> **i** Linux记录指出，相关过期根页行为出现得更早，但安全相关边界始于2020年的Linux 5.9：从该版本起，失效影子页不得出现在活动页列表中。


### 漏洞机制 — 失效根页如何破坏隔离

嵌套虚拟化允许L1客户机继续运行L2客户机。L0宿主机需要跟踪L1构造的地址转换结构，因此即使普通客户机内存由硬件EPT或NPT处理，x86 KVM仍会为嵌套页表使用软件影子页。

KVM会限制每个虚拟机的影子页数量，并在空间不足时回收旧页。修复前，回收发生在过期根页检查之后；如果回收使当前根页失效，同一个缺页过程仍可能在这个已失效根页下创建后代页。

> 问题不是KVM没有检查过期根页，而是回收动作可能在检查通过后才让根页过期。

> **→** 上游修复调整了顺序：先腾出MMU页，再检查根页是否过期。若回收期间根页失效，KVM会重试缺页，而不是继续建立映射。


### 暴露条件 — 触发前提具有明确边界

这并不意味着所有Linux虚拟机都能逃逸。相关路径涉及x86 KVM影子MMU与嵌套虚拟化。研究者称，公开攻击模型还要求攻击者在L1客户机中拥有root权限。

- **共同条件:** 受影响的x86 KVM宿主机、与嵌套虚拟化相关的影子MMU活动，以及攻击者对L1客户机的内核级控制。
- **Intel:** 研究者称需启用嵌套VMX/EPT，并同时向L1暴露EPT四级和五级页表遍历能力；只有其中一种不足以形成其演示使用的别名。
- **AMD:** 研究者称嵌套SVM/NPT不需要Intel双EPT遍历长度这一额外条件。
- **实际可利用性:** 满足前提代表存在暴露面，不等于必然可利用；内核配置、内存后端、加固和适配仍会影响结果。


### 公开演示 — Zapscape PoC报告了什么

[Zapscape仓库](https://github.com/V4bel/Zapscape)称，公开演示以Linux 7.1.3和AMD嵌套SVM/NPT为目标，并使用QEMU TCG构建受控测试平台。研究者称其把失效页状态扩展为释放后使用，进而完成客户机到宿主机的完整链，并在宿主机产生root所有的效果。

仓库同时说明，这不是可在云环境中立即运行的成品攻击。真实环境仍需适配提供商的宿主机内核配置、内存后端与虚拟化栈。本文不提供可操作利用步骤，只讨论防御评估。


### 修复处置 — 修复版本与运维动作

- **Linux 6.6稳定分支:** 6.6.148及该分支后续版本已修复。
- **Linux 6.12稳定分支:** 6.12.101及该分支后续版本已修复。
- **Linux 6.18稳定分支:** 6.18.42及该分支后续版本已修复。
- **Linux 7.1稳定分支:** 7.1.6及该分支后续版本已修复。
- **主线:** 提交2abd5287f083完成修复；CVE记录将7.2-rc5标为包含原始修复。

> **i** 发行版内核常把安全修复回移到旧版。应核对厂商软件包公告或对应补丁是否存在；仅凭定制版本字符串不能可靠判断是否受影响。

- **1.** 清点x86 KVM宿主机，识别哪些系统向不受信客户机开放了嵌套虚拟化。
- **2.** 安装当前稳定分支或发行版对应的修复内核，并确认宿主机实际运行的已是更新版本。
- **3.** 业务不需要时，对不受信工作负载关闭嵌套虚拟化；Intel环境还应审查向L1暴露的EPT能力。
- **4.** 监控宿主机内核日志与集群遥测中的异常KVM警告、崩溃或不稳定，但不能用监控代替修补。
- **5.** 限制本地用户访问KVM设备作为纵深防御，不把权限控制视为内核修复的替代方案。

处置结论明确：**优先修补受影响KVM宿主机，再减少不必要的嵌套虚拟化暴露**。进行风险定级时，应始终区分官方漏洞边界与研究者在特定配置下报告的完整链。


## Primary sources

- [Zapscape researcher disclosure and PoC repository](https://github.com/V4bel/Zapscape)
- [Official CVE record for CVE-2026-64561](https://cveawg.mitre.org/api/cve/CVE-2026-64561)
- [Linux mainline fix 2abd5287f083](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2abd5287f08319fa35764566b15c6e22cb1068db)

---
_Published by iyu (https://iyu.app) — the day's AI news, checked against primary sources and rewritten in plain language. Free to quote with attribution and a link to the canonical URL._
