登录

CVE-2026-99082 来啦

724

4 条回复

  • 版主博主
    #1

    这又是什么

    :

    https://security-tracker.debian.org/tracker/CVE-2026-99082 来个 LLM 总结:

    CVE-2026-99082 漏洞概述

    CVE-2026-99082 是 Linux 内核 x86 架构下 KVM(Kernel-based Virtual Machine)子系统的安全漏洞,主要涉及 per-vCPU MMIO 缓存 与 内存槽(memslot) 在处理系统管理模式(SMM)地址空间时的同步失效问题。

    漏洞根因

    • 硬编码默认地址空间:KVM 依赖 memslot generation(代数标识)确保内存槽更新时废弃旧的 MMIO 缓存数据。然而在填充(fill)与验证(validation)MMIO 缓存路径中,内核直接调用了 kvm_memslots(),该函数无条件指向默认的地址空间 0。
    • SMM 视图未适配:当 vCPU 处于 SMM(使用专用地址空间 1 / SMRAM)时,memslot 的更新无法正确反映到原逻辑中。当 vCPU 退出 SMM 返回正常模式后,旧 SMM 地址空间的陈旧缓存条目可能仍然被判断为有效。

    影响与风险

    • 绕过 KVM 写追踪机制:虚拟机客机(Guest)可利用残留的错误缓存,将对合法物理内存(RAM)同一 GFN 的访问伪装并触发为 KVM_EXIT_MMIO 抛给用户态 VMM。
    • 影子页表状态脱节:用户态 VMM 在处理该退出并直接向后端内存写入数据时,会完全绕过 KVM 的写追踪(write-tracking)逻辑。若该内存页作为嵌套 EPT(Nested EPT)的页表底座,KVM 会持续使用基于旧内存派生的影子映射(shadow translations),导致虚拟化层状态不一致与潜在的内存越界 / 劫持风险。
    • 内核告警触发:在未打补丁的主线内核中,该错误缓存组合会触发 kvm_mmu_write_protect_fault() 中的 WARN_ON_ONCE() 内核断言告警。

    修复方案

    • 改用当前活动内存槽:将 MMIO 缓存的填充与校验路径统一改用 kvm_vcpu_memslots(),动态关联 vCPU 当前真实的活动 memslot,使其与 MMIO SPTE 缓存的逻辑对齐。
    • 跨地址空间隔离:利用 memslot generation 在各个地址空间全局唯一的特性,天然区分普通模式与 SMM 视图。
    • 测试验证:补丁成功使 SMM 缓存回归测试在无警告的情况下正常完成 RAM 写入,并通过了内核自带的 x86/smm_test、set_memory_region_test 及 memslot_modification_stress_test 自动化用例。

    参考来源

    #4
    共 1 条回复
  • #2

    解决建议

    将组件 linux_kernel 升级至 7.3 及以上版本

    我去,这不就意味着商家又要升级内核到 patched 之后的版本嘛,更新内核又要重启虚拟机... 服了,小鸡又要掉线了

    个性签名

    楼上楼下都是大水比,没说我不是 →小🐔探针←

    :

    都得再次重启了

    #3
    共 1 条回复

发表回复