不正なマイクロコードのアシストや投機的実行の後、プロセッサがマイクロアーキテクチャの状態を適切にクリアせず、過渡的な実行が発生する。
多くのプロセッサ・アーキテクチャでは、例外、誤仕様、またはマイクロコード・アシストにより、フラッシュ動作が行われ、不要になった結果が消去される。この動作により、これらの結果がソフトウェアから見えるように意図されたアーキテクチャの状態に影響を与えることがなくなります。しかし、この一時的な実行の痕跡がマイクロアーキテクチャのバッファに残り、その結果、マイクロアーキテクチャの状態が変化して、サイドチャネル解析を使用する攻撃者に機密情報が暴露される可能性があります。例えば、ロード・バリュー・インジェクション(LVI) [REF-1202]は、中間のロード・バッファとストア・バッファに誤った値を直接注入することを悪用します。
攻撃を成功させるには、いくつかの条件を満たす必要があります:
The processor does not properly clear microarchitectural state after incorrect microcode assists or speculative execution, resulting in transient execution.
In many processor architectures an exception, mis-speculation, or microcode assist results in a flush operation to clear results that are no longer required. This action prevents these results from influencing architectural state that is intended to be visible from software. However, traces of this transient execution may remain in microarchitectural buffers, resulting in a change in microarchitectural state that can expose sensitive information to an attacker using side-channel analysis. For example, Load Value Injection (LVI) [REF-1202] can exploit direct injection of erroneous values into intermediate load and store buffers.
Several conditions may need to be fulfilled for a successful attack: