今天合并到 Linux 内核的修复了 Xen 虚拟机管理程序的两个漏洞。其中一个问题涉及恶意网络后端能够在 Linux 客户机的暂停/恢复周期后使客户机崩溃。解决的另一个更紧迫的问题是 Xen hypercall 页面对推测性 CPU 攻击不安全。
此次合并到 Linux 6.13 的 Git 代码库,并反向移植到现有的稳定版和受影响的系列,以修复这两个漏洞。XSA-465 是跟踪 Xen 网络前端崩溃的票证,而 XSA-466 用于披露不一定正确处理的推测缓解措施。
XSA-466 带有 CVE-2024-53241 编号,Xen.org 上介绍了 Linux 客户机操作系统应用的缓解措施可能无法完全正常运行的情况:
“Xen 客户机需要使用不同的处理器指令来显式调用 Xen 虚拟机管理程序,具体取决于客户机类型和/或 CPU 供应商。为了隐藏这些差异,虚拟机管理程序可以用所需的指令序列填充 hypercall 页面,从而允许客户操作系统调用 hypercall 页面,而不必选择正确的指令。
hypercall 页面包含整个函数,这些函数由虚拟机管理程序编写并由来宾执行。由于来宾操作系统和虚拟机管理程序之间缺少指定这些功能的潜在修改应该是什么样子的接口,Xen 虚拟机管理程序不知道任何可能的缓解应该是什么样子,或者应该实施哪些强化功能。
如果客户机操作系统使用任何对 “ret” 指令执行编译器转换的推测缓解措施(例如 Linux 内核 rethunk 或 safe-ret 缓解措施),则会导致潜在漏洞。
此外,hypercall 页面没有提供控制流完整性方案(例如 kCFI/CET-IBT/FineIBT),在此类配置中只会出现故障。
为了解决这个问题,Xen 添加了新的 hypercall 函数来代替现有的 hypercall 页面,从而避免使用可能逃避 CPU 推测执行保护的裸 RET 指令。
这些补丁也被标记为向后移植到稳定的 Linux LTS 系列。
转自 Linux Patched For Unsafe Xen Behavior Around CPU Speculative Attack Protections – Phoronix