Transient execution CPU vulnerability
Transient execution CPU vulnerabilities are vulnerabilities in a computer system in which a speculative execution optimization implemented in a microprocessor is exploited to leak secret data to an unauthorized party. The classic example is Spectre that gave its name to this kind of side-channel attack, but since January 2018 many different vulnerabilities have been identified.
Overview
Modern computers are highly parallel devices, composed of components with very different performance characteristics. If an operation (such as a branch) cannot yet be performed because some earlier slow operation (such as a memory read) has not yet completed, a microprocessor may attempt to predict the result of the earlier operation and execute the later operation speculatively, acting as if the prediction was correct. The prediction may be based on recent behavior of the system. When the earlier, slower operation completes, the microprocessor determines whether prediction was correct or incorrect. If it was correct then execution proceeds uninterrupted; if it was incorrect then the microprocessor rolls back the speculatively executed operations and repeats the original instruction with the real result of the slow operation. Specifically, a transient instruction[1] refers to an instruction processed by error by the processor (incriminating the branch predictor in the case of Spectre) which can affect the micro-architectural state of the processor, leaving the architectural state without any trace of its execution.
In terms of the directly visible behavior of the computer it is as if the speculatively executed code "never happened". However, this speculative execution may affect the state of certain components of the microprocessor, such as the cache, and this effect may be discovered by careful monitoring of the timing of subsequent operations.
If an attacker can arrange that the speculatively executed code (which may be directly written by the attacker, or may be a suitable gadget that they have found in the targeted system) operates on secret data that they are unauthorized to access, and has a different effect on the cache for different values of the secret data, they may be able to discover the value of the secret data.
Starting in 2017, multiple examples of such vulnerabilities were identified, with publication starting in early 2018.
Vulnerabilities and mitigations summary
Mitigation Type | Comprehensiveness | Effectiveness | Performance Impact |
---|---|---|---|
Hardware | Full | Full | None…Small |
Firmware Microcode Update | Partial | Partial…Full | None…Large |
OS/VMM | Partial | Partial…Full | Small…Large |
Software Recompilation | Poor | Partial…Full | Medium…Large |
Hardware mitigations require change to the CPU design and thus a new iteration of hardware, but impose close to zero performance loss. Microcode updates alter the software that the CPU runs on, requiring patches to be released and integrated into every operating system and for each CPU. OS/VMM mitigations are applied at the operating system or virtual machine level and (depending on workload) often incur quite a significant performance loss. Software recompilation requires recompiling every piece of software and usually incur a severe performance hit.
Vulnerability Name
(aliases) |
CVE | Affected CPU architectures and mitigations | ||||||
---|---|---|---|---|---|---|---|---|
Intel[2] | AMD[3] | |||||||
Ice Lake[4] | Cascade Lake, Comet Lake |
Whiskey Lake, Amber Lake |
Coffee Lake (9th gen)[5] |
Coffee Lake (8th gen)* |
Zen 1 / Zen 1+ | Zen 2[6] | ||
Spectre v1 Bounds Check Bypass |
2017-5753 | Software Recompilation | Software Recompilation[7] | |||||
Spectre v2 Branch Target Injection |
2017-5715 | Hardware + OS | Microcode + OS | Microcode + OS | Microcode + OS/VMM | Hardware + OS/VMM | ||
SpectreRSB[8]/ret2spec[9] Return Mispredict | 2018-15572 | OS[10] | ||||||
Meltdown Rogue Data Cache Load |
2017-5754 | Not affected | Microcode | Not affected | ||||
Spectre-NG v3a | 2018-3640 | Not affected[11] | Microcode | |||||
Spectre-NG v4 Speculative Store Bypass |
2018-3639 | Hardware + OS/VMM[11] | Microcode + OS | OS/VMM | Hardware + OS/VMM | |||
Foreshadow L1 Terminal Fault, L1TF |
2018-3615 | Not affected | Microcode | Not affected | ||||
Spectre-NG Lazy FP State Restore |
2018-3665 | OS/VMM[12] | ||||||
Spectre-NG v1.1 Bounds Check Bypass Store |
2018-3693 | OS/VMM[13] | ||||||
Spectre-NG v1.2 Read-only Protection Bypass (RPB) |
No CVE and has never been confirmed by Intel | Not affected[3] | ||||||
Foreshadow-OS L1 Terminal Fault (L1TF) |
2018-3620 | Not affected | Microcode + OS | Not affected | ||||
Foreshadow-VMM L1 Terminal Fault (L1TF) |
2018-3646 | |||||||
RIDL/ZombieLoad Microarchitectural Fill Buffer Data Sampling (MFBDS) |
2018-12130 | |||||||
RIDL Microarchitectural Load Port Data Sampling (MLPDS) |
2018-12127 | Not affected | Not affected | Not affected | Microcode + OS[14] | |||
RIDL Microarchitectural Data Sampling Uncacheable Memory (MDSUM) |
2019-11091 | Not affected | Microcode + OS | |||||
Fallout Microarchitectural Store Buffer Data Sampling (MSBDS) |
2018-12126 | Microcode[15][16] | Not affected | Not affected | Microcode + OS | |||
Spectre SWAPGS[17][18][19] | 2019-1125 | Same as Spectre 1 | ||||||
RIDL/ZombieLoad v2 Transactional Asynchronous Abort (TAA)[20][21][22] |
2019-11135 | Not Affected[23] | Microcode + OS | |||||
RIDL/CacheOut L1D Eviction Sampling (L1DES)[24][25][26] |
2020-0549 | Not Affected | ||||||
RIDL Vector Register Sampling (VRS)[24][25] |
2020-0548 | |||||||
Load Value Injection (LVI)[27][28][29][30] | 2020-0551 | Software recompilation | ||||||
Take a Way[31][32] | Not affected | Not fixed yet (disputed[33])[34] | ||||||
CROSSTalk Special Register Buffer Data Sampling (SRBDS)[35][36][37] |
2020-0543 | Not affected | Microcode | Not affected | ||||
Blindside[38][39] | Affected, not fixed yet |
The 8th generation Coffee Lake architecture in this table also applies to a wide range of previously released Intel CPUs, not limited to the architectures based on Intel Core, Pentium 4 and Intel Atom starting with Silvermont.[40][41] Various CPU microarchitectures not included above are also affected, among them are IBM Power, ARM, MIPS and others.[42][43][44][45]
Future
Spectre class vulnerabilities will remain unfixed because otherwise CPU designers will have to disable OoOE which will entail a massive performance loss.
Notes
- 1.^ Stepping 5 of the 2nd Generation Intel® Xeon® Scalable Processors based on Cascade Lake microarchitecture is affected by both MSBDS and MLPDS.
References
- Kocher, Paul; Horn, Jann; Fogh, Anders; Genkin, Daniel; Gruss, Daniel. "Spectre Attacks: Exploiting Speculative Execution" (PDF). Retrieved 2020-04-16.
- "Engineering New Protections Into Hardware". Intel. Retrieved 2019-06-12.
- "AMD Product Security | AMD". 2019-08-10. Retrieved 2019-08-10.
- Cutress, Dr Ian. "The Ice Lake Benchmark Preview: Inside Intel's 10nm". www.anandtech.com. Retrieved 2019-08-01.
- online, heise. "Intel Core i9-9900K mit 8 Kernen und 5 GHz für Gamer". heise online (in German). Retrieved 2018-10-09.
- Cutress, Ian. "AMD Zen 2 Microarchitecture Analysis: Ryzen 3000 and EPYC Rome". www.anandtech.com. Retrieved 2019-06-11.
- https://developer.amd.com/wp-content/resources/90343-B_SoftwareTechniquesforManagingSpeculation_WP_7-18Update_FNL.pdf
- "Spectre Returns! Speculation Attacks using the Return Stack Buffer" (PDF). www.usenix.org. Retrieved 2019-08-17.
- Maisuradze, Giorgi; Rossow, Christian (2018). "ret2spec: Speculative Execution Using Return Stack Buffers". Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security. pp. 2109–2122. arXiv:1807.10364. Bibcode:2018arXiv180710364M. doi:10.1145/3243734.3243761. ISBN 9781450356930.
- https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fdf82a7856b32d905c39afc85e34364491e46346
- "Engineering New Protections Into Hardware". Intel. Retrieved 2019-04-28.
- "INTEL-SA-00145". Intel.
- "Bounds Check Bypass Store (BCBS) Vulnerability (INTEL-OSS-10002)". Intel.
- "Intel Deep Dive CPUID Enumeration and Architectural MSRs". Intel. Retrieved 2020-01-02.
- "INTEL-SA-00233". Intel. Retrieved 2020-07-15.
- danielmgmi (2020-07-15), danielmgmi/icebreak, retrieved 2020-07-15
- "Bitdefender SWAPGS Attack Mitigation Solutions". www.bitdefender.com. Retrieved 2019-08-07.
- "Documentation/admin-guide/hw-vuln/spectre.rst - chromiumos/third_party/kernel - Git at Google". chromium.googlesource.com. Retrieved 2019-08-07.
- Winder, Davey (6 August 2019). "Microsoft Confirms New Windows CPU Attack Vulnerability, Advises All Users To Update Now". Forbes. Retrieved 7 August 2019.
- "Cyberus Technology: TSX Asynchronous Abort". www.cyberus-technology.de. Retrieved 2019-11-12.
- at 18:02, Shaun Nichols in San Francisco 12 Nov 2019. "True to its name, Intel CPU flaw ZombieLoad comes shuffling back with new variant". www.theregister.co.uk. Retrieved 2019-11-12.
- Cimpanu, Catalin. "Intel's Cascade Lake CPUs impacted by new Zombieload v2 attack". ZDNet. Retrieved 2019-11-12.
- "Intel Deep Dive TSX Asynchronous Abort". Intel. Retrieved 2020-01-02.
- "MDS Attacks: Microarchitectural Data Sampling". mdsattacks.com. Retrieved 2020-01-27.
- "IPAS: INTEL-SA-00329". Technology@Intel. 2020-01-27. Retrieved 2020-01-28.
- "CacheOut". cacheoutattack.com. Retrieved 2020-01-29.
- at 17:00, Thomas Claburn in San Francisco 10 Mar 2020. "You only LVI twice: Meltdown The Sequel strikes Intel chips – and full mitigation against data-meddling flaw will cost you 50%+ of performance". www.theregister.co.uk. Retrieved 2020-03-10.
- "LVI: Hijacking Transient Execution with Load Value Injection". lviattack.eu. Retrieved 2020-03-10.
- "INTEL-SA-00334". Intel. Retrieved 2020-03-10.
- "Deep Dive: Load Value Injection". software.intel.com. Retrieved 2020-03-10.
- "Take A Way: Exploring the Security Implications of AMD'sCache Way Predictors" (PDF).
- March 2020, Paul Alcorn 07. "New AMD Side Channel Attacks Discovered, Impacts Zen Architecture". Tom's Hardware. Retrieved 2020-03-07.
- Alcorn, Paul (March 9, 2020). "New AMD Side Channel Attacks Discovered, Impacts Zen Architecture (AMD Responds)". Tom's Hardware. Retrieved 2020-06-10.
- Cimpanu, Catalin. "AMD processors from 2011 to 2019 vulnerable to two new attacks". ZDNet. Retrieved 2020-09-11.
- "CROSSTalk". VUSec. Retrieved 2020-06-09.
- "Deep Dive: Special Register Buffer Data Sampling". software.intel.com. Retrieved 2020-06-09.
- "INTEL-SA-00320". Intel. Retrieved 2020-06-09.
- "Don't be BlindSided: Watch speculative memory probing bypass kernel defenses, give malware root control". www.theregister.com. Retrieved 2020-09-11.
- "BlindSide". VUSec. Retrieved 2020-09-11.
- "INTEL-SA-00088". Intel. Retrieved 2018-09-01.
- "INTEL-SA-00115". Intel. Retrieved 2018-09-01.
- "Meltdown and Spectre Status Page". wiki.netbsd.org. Retrieved 2019-09-29.
- Ltd, Arm. "Speculative Processor Vulnerability | Cache Speculation Issues Update". ARM Developer. Retrieved 2019-09-29.
- "About speculative execution vulnerabilities in ARM-based and Intel CPUs". Apple Support. Retrieved 2019-09-29.
- "Potential Impact on Processors in the POWER Family". IBM PSIRT Blog. 2019-05-14. Retrieved 2019-09-29.
External links
- Vulnerabilities associated with CPU speculative execution
- A systematic evaluation of transient execution attacks and defenses
- A dynamic tree of transient execution vulnerabilities for Intel, AMD and ARM CPUs
- Transient Execution Attacks by Daniel Gruss, June 20, 2019
- CPU Bugs
- Intel: Refined Speculative Execution Terminology