Weakness (CWE)
CWE-1421: Exposure of Sensitive Information in Shared Microarchitectural Structures during Transient Execution
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.
More detail
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.
How to prevent it (8 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.
Source: MITRE CWE-1421
4 results · Clear filters · Feed
-
Medium 5.6
A transient execution vulnerability in some AMD processors may allow an attacker to infer data in the L1D cache, potent…
-
Medium 5.6
A transient execution vulnerability in some AMD processors may allow an attacker to infer data from previous stores, po…
-
Medium 5.6
Exposure of Sensitive Information in Shared Microarchitectural Structures during Transient Execution for some Intel(R) …
-
Medium 6.7
Dell Edge Gateway 3200, versions prior to 15.40.30.2879, and Edge Gateway 5200, versions prior to 12.0.94.2380, contain…