CVE-2026-53359
KVM: x86: 修复因意外角色导致的影子分页释放后使用
- 已发布
- 2026年7月4日
- 已更新
- 2026年8月17日
- 分配 CNA
- Linux
- 观察到的证据
- 2026年8月4日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H低 · 未来 30 天
- 百分位
- 59.6%
- 型号日期
- 2026年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
在 Linux 内核中,已解决以下漏洞:KVM: x86: 修复因意外角色导致的影子页表释放后使用(use-after-free) 提交 0cb2af2ea66ad(“KVM: x86: 修复因意外 GFN 导致的影子页表释放后使用”)修复了存储的 GFN 与计算出的 GFN 之间的影子页表不匹配问题;该漏洞可通过在客户机外部更改 PDE 映射,然后删除一个 memslot 来触发。rmap_remove() 调用会漏掉 PDE 更改之后创建的条目,因为叶 SPTE 的 GFN 与 struct kvm_mmu_page 的 GFN 不匹配。 然而,如果被修改的 PDE 指向一个非叶页面,类似的漏洞仍然存在。在这种情况下,GFN 可以做到匹配,但角色(role)不匹配:原始的大型 2MB 页面创建的 kvm_mmu_page 具有 direct=1,而新的 4KB 页面需要 direct=0 的 kvm_mmu_page。但是,kvm_mmu_get_child_sp() 不比较角色,因此会重用该页面。下一步是在新路径上安装叶(4KB)SPTE,该 SPTE 在遍历解析出的 gfn 下记录一个 rmap 条目。但是当该子页面被清除(zap)时,其父级 kvm_mmu_page 的 direct=1,而 kvm_mmu_page_get_gfn() 将 4KB 页面的 gfn 计算为 sp->gfn + index,而不是使用 sp->shadowed_translation[](在较旧内核中为 sp->gfns[])。因此它无法移除已记录的条目。当 memslot 被删除时,影子页面被释放,但 rmap 条目仍然存在,正如已修复的场景一样。之后遍历该 gfn 的代码(脏页日志记录、MMU notifier 失效等)会解引用位于已释放页面中的 sptep,从而导致释放后使用。
来源
4CVE-2026-53359
Linux 内核升级指南 - 修复 CVE-2026-53359
- Januscape漏洞利用
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。