该项目最近 通过出版物宣传 Grsecurity 细节和演示 一种针对新漏洞的攻击方法 (已经列为 CVE-2021-26341) 在 AMD 处理器上与在无条件跳转操作后执行推测指令有关。
脆弱性 允许处理器推测处理 在推测执行期间内存中的跳转 (SLS) 指令之后立即执行的指令。 同时,这种优化不仅适用于条件跳转运算符,也适用于涉及直接无条件跳转的指令,例如 JMP、RET 和 CALL。
无条件分支指令后面可以跟不打算执行的任意数据。 在确定分支不涉及执行下一条语句后, 处理器简单地回滚状态并忽略推测执行, 但指令执行跟踪仍保留在通用缓存中,可用于使用边信道检索方法进行分析。
AMD 在“用于管理 AMD 处理器中的推测的软件技术”白皮书中提供了推荐的缓解措施(G-5 缓解措施)的更新。 G-5 缓解有助于解决与分支指令的推测行为相关的潜在漏洞。
AMD 处理器可能会在无条件前向分支之后暂时执行指令,这可能会导致缓存活动
与对幽灵的利用一样——v1, 攻击需要存在某些序列 内核中的指令(小工具),这会导致推测性执行。
在这种情况下,阻止漏洞归结为在代码中识别此类设备并向它们添加额外的指令以阻止推测性执行。 推测执行的条件也可以使用在 eBPF 虚拟机上运行的非特权程序来创建。
该调查导致发现了一个新漏洞 CVE-2021-26341 [1] ,我们将在本文中详细讨论。 像往常一样,我们将重点关注漏洞的技术方面、AMD 建议的缓解措施以及利用方面。
要阻止使用 eBPF 构建设备的能力, 建议禁用对 eBPF 的非特权访问 在系统中(“sysctl -w kernel.unprivileged_bpf_disabled=1«)。
该漏洞影响基于 Zen1 和 Zen2 微架构的处理器:
台
- AMD 速龙™ X4 处理器
- AMD 锐龙™ Threadripper™ PRO 处理器
- 第二代 AMD Ryzen™ Threadripper™ 处理器
- 第三代 AMD Ryzen™ Threadripper™ 处理器
- 第七代 AMD A 系列 APU
- AMD Ryzen™ 2000 系列台式机处理器
- AMD Ryzen™ 3000 系列台式机处理器
- AMD Ryzen™ 4000 系列台式机处理器,配备 Radeon™ 显卡
移动
- AMD 锐龙 2000 系列移动处理器
- 具有 Radeon™ 显卡的 AMD Athlon™ 3000 系列移动处理器
- AMD Ryzen™ 3000 系列移动处理器或带有 Radeon™ 显卡的第二代 AMD Ryzen™ 移动处理器
- 配备 Radeon™ 显卡的 AMD Ryzen™ 4000 系列移动处理器
- 配备 Radeon™ 显卡的 AMD Ryzen™ 5000 系列移动处理器
Chromebook的
- 带有 Radeon™ 显卡的 AMD Athlon™ 移动处理器
服务器
- 第一代 AMD EPYC(霄龙)处理器
- 第二代 AMD EPYC(霄龙)处理器
提到如果攻击成功, 该漏洞允许确定任意内存区域的内容。
由于此漏洞,可以识别在受影响的 CPU 上形成有限但可能被利用的 SLS 设备的良性代码构造。 如 eBPF 示例所示,也可以使用手动构建的自注入设备来利用该漏洞。 例如,可以使用所提出的方法来破坏 Linux 内核的 KASLR 缓解。
例如,研究人员准备了一个漏洞利用,它允许您确定地址的布局并通过在 eBPF 内核子系统中执行没有特权的代码来绕过 KASLR(内核内存随机化)保护机制,此外还有其他可能泄露不排除内核内存的内容。
最后 如果您有兴趣了解更多信息,您可以查看详细信息 在下面的链接中。