Researchers have devised an attack that exploits physical weaknesses in certain types of DDR memory chips to elevate the system rights of untrusted users of Intel-compatible PCs running Linux.
“Rowhammer” is a problem with some recent DRAM devices in which repeatedly accessing a row of memory can cause bit flips in adjacent rows.
One exploit uses rowhammer-induced bit flips to gain kernel privileges on x86-64 Linux when run as an unprivileged userland process. When run on a machine vulnerable to the rowhammer problem, the process was able to induce bit flips in page table entries (PTEs).
It was able to use this to gain write access to its own page table, and hence gain read-write access to all of physical memory.
Google don’t know for sure how many machines are vulnerable to this attack, or how many existing vulnerable machines are fixable. They exploit uses the x86 CLFLUSH instruction to generate many accesses to the underlying DRAM, but other techniques might work on non-x86 systems too.
A blog post published earlier this week explained that the bit flipping technique flagged up last year has been used in a successful attack by researchers who were able to reverse the individual bits of data stored in DDR3 chip modules that are called DIMMs.
Bit flipping works when attackers repeatedly hammer small parts of the memory hundreds of thousands of times in just a few milliseconds. By hammering the two "aggressor" memory regions the attacker can then reverse one of more bits in the third "victim" region and exploit that to change the administrator privileges on the target PC.
It affects newer versions of DDR3 memory that are able to be exploited thanks to the shrinking size of silicon that makes it easier to trigger electronic interaction between neighbouring cells. By repeatedly accessing the location, as mentioned earlier, attackers can cause a leak in or out of the adjacent cells.
They demonstrate that, by repeatedly accessing two “aggressor” memory locations within the process’s virtual address space, they can cause bit flips in a third, “victim” location.
The victim location is potentially outside the virtual address space of the process — it is in a different DRAM row from the aggressor locations, and hence in a different 4k page
This works because DRAM cells have been getting smaller and closer together. As DRAM manufacturing scales down chip features to smaller physical dimensions, to fit more memory capacity onto a chip, it has become harder to prevent DRAM cells from interacting electrically with each other.
As a result, accessing one location in memory can disturb neighbouring locations, causing charge to leak into or out of neighbouring cells. With enough accesses, this can change a cell’s value from 1 to 0 or vice versa.
“Rowhammer” is a problem with some recent DRAM devices in which repeatedly accessing a row of memory can cause bit flips in adjacent rows.
One exploit uses rowhammer-induced bit flips to gain kernel privileges on x86-64 Linux when run as an unprivileged userland process. When run on a machine vulnerable to the rowhammer problem, the process was able to induce bit flips in page table entries (PTEs).
It was able to use this to gain write access to its own page table, and hence gain read-write access to all of physical memory.
Google don’t know for sure how many machines are vulnerable to this attack, or how many existing vulnerable machines are fixable. They exploit uses the x86 CLFLUSH instruction to generate many accesses to the underlying DRAM, but other techniques might work on non-x86 systems too.
A blog post published earlier this week explained that the bit flipping technique flagged up last year has been used in a successful attack by researchers who were able to reverse the individual bits of data stored in DDR3 chip modules that are called DIMMs.
Bit flipping works when attackers repeatedly hammer small parts of the memory hundreds of thousands of times in just a few milliseconds. By hammering the two "aggressor" memory regions the attacker can then reverse one of more bits in the third "victim" region and exploit that to change the administrator privileges on the target PC.
It affects newer versions of DDR3 memory that are able to be exploited thanks to the shrinking size of silicon that makes it easier to trigger electronic interaction between neighbouring cells. By repeatedly accessing the location, as mentioned earlier, attackers can cause a leak in or out of the adjacent cells.
They demonstrate that, by repeatedly accessing two “aggressor” memory locations within the process’s virtual address space, they can cause bit flips in a third, “victim” location.
The victim location is potentially outside the virtual address space of the process — it is in a different DRAM row from the aggressor locations, and hence in a different 4k page
This works because DRAM cells have been getting smaller and closer together. As DRAM manufacturing scales down chip features to smaller physical dimensions, to fit more memory capacity onto a chip, it has become harder to prevent DRAM cells from interacting electrically with each other.
As a result, accessing one location in memory can disturb neighbouring locations, causing charge to leak into or out of neighbouring cells. With enough accesses, this can change a cell’s value from 1 to 0 or vice versa.