RAMBleed: Reading Bits in Memory Without Accessing Them Andrew Kwong Daniel Genkin Daniel Gruss Yuval Yarom University of Michigan University of Michigan Graz University of Technology University of Adelaide and Data61
[email protected] [email protected] [email protected] [email protected] Abstract—The Rowhammer bug is a reliability issue in DRAM directly access the changed memory location, the change is cells that can enable an unprivileged adversary to flip the values not visible to the processor or the operating system, and is of bits in neighboring rows on the memory module. Previous not subject to any permission checks. Thus far, this ability to work has exploited this for various types of fault attacks across security boundaries, where the attacker flips inaccessible bits, reliably flip bits across security boundaries has been exploited often resulting in privilege escalation. It is widely assumed for sandbox escapes [21, 57], privilege escalation attacks on however, that bit flips within the adversary’s own private memory operating systems and hypervisors [21, 23, 53, 57, 63, 66], have no security implications, as the attacker can already modify denial-of-service attacks [23, 30], and even for fault injection its private memory via regular write operations. in cryptographic protocols [6]. We demonstrate that this assumption is incorrect by employing Rowhammer as a read side channel. More specifically, we show A common theme for all past Rowhammer attacks is how an unprivileged attacker can exploit the data dependence that they break memory integrity. Namely, the attacker uses between Rowhammer-induced bit flips and the bits in nearby Rowhammer to obtain a (limited) write primitive into oth- rows to deduce these bits, including values belonging to other erwise inaccessible memory, and subsequently modifies the processes.