从暂停启动 CPU 恢复后,Linux 的推测处理被搞砸了

今天命中主线 Linux Git 树是一个相当有趣的修复…事实证明,当 Linux 从 S3 挂起恢复时,它没有正确恢复引导 CPU 的 MSR,以处理推测性执行缓解。

从 S3 挂起恢复时,Linux 内核没有为引导 CPU 恢复与推测相关的模型特定寄存器 (MSR)。这些特定于模型的寄存器对于减轻推测执行漏洞很重要,但不幸的是,x86 电源代码并没有在恢复时恢复其预期状态。反过来,在挂起 Linux 系统后,这可能会使引导 CPU 易受攻击(尽管辅助 CPU 已正确恢复)。至少在只有引导 CPU 没有被覆盖的情况下,暴露是有限的,但仍然令人惊讶的是,在这些推测性执行漏洞缓解措施在过去几年中受到了所有关注之后,这个问题才在 2022 年才被发现并得到解决。

image.php_-11
哎呀!

修复利用 Linux 框架在挂起/恢复周期周围保存/恢复额外的 MSR 寄存器。在此修复之前未正确处理的 MSR 包括用于推测控制的 MSR_IA32_SPEC_CTRL、用于 TSX 异步中止 (TAA) 漏洞的 MSR_IA32_TSX_CTRL 和 MSR_TSX_FORCE_ABORT、用于围绕微架构数据采样 (MDS) 漏洞的特殊寄存器缓冲区数据采样的 MSR_IA32_MCU_OPT_CTRL 和 MSR_A​​MD64_LS_CFG。

在今天击中 Linux 5.18 Git 的同时,英特尔工程师 Pawan Gupta 的修复也被标记为向后移植到当前支持的 Linux 稳定系列。

原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun146654.html

(0)
打赏 微信扫一扫不于多少! 微信扫一扫不于多少! 支付宝扫一扫礼轻情意重 支付宝扫一扫礼轻情意重
上一篇 2022年4月6日 上午10:04
下一篇 2022年4月6日 上午10:59

相关推荐