  In the last two decades, the evolving cyber-threat landscape has brought to
center stage the contentious tradeoffs between the security and performance of
modern microprocessors. The guarantees provided by the hardware to ensure no
violation of process boundaries have been shown to be breached in several
real-world scenarios. While modern CPU features such as superscalar,
out-of-order, simultaneous multi-threading, and speculative execution play a
critical role in boosting system performance, they are central for a potent
class of security attacks termed transient micro-architectural attacks. These
attacks leverage shared hardware resources in the CPU that are used during
speculative and out-of-order execution to steal sensitive information.
Researchers have used these attacks to read data from the Operating Systems
(OS) and Trusted Execution Environments (TEE) and to even break
hardware-enforced isolation.
  Over the years, several variants of transient micro-architectural attacks
have been developed. While each variant differs in the shared hardware resource
used, the underlying attack follows a similar strategy. This paper presents a
panoramic view of security concerns in modern CPUs, focusing on the mechanisms
of these attacks and providing a classification of the variants. Further, we
discuss state-of-the-art defense mechanisms towards mitigating these attacks.
