ZombieLoad: Cross-Privilege-Boundary Data Sampling
arXiv:1905.05726
Abstract
In early 2018, Meltdown first showed how to read arbitrary kernel memory from user space by exploiting side-effects from transient instructions. While this attack has been mitigated through stronger isolation boundaries between user and kernel space, Meltdown inspired an entirely new class of fault-driven transient execution attacks. Particularly, over the past year, Meltdown-type attacks have been extended to not only leak data from the L1 cache but also from various other microarchitectural structures, including the FPU register file and store buffer. In this paper, we present the ZombieLoad attack which uncovers a novel Meltdown-type effect in the processor's previously unexplored fill-buffer logic. Our analysis shows that faulting load instructions (i.e., loads that have to be re-issued for either architectural or microarchitectural reasons) may transiently dereference unauthorized destinations previously brought into the fill buffer by the current or a sibling logical CPU. Hence, we report data leakage of recently loaded stale values across logical cores. We demonstrate ZombieLoad's effectiveness in a multitude of practical attack scenarios across CPU privilege rings, OS processes, virtual machines, and SGX enclaves. We discuss both short and long-term mitigation approaches and arrive at the conclusion that disabling hyperthreading is the only possible workaround to prevent this extremely powerful attack on current processors.
References in corpus (7)
- SgxPectre Attacks: Stealing Intel Secrets from SGX Enclaves via Speculative Execution
- Speculative Buffer Overflows: Attacks and Defenses
- LazyFP: Leaking FPU Register State using Microarchitectural Side-Channels
- SPOILER: Speculative Load Hazards Boost Rowhammer and Cache Attacks
- Fallout: Reading Kernel Writes From User Space
- oo7: Low-overhead Defense against Spectre Attacks via Program Analysis
- CacheZoom: How SGX Amplifies The Power of Cache Attacks
Cited by in corpus (13)
- SGX-LKL: Securing the Host OS Interface for Trusted Execution
- FortuneTeller: Predicting Microarchitectural Attacks via Unsupervised Deep Learning
- Keystone: An Open Framework for Architecting TEEs
- ConTExT: Leakage-Free Transient Execution
- Hardware Security for and beyond CMOS Technology
- Confidential Inference via Ternary Model Partitioning
- Reflections on trusting distributed trust
- BliMe: Verifiably Secure Outsourced Computation with Hardware-Enforced Taint Tracking
- Shredder: Learning Noise Distributions to Protect Inference Privacy
- TurboCC: A Practical Frequency-Based Covert Channel With Intel Turbo Boost
- CROSSLINE: Breaking "Security-by-Crash" based Memory Isolation in AMD SEV
- SPEECHMINER: A Framework for Investigating and Measuring Speculative Execution Vulnerabilities
- InSpectre: Breaking and Fixing Microarchitectural Vulnerabilities by Formal Analysis