
研究人员近期披露一个编号为 CVE-2026-89775 的 Linux 内核漏洞,攻击者可利用该漏洞从 ARM64 虚拟机逃逸,直接访问底层宿主机系统。
该漏洞仅影响开启嵌套虚拟化功能的 KVM / arm64 环境,会对多租户云基础设施、允许非受信用户创建虚拟机的系统造成严重安全风险。
页表遍历存在类型截断
安全研究员 Hyunwoo Kim 指出,该漏洞源于 KVM / arm64 第一阶段页表遍历流程中的类型截断问题。该问题会干扰内核的内存区域大小计算逻辑,内核需要依据计算结果,将对应内存从虚拟 CPU 的伪 TLB 中失效。
正常流程下,内存映射发生变更后,KVM 必须失效过期的内存转译条目,防止客户虚拟机继续访问宿主机内核已释放、移动或重新分配的内存。
但在存在漏洞的代码路径中,相关大小计算可能返回 0 值,该值原本的设计含义是内存大小未知。
VNCR 伪 TLB 失效逻辑会错误将 0 值识别为有效的范围大小,进而生成空的失效范围。这会导致系统完全跳过必要的失效操作,最终让恶意客户机持续持有过期内存的访问权限。
攻击者可直接读写宿主机内存
根据漏洞披露信息,已释放的宿主机内存页可能仍映射在宿主机内核的固定地址,且保持可写权限。恶意客户机无需触发陷阱或虚拟机退出,就能获得该内存页的 64 位读写权限。攻击者可直接从客户机环境内部操纵宿主机内存。
该漏洞对采用 ARM64 基础设施的公有云部署威胁尤其突出。如果攻击者可以创建开启嵌套虚拟化功能的实例,就有可能从客户机系统渗透进入宿主机。
一旦攻击得手,攻击者会彻底打破客户虚拟机与云厂商底层基础设施之间的隔离边界。
该漏洞还可能引发本地提权风险。漏洞报告指出,包括 Red Hat Enterprise Linux 在内的部分发行版在某些配置下,会将 /dev/kvm 的权限设为 0666,即全局可写。在开启嵌套虚拟化的前提下,本地无特权用户可利用该漏洞获取宿主机的 root 权限。
上游已发布漏洞修复补丁
2025 年 5 月 14 日提交的 commit 7270cc9157f47 将该漏洞引入 Linux 内核代码,2026 年 8 月 6 日上游提交的 commit 8053393680d4 已完成修复,目前 Linux 主线内核已集成该补丁。
管理员应在发行版厂商推送包含主线修复的内核版本后,第一时间完成升级。
运营 ARM64 KVM 主机的机构也应评估嵌套虚拟化功能的必要性。在补丁部署完成前,关闭非必要的嵌套虚拟化功能可以缩小攻击暴露面。
云服务厂商应优先修补共享基础设施,评估租户对嵌套虚拟化功能的访问权限。同时需要核查 /dev/kvm 的权限配置,降低本地攻击风险。
参考来源:
Linux KVM/arm64 Vulnerability Lets Attackers Escape Virtual Machines and Gain Host Access
https://cybersecuritynews.com/linux-kvm-arm64-vulnerability/
|