AMD处理器推测执行机制中的漏洞

Grsecurity 项目发布了 AMD 处理器中与无条件前向操作后推测执行指令相关的新漏洞 (CVE-2021-26341) 的详细信息和攻击方法演示。 如果攻击成功,该漏洞允许确定任意内存区域的内容。 例如,研究人员准备了一个漏洞利用程序,允许他们通过在 ePBF 内核子系统中执行非特权代码来确定地址布局并绕过 KASLR(内核内存随机化)保护机制。 不能排除其他可能导致内核内存内容泄漏的攻击场景。

该漏洞允许您创建条件,使处理器在抢占执行期间推测性地处理内存中紧随跳转指令之后的指令(SLS,直线推测)。 而且,这种优化不仅适用于条件跳转运算符,还适用于暗示直接无条件跳转的指令,例如 JMP、RET 和 CALL。 在无条件跳转指令之后,可以放置不打算执行的任意数据。 在确定分支不涉及下一条指令的执行后,处理器简单地回滚状态并忽略推测执行,但指令执行的踪迹保留在共享高速缓存中,并且可用于使用旁路检索技术进行分析。

与利用 Spectre-v1 漏洞一样,攻击需要内核中存在某些指令序列(小工具),从而导致推测执行。 在这种情况下,阻止漏洞归结为识别代码中的此类小工具并向其添加阻止推测执行的附加指令。 推测执行的条件也可以由 eBPF 虚拟机中运行的非特权程序创建。 要阻止使用 eBPF 构建 gadget 的能力,建议禁用系统中对 eBPF 的非特权访问(“sysctl -w kernel.unprivileged_bpf_disabled=1”)。

该漏洞影响基于Zen1和Zen2微架构的处理器,包括第一代和第二代AMD EPYC和AMD Ryzen Threadripper处理器,以及AMD Ryzen 2000/3000/4000/5000、AMD Athlon、AMD Athlon X、AMD Ryzen Threadripper PRO 和 APU 系列处理器 A. 为了阻止指令的推测执行,建议在分支操作(RET、JMP、CALL)后调用 INT3 或 LFENCE 指令。

来源: opennet.ru

添加评论