Spectre [1]}, [2]}, [3]}, [4]}, [5]}, [6]}, [7]}
is a recently discovered family of vulnerabilities
due to speculative execution on modern processors.
Spectre allows attackers to learn sensitive information by causing
the processor to mispredict the targets
of control flow (e.g., conditional jumps or indirect calls) or data flow
(e.g., aliasing or value forwarding).
When the processor learns that its prediction was wrong,
it rolls back execution, erasing the programmer-visible effects
of the speculation.
However,
microarchitectural state—such as the state of the data cache—is
still modified during speculative execution; these changes can be
leaked during speculation and can persist even after rollback.
As a result, the attacker can recover sensitive information from the
microarchitectural state, even if the sensitive information was only
speculatively accessed.
