Single Instruction Multiple Data Leaks in Cutting-edge CPUs, AKA Downfall
summary
Exploits the x86 SIMD Gather instruction via a new Gather Data Sampling primitive that reads remnants of vector registers; experiments show 2–22 bytes per leak (commonly 16–21) and recovering an AES-128 key in ~13s (AES-256 in minutes). It abuses rep mov and maskmove prefetch behavior to leak arbitrary kernel memory, combines with SGX-step to extract SGX sealing/attestation keys, and works across user/kernel, processes, VMs and enclaves; mitigation is an Intel microcode change that disables speculative forwarding at up to ~50% cost.
AI-written summary · about
chapters (18)
- 0:00Downfall vulnerability intro
- 1:47Gather instruction explained
- 5:00History of microarchitectural leaks
- 7:27Gather data sampling
- 9:11Testing SIMD for leaks
- 10:57Leaked data size and patterns
- 13:49Stealing encryption keys with GDS
- 17:41Demo: AES 128-bit key
- 19:11Demo: AES 256-bit key
- 20:16Arbitrary data via prefetching
- 24:57Demo leaking kernel memory
- 26:11Impact on Intel SGX
- 27:36GDS combined with SGX step
- 29:43Demo: SGX attestation keys
- 30:47Mitigations and performance
- 32:56SGX user recommendations
- 33:19Timeline and status
- 34:01Conclusion
related talks
46mRIDLed with CPU bugs
23mMeltdown: Reading Kernel Memory from User Space
36mStore-to-Leak Forwarding: There and Back Again
43mUsing Undocumented CPU Behavior to See Into Kernel Mode and Break KASLR in the Process
01h 28m“Spectre: Secrets, Side-Channels, Sandboxes, and Security”
54mWhen Good Turns Evil: Using Intel SGX to Stealthily Steal Bitcoins
35mTalk by Adria Gascon (Google)
49mBypassing KPTI Using the Speculative Behavior of the SWAPGS Instruction
