Hardware Security

What is the principle behind the speculative execution vulnerability known as Spectre?

  1. AA CPU arithmetic error changes the results of additions
  2. BInstructions executed speculatively along a predicted branch are rolled back, but their traces in the cache remain and can be read by timing measurements
  3. CSpeculative execution overheats the CPU
Show answer and explanation

Answer: B. Instructions executed speculatively along a predicted branch are rolled back, but their traces in the cache remain and can be read by timing measurements

CPUs execute instructions on the predicted side of a branch before its outcome is known and discard the results if the prediction was wrong. In Spectre, an attacker trains the predictor to mispredict, so a path that should never execute reads secret data and loads a cache location that depends on its value. The results are discarded but the cache state is not restored, so the value can be inferred through a cache side channel.

  • A. Computational results are correctly rolled back.
  • B. Correct. A performance feature leaves traces.
  • C. It is not a temperature problem.
Practice this topic Back to topic

More Hardware Security questions

  1. Why does information still leak in attacks like Spectre even though speculatively executed instructions are rolled back?
  2. What is the principle of the vulnerability called Meltdown, which affected some CPUs?
  3. What is the idea behind KPTI (kernel page-table isolation), introduced as a software countermeasure to Meltdown?
  4. Which is NOT used as a countermeasure to speculative-execution vulnerabilities such as Spectre?
  5. Which statement about countermeasures to speculative-execution vulnerabilities is generally correct?