CVE-2026-43045Linux内核中的mshv_region_pin函数存在错误处理缺陷。首先,pin_user_pages_fast()可能返回部分固定的页面数,但代码将其视为成功,导致部分固定的区域被使用,引发内存损坏。其次,当循环过程中发生错误时,当前批次中已固定的页面在调用mshv_region_invalidate_pages()前未被正确统计,导致页面引用泄漏。本地低权限攻击者可利用此漏洞导致系统拒绝服务或内存资源耗尽。
该漏洞位于Linux内核的Microsoft Hyper-V接口(mshv)子系统中。mshv_region_pin函数负责将用户空间内存页固定到内核中。漏洞根源在于该函数未正确处理pin_user_pages_fast()的返回值。当该函数返回的固定页面数少于请求的数量(即“短固定”)时,代码错误地将其视为完全成功,继续使用未完全初始化或未正确固定的内存区域,导致内核内存损坏。此外,在处理过程中若发生错误跳转到清理逻辑时,当前批次已固定页面的计数未被更新,导致mshv_region_invalidate_pages无法正确释放这些页面,引发引用计数泄漏。攻击者通过本地调用相关接口,构造触发短固定或中途错误的条件,可导致系统崩溃或权限提升(取决于内存损坏的可控性,当前CVSS主要影响可用性)。