Versal ACAP、APU - DSB 指令后可能会发生推测性 TLB 填充

描述
Arm 发行的白皮书 "Cache Speculation Side-channels" (https://developer.arm.com/support/arm-security-updates/speculative-proce...) 用于发现 "Spectre" 辅助通道。 白皮书指出,DSB SYS 和 ISB 的组合可防止随后的猜测。

但是,对于在 DSB SYS + ISB 之后执行页面转换的单次加载、存储或其他内存操作,可推测在 DSB SYS + ISB 完成之前的初始查找中是否发生了 TLB 错误,并填充新的 TLB 条目。

同样,处理器的微架构状态也可能受到在 DSB SYS + ISB 之后出现的指令推测访问的影响。

状况:

DSB SYS + ISB 在加载或存储指令之前。
由加载或存储指令计算的地址未达到 TLB。
DSB SYS、ISB 和加载或存储指令位于推测路径中,并最终被刷新。

解决方案

影响:

当满足这些条件时,单个推测性访问会更改 TLB 微架构状态,从而影响后续访问的时序,并公开有关用于该推测性访问的地址信息。

合规性 "Spectre" variant 1(可使用 DSB SYS + ISB 避免)在对地址偏移量进行净化的条件分支阴影下使用了一对推测性内存访问。首个推测性内存访问用于访问攻击者选择的机密,第二个内存访问使用此机密形成地址。

基于该地址的微架构状态分配取决于机密信息,随后的访问时序可用于推断公开机密的信息。

如果将 DSB SYS + ISB 置于两个推测性内存访问中的第一个之前,则可能会使用攻击者提供的机密地址来进行推测性页表遍历,这可能是此错误产生的唯一影响。

这不能导致机密公开。如果将 DSB SYS + ISB 放在这两个推测性存储器访问中的第二个之前(而不是第一个之前),则在由第二个推测性内存访问创建的 TLB 中进行分配可能会公开通过首个内存访问检索到的机密信息 。

变通方法:

如果在此部分中使用 DSB SYS + ISB 来降低 Spectre variant 1 的风险,则必须将其放置在首个推测性内存访问之前,而不是第二个之前。

受影响的配置:

具有 Arm Cortex-A72 (APU) 的所有 Versal 器件。

解决办法:

请参阅此第三方勘误表 (Arm, Inc. 1328359)。不对该问题进行修复。

最新文章

最新文章