CWE-1420
Exposure of Sensitive Information during Transient Execution
A processor event or prediction may allow incorrect operations (or correct operations with incorrect data) to execute transiently, potentially exposing data over a covert channel.
Soyutlama
Base
Yapı
Simple
Sömürü İhtimali
Medium
Problemi anla
Problem nedir?
Genişletilmiş açıklama
Kök neden
Problem nasıl ve ne zaman oluşur?
Yaşam döngüsü evresi
Architecture and Design
Yaşam döngüsü evresi
Implementation
Risk
Başarılı sömürü neye yol açar?
Etkilenen güvenlik alanları: Confidentiality
Savunma
Nasıl önlenir ve çözülür?
Architecture and Design
Mimari ve tasarım yaklaşımı
Detay
Architecture and Design
Mimari ve tasarım yaklaşımı
Etkinlik: 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].
Requirements
Güvenlik gereksinimi
Detay
Requirements
Güvenlik gereksinimi
Etkinlik: Moderate
Instructions or features that constrain transient execution or suppress its side effects may impact performance.
Requirements
Güvenlik gereksinimi
Detay
Requirements
Güvenlik gereksinimi
Etkinlik: Limited
Disabling specific predictors or other hardware features may result in significant performance overhead.
Requirements
Güvenlik gereksinimi
Detay
Requirements
Güvenlik gereksinimi
Etkinlik: 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].
Build and Compilation
Build and Compilation aşaması savunması
Detay
Build and Compilation
Build and Compilation aşaması savunması
Etkinlik: High
Build and Compilation
Build and Compilation aşaması savunması
Detay
Build and Compilation
Build and Compilation aşaması savunması
Etkinlik: Moderate
When used to comprehensively mitigate a transient execution weakness (for example, by inserting an LFENCE after every instruction in a program), serialization instructions can introduce significant performance overhead. On the other hand, when used to mitigate only a relatively small number of high-risk code sequences, serialization instructions may have a low or negligible impact on performance.
Build and Compilation
Build and Compilation aşaması savunması
Detay
Build and Compilation
Build and Compilation aşaması savunması
Etkinlik: Moderate
Some CFI techniques may not be able to constrain transient execution, even though they are effective at constraining architectural execution. Or they may be able to provide some additional protection against a transient execution weakness, but without comprehensively mitigating the weakness. For example, Clang-CFI provides strong architectural CFI properties and can make some transient execution weaknesses more difficult to exploit [REF-1398].
Build and Compilation
Build and Compilation aşaması savunması
Detay
Build and Compilation
Build and Compilation aşaması savunması
Etkinlik: Limited
This technique may only be effective for software that is compiled with this mitigation. For some transient execution weaknesses, this technique may not be sufficient to protect software that is compiled without the affected instruction(s). For example, see CWE-1421.
Build and Compilation
Build and Compilation aşaması savunması
Detay
Build and Compilation
Build and Compilation aşaması savunması
Etkinlik: Limited
Address masking and related software mitigation techniques have been used to harden specific code sequences that could potentially be exploited via transient execution. For example, the Linux kernel makes limited use of manually inserted address masks to mitigate bounds-check bypass [REF-1390]. Compiler-based techniques have also been used to automatically harden software [REF-1425].
Build and Compilation
Build and Compilation aşaması savunması
Detay
Build and Compilation
Build and Compilation aşaması savunması
Etkinlik: 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].
Documentation
Documentation aşaması savunması
Detay
Documentation
Documentation aşaması savunması
Etkinlik: High
Doğrulama
Nasıl tespit edilir?
Manual Analysis
ModerateHardware 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. Manual analysis may not reveal all weaknesses in a processor specification and should be combined with other detection methods to improve coverage.
Fuzzing
OpportunisticFuzzing may not reveal all weaknesses in a processor specification and should be combined with other detection methods to improve coverage.
Fuzzing
OpportunisticAt the time of this writing, publicly available software fuzzing tools can only detect a subset of transient execution weaknesses in software (for example, [REF-1429] can only detect instances of Spectre v1) and may produce false positives.
Automated Static Analysis
LimitedAt the time of this writing, publicly available software static analysis tools can only detect a subset of transient execution weaknesses in software and may produce false positives.
Automated Analysis
HighThis method can be useful for detecting whether a processor is affected by known weaknesses, but it may not be useful for detecting unknown weaknesses.