CVE-2026-43096Linux内核中的mshv(Microsoft Hyper-V)模块存在一个安全漏洞,该漏洞源于处理访客物理地址(GPA)拦截时的逻辑缺陷。当访客机尝试访问没有适当权限的内存区域时,系统未能正确验证访问类型与区域权限的匹配性。具体而言,如果访客机向只读区域写入数据,重映射操作虽然成功但区域状态未变,导致立即再次发生错误,从而触发无限故障循环。这不仅会导致vCPU资源耗尽,还可能被恶意访客利用作为拒绝服务攻击向量,消耗主机资源。
该漏洞位于Linux内核的mshv模块,具体涉及`mshv_handle_gpa_intercept`函数。在虚拟化场景中,当访客机发生访客物理地址(GPA)权限错误时,该函数负责处理拦截。原代码在处理可移动内存区域的缺页异常时,未先验证访问类型(如写或执行)是否与内存区域的权限(如只读或不可执行)兼容。攻击者可诱导访客机向只读内存区域发起写入操作。此时,mshv尝试重映射页面,但由于权限检查缺失,重映射未能解除访问限制,导致指令执行后立即再次触发相同的GPA拦截。这种机制缺陷使得vCPU陷入无限的自旋循环,持续占用主机CPU周期,最终导致宿主机资源耗尽形成拒绝服务。