Linux内核的KVM虚拟化代码中存在一个新的漏洞,该漏洞针对ARM64处理器,可能会使已释放的主机内存片段暴露给启用了嵌套虚拟化的客户虚拟机。
该漏洞被追踪为CVE-2026-89775,允许客户机读取和写入主机内核内存,发现该漏洞的研究人员表示,它可以被用来逃逸客户机并在主机上运行代码。
受影响的代码是主线Linux内核中ARM64的一部分,并已在Linux 6.18.51、7.2.5和7.3-rc1中修复。
嵌套虚拟化允许客户机运行自己的虚拟机监控程序,使其能够托管虚拟机。在ARM64上,默认情况下是关闭的。这是一种实验性的启动时模式,需要具有名为FEAT_NV2的Armv8.4硬件,因此一个从未启用它的普通ARM64 KVM主机不在报告的攻击路径内。
该漏洞位于处理ARM64嵌套虚拟化的KVM部分。当客户机以某种方式安排其内存时,大小计算结果为零,而应清除处理器地址缓存中陈旧条目的步骤(TLB失效)被跳过。
已释放的主机内存页保持映射和可写,客户机可以以64位为单位读取和写入它,没有硬件陷阱将控制权交还给主机。
报告该漏洞并于9月16日披露的安全研究员Hyunwoo Kim表示,客户机可以利用此漏洞逃逸到主机,突破自己的虚拟机以在底层机器上运行代码。目前尚未发布利用代码,也没有迹象表明该漏洞已被用于攻击。
内核自己的记录显示受影响的代码自Linux 6.16以来就存在。但作者将修复标记为针对后续更改,而审查和测试该修复的维护者表示“错过的失效仅在v6.17开始。”根据这个说法,运行6.16的主机包含该代码,但不具备攻击者所需的行为。
还有第二种滥用该漏洞的方法。在任何用户都可以打开/dev/kvm的系统上,该设备是程序用于创建虚拟机的,地方用户可以构建客户机并利用同样的漏洞获取root权限,Kim表示。
他指出,Red Hat Enterprise Linux的该设备默认对所有用户开放。Red Hat将其版本10内核列为受影响,版本6至9列为未受影响。此路径仍然需要主机启用嵌套虚拟化。
哪些内核已修复
在上游,漏洞已在Linux 6.18.51、7.2.5和7.3-rc1中修复。各个发行版根据自己的时间表发布修复,状态因版本而异。
内核或发行版
截至9月22日的状态
主线Linux
在6.18.51、7.2.5和7.3-rc1中修复
Red Hat Enterprise Linux
版本10内核受影响;版本6至9未受影响
Ubuntu
26.04,包括其AWS、Azure和GCP内核,存在漏洞;24.04 LTS通用内核未受影响,但其较新的硬件启用内核(6.17、7.0)存在漏洞
Amazon Linux
AL2023内核6.18包:修复待定;其他Amazon Linux内核未受影响
Debian
bookworm和trixie未受影响(代码不存在);sid在7.2.6-1中修复;forky存在漏洞
对于尚未修补的主机,Red Hat表示没有缓解措施符合其应急解决方案的标准。唯一确定的事情是范围:攻击仅针对启用了嵌套虚拟化的主机,而这在ARM64上不是默认设置。
供应商对该漏洞的评分为7.8到9.3分(满分10分)。他们一致认为影响很大,攻击是本地的,这意味着无法通过网络发起。传播反映了每个供应商认为该漏洞利用的难易程度,而显示9.3分的Ubuntu将其优先级设为中等。
截至9月22日,该漏洞尚未出现在美国CISA被利用漏洞目录中,其预测的利用评分低于1%。
该披露引发了一个问题,即云租户是否可以利用该漏洞入侵提供商的机器。在最大的提供商中,所需的配置并未提供:Amazon Web Services仅列出基于Intel的实例以支持嵌套虚拟化,而Google Cloud则将其ARM虚拟机排除在外。
这并不是对这些平台的健康证明,但该漏洞所采取的特定路径在它们的标准ARM产品中并未暴露。
CVE-2026-89775是Kim今年披露的第四个KVM客户机到主机的逃逸漏洞。两个是在x86版本的KVM中:7月的Januscape和8月的Zapscape。与之最相似的是ITScape,这是他在6月发布的一个ARM64 KVM逃逸漏洞,他称之为首次在ARM64上公开展示的此类逃逸。
觉得这篇文章有趣吗?请在Google News、Twitter和LinkedIn上关注我们,以阅读更多我们发布的独家内容。