Non-Transparent Sharing of Microarchitectural Resources

Draft Base
Structure: Simple
Description

This vulnerability occurs when a processor's internal performance features, like caches and branch predictors, are unintentionally shared between different software contexts. This breaks the expected isolation, allowing data to leak across security boundaries.

Extended Description

Modern CPUs use performance-boosting techniques like out-of-order execution, speculation, and caching. The problem is that the hardware implementation of these features often shares physical resources between apps, virtual machines, or security domains in ways not documented in the architecture. Since this sharing is invisible to software, it creates hidden communication channels that malicious programs can exploit to steal sensitive information from other contexts. Attackers have leveraged shared resources like CPU caches, branch prediction buffers, and load-store queues to build these covert channels. Speculative execution further amplifies the risk by giving attackers more precise control over what data gets leaked. Without clear documentation on how these microarchitectural resources are shared, it's nearly impossible for developers and system designers to guarantee protection against such side-channel attacks.

Common Consequences 1
Scope: Confidentiality

Impact: Read Application DataRead Memory

Microarchitectural side-channels have been used to leak specific information such as cryptographic keys, and Address Space Layout Randomization (ALSR) offsets as well as arbitrary memory.

Potential Mitigations 2
Phase: Architecture and Design
Microarchitectural covert channels can be addressed using a mixture of hardware and software mitigation techniques. These include partitioned caches, new barrier and flush instructions, and disabling high resolution performance counters and timers.
Phase: Requirements
Microarchitectural covert channels can be addressed using a mixture of hardware and software mitigation techniques. These include partitioned caches, new barrier and flush instructions, and disabling high resolution performance counters and timers.
Demonstrative Examples 1
On some processors the hardware indirect branch predictor is shared between execution contexts, for example, between sibling SMT threads. When SMT thread A executes an indirect branch to a target address X, this target may be temporarily stored by the indirect branch predictor. A subsequent indirect branch mis-prediction for SMT thread B could speculatively execute instructions at X (or at a location in B's address space that partially aliases X). Even though the processor rolls back the architectural effects of the mis-predicted indirect branch, the memory accesses alter data cache state, which is not rolled back after the indirect branch is resolved.
References 4
Meltdown: Reading Kernel Memory from User Space
Moritz Lipp, Michael Schwarz, Daniel Gruss, Thomas Prescher, Werner Haas, Anders Fogh, Jann Horn, Stegfan Mangard, Paul Kocher, Daniel Genkin, Yuval Yarom, and Mike Hamberg
03-01-2018
ID: REF-1121
Spectre Attacks: Exploiting Speculative Execution
Moritz Lipp, Michael Schwarz, Daniel Gruss, Thomas Prescher, Werner Haas, Anders Fogh, Jann Horn, Stegfan Mangard, Paul Kocher, Daniel Genkin, Yuval Yarom, and Mike Hamberg
03-01-2018
ID: REF-1122
Jump Over ASLR: Attacking Branch Predictors to Bypass ASLR
Dmitry Evtyushkin, Dmitry Ponomarev, and Nael Abu-Ghazaleh
19-10-2016
ID: REF-1123
A Survey of Microarchitectural Timing Attacks and Countermeasures on Contemporary Hardware
Qian Ge, Yuval Yarom, David Cock, and Gernot Heiser
24-10-2016
ID: REF-1124
Applicable Platforms
Languages:
Not Language-Specific : Undetermined
Technologies:
Not Technology-Specific : Undetermined
Modes of Introduction
Architecture and Design
Implementation
Notes
MaintenanceAs of CWE 4.9, members of the CWE Hardware SIG are closely analyzing this entry and others to improve CWE's coverage of transient execution weaknesses, which include issues related to Spectre, Meltdown, and other attacks. Additional investigation may include other weaknesses related to microarchitectural state. Finally, this entry's demonstrative example might not be appropriate. As a result, this entry might change significantly in CWE 4.10.