CWEweakness
CWE-1421 Exposure of Sensitive Information in Shared Microarchitectural Structures during Transient Execution
- Abstraction
- Base
- Structure
- Simple
- Status
- Incomplete
- Languages
- Not Language-Specific
- CWE version
- 5.0
Description
A processor event may allow transient operations to access
architecturally restricted data (for example, in another address
space) in a shared microarchitectural structure (for example, a CPU
cache), potentially exposing the data over a covert channel.
Extended description
Many commodity processors have Instruction Set Architecture (ISA)
features that protect software components from one another. These
features can include memory segmentation, virtual memory, privilege
rings, trusted execution environments, and virtual machines, among
others. For example, virtual memory provides each process with its own
address space, which prevents processes from accessing each other's
private data. Many of these features can be used to form
hardware-enforced security boundaries between software components.
Many commodity processors also share microarchitectural resources that
cache (temporarily store) data, which may be confidential. These
resources may be shared across processor contexts, including across
SMT threads, privilege rings, or others.
When transient operations allow access to ISA-protected data in a
shared microarchitectural resource, this might violate users'
expectations of the ISA feature that is bypassed. For example, if
transient operations can access a victim's private data in a shared
microarchitectural resource, then the operations' microarchitectural
side effects may correspond to the accessed data. If an attacker can
trigger these transient operations and observe their side effects
through a covert channel [REF-1400], then the attacker may be able to infer the
victim's private data. Private data could include sensitive program
data, OS/VMM data, page table data (such as memory addresses), system
configuration data (see Demonstrative Example 3), or any other data
that the attacker does not have the required privileges to access.
Common consequences
• Confidentiality: Read Memory
Potential mitigations
• [Architecture and Design] Hardware designers may choose to engineer the processor's
pipeline to prevent architecturally restricted data from being used by
operations that can execute transiently.
• [Architecture and Design] Hardware designers may choose not to share
microarchitectural resources that can contain sensitive data, such as
fill buffers and store buffers.
• [Architecture and Design] Hardware designers may choose to sanitize specific
microarchitectural state (for example, store buffers) when the
processor transitions to a different context, such as whenever a
system call is invoked. Alternatively, the hardware may expose
instruction(s) that allow software to sanitize microarchitectural
state according to the user or system administrator's threat
model. These mitigation approaches are similar to those that address
CWE-226; however, sanitizing microarchitectural state may not be the
optimal or best way to mitigate this weakness on every processor
design.
• [Architecture and Design] The hardware designer can attempt to prevent transient
execution from causing observable discrepancies in specific covert
channels.
• [Architecture and Design] Software architects may design software to enforce strong
isolation between different contexts. For example, kernel page table
isolation (KPTI) mitigates the Meltdown vulnerability [REF-1401] by
separating user-mode page tables from kernel-mode page tables, which
prevents user-mode processes from using Meltdown to transiently access
kernel memory [REF-1404].
• [Build and Compilation] If the weakness is exposed by a single instruction (or a
small set of instructions), then the compiler (or JIT, etc.) can be
configured to prevent the affected instruction(s) from being
generated, and instead generate an alternate sequence of instructions
that is not affected by the weakness.
• [Build and Compilation] Use software techniques (including the use of
serialization instructions) that are intended to reduce the number of
instructions that can be executed transiently after a processor event
or misprediction.
• [Implementation] System software can mitigate this weakness by invoking
state-sanitizing operations when switching from one context to
another, according to the hardware vendor's recommendations.
• [System Configuration] Some systems may allow the user to disable (for example,
in the BIOS) sharing of the affected resource.
• [System Configuration] Some systems may allow the user to disable (for example,
in the BIOS) microarchitectural features that allow transient access
to architecturally restricted data.
• [Patching and Maintenance] The hardware vendor may provide a patch to sanitize the
affected shared microarchitectural state when the processor
transitions to a different context.
• [Patching and Maintenance] This kind of patch may not be feasible or
implementable for all processors or all weaknesses.
• [Requirements] Processor designers, system software vendors, or other
agents may choose to restrict the ability of unprivileged software to
access to high-resolution timers that are commonly used to monitor
covert channels.
Detection methods
• Manual Analysis: This weakness can be detected in hardware by
manually inspecting processor specifications. Features that exhibit
this weakness may include microarchitectural predictors, access
control checks that occur out-of-order, or any other features that can
allow operations to execute without committing to architectural
state. Academic researchers have demonstrated that new hardware
weaknesses can be discovered by examining publicly available patent
filings, for example [REF-1405] and [REF-1406]. Hardware designers can also scrutinize aspects of the instruction set
architecture that have undefined behavior; these can become a focal point when applying other
detection methods.
• Automated Analysis: This weakness can be detected (pre-discovery) in hardware by
employing static or dynamic taint analysis methods [REF-1401]. These
methods can label data in one context (for example, kernel data) and
perform information flow analysis (or a simulation, etc.) to determine
whether tainted data can appear in another context (for example, user
mode). Alternatively, stale or invalid data in shared
microarchitectural resources can be marked as tainted, and the taint
analysis framework can identify when transient operations encounter
tainted data.
• Automated Analysis: Software vendors can release tools that detect
presence of known weaknesses (post-discovery) on a processor. For example, some of
these tools can attempt to transiently execute a vulnerable code
sequence and detect whether code successfully leaks data in a manner
consistent with the weakness under test. Alternatively, some hardware
vendors provide enumeration for the presence of a weakness (or lack of
a weakness). These enumeration bits can be checked and reported by
system software. For example, Linux supports these checks for many
commodity processors:
$ cat /proc/cpuinfo | grep bugs | head -n 1
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs taa itlb_multihit srbds mmio_stale_data retbleed
• Fuzzing: Academic researchers have demonstrated that this
weakness can be detected in hardware using software fuzzing
tools that treat the underlying hardware as a black box
([REF-1406], [REF-1430])
Observed examples
• CVE-2017-5715: A fault may allow transient user-mode operations to
access kernel data cached in the L1D, potentially exposing the data
over a covert channel.
• CVE-2018-3615: A fault may allow transient non-enclave operations to
access SGX enclave data cached in the L1D, potentially exposing the
data over a covert channel.
• CVE-2019-1135: A TSX Asynchronous Abort may allow transient operations
to access architecturally restricted data, potentially exposing the
data over a covert channel.
Related
Observed example · not in database (1)
Observed example · CVE (2)
- CVE-2018-3615 Systems with microprocessors utilizing speculative execution and Intel software guard extensions (Intel SGX) may allow unauthorized… vulnerability
- CVE-2017-5715 Systems with microprocessors utilizing speculative execution and indirect branch prediction may allow unauthorized disclosure of… vulnerability
Child of · CWE (1)
- CWE-1420 Exposure of Sensitive Information during Transient Execution weakness
Referenced by CWE · has member (1)
- CWE-1432 Weaknesses in the 2025 CWE Most Important Hardware Weaknesses List view