CWE-1342: Information Exposure through Microarchitectural State after Transient Execution

BaseIncomplete

The processor does not properly clear microarchitectural state after incorrect microcode assists or speculative execution, resulting in transient execution.

View on MITRE
Back to CWE Lookup

Extended Description

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: incorrect transient execution that results in remanence of sensitive information; attacker has the ability to provoke microarchitectural exceptions; operations and structures in victim code that can be exploited must be identified.

Technical Details

Structure
Simple
Vulnerability Mapping
ALLOWED

Applicable To

Languages
Not Language-Specific
Platforms
Not OS-Specific

Frequently Asked Questions

What is CWE-1342: Information Exposure through Microarchitectural State after Transient Execution?+

CWE-1342: Information Exposure through Microarchitectural State after Transient Execution is a Common Weakness Enumeration (CWE) entry maintained by MITRE. 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: incorrect transient execution that results in remanence of sensitive information; attacker has the ability to provoke microarchitectural exceptions; operations and structures in victim code that can be exploited must be identified.

What are the security consequences of Information Exposure through Microarchitectural State after Transient Execution?+

If exploited, CWE-1342 (Information Exposure through Microarchitectural State after Transient Execution) it can compromise Confidentiality and Integrity, leading to outcomes such as Modify Memory, Read Memory and Execute Unauthorized Code or Commands.

How do you prevent or mitigate Information Exposure through Microarchitectural State after Transient Execution?+

Recommended mitigations for CWE-1342 include: Hardware ensures that no illegal data flows from faulting micro-ops exists at the microarchitectural level. Include instructions that explicitly remove traces of unneeded computations from software interactions with microarchitectural elements e.g. lfence, sfence, mfence, clflush.

Which programming languages are affected by Information Exposure through Microarchitectural State after Transient Execution?+

CWE-1342 commonly affects Not Language-Specific. Note that weaknesses are often language-agnostic patterns, so secure coding practices apply broadly.

What are real-world examples of Information Exposure through Microarchitectural State after Transient Execution?+

MITRE documents real CVEs mapped to CWE-1342, including CVE-2020-0551. You can look up the full details of each CVE, including CVSS scores and remediation guidance, on our CVE Lookup tool.

What is the difference between a CWE and a CVE?+

A CWE (Common Weakness Enumeration) like CWE-1342 describes a category of software weakness — the underlying flaw type. A CVE (Common Vulnerabilities and Exposures) identifies a specific, real-world vulnerability in a particular product. In short, a CWE is the kind of mistake, and a CVE is an instance of that mistake being found in software.

Learn More