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.
Abstraction
Base
Structure
Simple
Likelihood of Exploit
Medium
Understand the problem
What is the problem?
Extended description
Root cause
How and when does the problem arise?
Lifecycle phase
Architecture and Design
Lifecycle phase
Implementation
Lifecycle phase
System Configuration
Lifecycle phase
Architecture and Design
Risk
What does successful exploitation lead to?
Affected security scopes: Confidentiality
Defence
How is it prevented and fixed?
Architecture and Design
Architecture and design approach
Detail
Architecture and Design
Architecture and design approach
Effectiveness: High
Architecture and Design
Architecture and design approach
Detail
Architecture and Design
Architecture and design approach
Effectiveness: Moderate
This can be highly effective at preventing this weakness from being exposed across different SMT threads or different processor cores. It is generally less practical to isolate these resources between different contexts (for example, user and kernel) that may execute on the same SMT thread or processor core.
Architecture and Design
Architecture and design approach
Detail
Architecture and Design
Architecture and design approach
Effectiveness: Moderate
Sanitizing shared state on context transitions may not be practical for all processors, especially when the amount of shared state affected by the weakness is relatively large. Additionally, this technique may not be practical unless there is a synchronous transition between two processor contexts that would allow the affected resource to be sanitized. For example, this technique alone may not suffice to mitigate asynchronous access to a resource that is shared by two SMT threads.
Architecture and Design
Architecture and design approach
Detail
Architecture and Design
Architecture and design approach
Effectiveness: Limited
This technique has many pitfalls. For example, InvisiSpec was an early attempt to mitigate this weakness by blocking "micro-architectural covert and side channels through the multiprocessor data cache hierarchy due to speculative loads" [REF-1417]. Commodity processors and SoCs have many covert and side channels that exist outside of the data cache hierarchy. Even when some of these channels are blocked, others (such as execution ports [REF-1418]) may allow an attacker to infer confidential data. Mitigation strategies that attempt to prevent transient execution from causing observable discrepancies also have other pitfalls, for example, see [REF-1419].
Architecture and Design
Architecture and design approach
Detail
Architecture and Design
Architecture and design approach
Effectiveness: Limited
Isolating different contexts across a process boundary (or another kind of architectural boundary) may only be effective for some weaknesses.
Build and Compilation
Build and Compilation aşaması savunması
Detail
Build and Compilation
Build and Compilation aşaması savunması
Effectiveness: Limited
This technique may only be fully effective if it is applied to all software that runs on the system. Also, relatively few observed examples of this weakness have exposed data through only a single instruction.
Build and Compilation
Build and Compilation aşaması savunması
Detail
Build and Compilation
Build and Compilation aşaması savunması
Effectiveness: Incidental
Some transient execution weaknesses can be exploited even if a single instruction is executed transiently after a processor event or mis-prediction. This mitigation strategy has many other pitfalls that prevent it from eliminating this weakness entirely. For example, see [REF-1389].
Implementation
Implementation-phase defence
Detail
Implementation
Implementation-phase defence
Effectiveness: Limited
This technique may not be able to mitigate weaknesses that arise from resource sharing across SMT threads.
System Configuration
Secure configuration approach
Detail
System Configuration
Secure configuration approach
Effectiveness: Limited
Disabling resource sharing (for example, by disabling SMT) may result in significant performance overhead.
System Configuration
Secure configuration approach
Detail
System Configuration
Secure configuration approach
Effectiveness: Limited
Disabling microarchitectural features such as predictors may result in significant performance overhead.
Patching and Maintenance
Patching and Maintenance aşaması savunması
Detail
Patching and Maintenance
Patching and Maintenance aşaması savunması
Effectiveness: Moderate
This technique may not be able to mitigate weaknesses that arise from resource sharing across SMT threads.
Patching and Maintenance
Patching and Maintenance aşaması savunması
Detail
Patching and Maintenance
Patching and Maintenance aşaması savunması
Effectiveness: Limited
Requirements
Security requirement
Detail
Requirements
Security requirement
Effectiveness: Defense in Depth
Specific software algorithms can be used by an attacker to compensate for a lack of a high-resolution time source [REF-1420].
Verification
How is it detected?
Manual Analysis
ModerateManual analysis may not reveal all weaknesses in a processor specification and should be combined with other detection methods to improve coverage.
Automated Analysis
ModerateAutomated static or dynamic taint analysis may not reveal all weaknesses in a processor specification and should be combined with other detection methods to improve coverage.
Automated Analysis
HighThis method can be useful for detecting whether a processor if affected by known weaknesses, but it may not be useful for detecting unknown weaknesses.
Fuzzing
OpportunisticFuzzing may not reveal all weaknesses in a processor specification and should be combined with other detection methods to improve coverage.