Meltdown: Reading Kernel Memory from User Space
📜 Abstract
The security of computer systems fundamentally relies on memory isolation, e.g., kernel address ranges are marked as non-accessible and are protected from user access. In this paper, we present Meltdown. Meltdown exploits side effects of out-of-order execution on modern processors to read arbitrary kernel-memory locations including personal data and passwords. Out-of-order execution is an indispensable performance feature and present in a wide range of modern processors. The attack is independent of the operating system, and it does not rely on any software vulnerabilities. Meltdown breaks all security guarantees provided by address space isolation as well as paravirtualized environments and, thus, every security mechanism building upon this foundation. On affected systems, Meltdown enables an adversary to read memory of other processes or virtual machines in the cloud without any permissions or privileges, affecting millions of customers and virtually every user of a personal computer. We show that the KAISER defense mechanism for KASLR has the important (but inadvertent) side effect of impeding Meltdown. We stress that KAISER must be deployed immediately to prevent large-scale exploitation of this severe information leakage.
✨ Summary
Impact
The paper established that transient, out-of-order execution could violate the practical security boundary between user and kernel memory through a cache-based covert channel. Its most direct industry impact was the adoption of address-space separation mitigations: Linux developed KAISER into Kernel Page-Table Isolation (KPTI/PTI), while Microsoft implemented the related KVA Shadow approach. (kernel.org)
The work also helped establish transient-execution security as a research area. Subsequent research examined the performance costs of Spectre/Meltdown mitigations, synthesized related attacks such as MeltdownPrime, and investigated Meltdown-like leakage on processors designed to resist the original attack. (arxiv.org)