Google's team of expert hackers at Project Zero have uncovered a serious security problem lurking in modern DRAM devices - and one that the hardware industry may have written off as a reliability issue.
Project Zero has called on kit makers to provide more information about efforts to mitigate the so-called 'rowhammer' problem, which researchers at Carnegie Mellon and Intel drew attention to in a paper last year called "Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors".
The researchers found that as DRAM cells have shrunk, it has become harder to isolate memory in one address from corrupting data stored in another. They demonstrated that repeated toggling of a DRAM row's wordline - known as rowhammering - "stresses inter-cell coupling effects that accelerate charge leakage from nearby rows", resulting in 'bit flips' where a cell's value changes from 1 to 0 or vice versa.
The issue was found to affect DRAM from three major vendors, suggesting to the researchers that many systems in use today are likely to be at risk.
Google's Project Zero team have refined the researchers' work, proving that the rowhammer issue is exploitable on numerous x86 laptops. The group has developed two working exploits that use bit flips in DRAM to gain privilege escalation.
"One exploit uses rowhammer-induced bit flips to gain kernel privileges on x86-64 Linux when run as an unprivileged userland process," Google engineer Mark Seaborn said. "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."
In the Linux test case, the exploit induced bit flips in page table entries (PTEs). However, Seaborn noted that the PTE-based exploit can be applied to non-Linux machines.
"We don't know for sure how many machines are vulnerable to this attack, or how many existing vulnerable machines are fixable," he said.
The second is a sandbox escape from Google's browser sandbox, Native Client (NaCl), and acquires the ability to call the host OS's syscalls directly. Google has fixed this in Chrome versions 38 and 39 by changing NaCl to disallow the CLFLUSH instruction.
The refinements that Google's researchers made to the original rowhammer attack deal with how an attacker would more efficiently select the addresses to hammer.
The group tested the exploits across 29 different x86 laptop models that were built between 2010 and 2014, finding that it could induce bit flips on about half of them.
Given that only 29 devices were tested, the company opted not to reveal the names of the devices. And while it only induced bit flips on half of the tested devices, Seaborn noted that its testing had not been thorough enough to rule them out as not vulnerable. Also, all the machines tested were DDR3 DRAM.
The next generation LPDDR4 standard for DRAM, however, contains two rowhammer mitigations.
"Some of the newer models of laptops that we tested did not exhibit bit flips. A possible explanation is that these laptops implement some rowhammer mitigations," Seaborn said.
Google's Project Zero is looking at the rowhammer bug as a way to draw hardware manufacturers into the software world's process of "public discussion and disclosure". While different forms of disclosure have been debated for years, recently a debate about best practice flared up between Google and Microsoft, due to the former's rigid disclosure policy.
"We encourage vendors to publicly release information about past, current, and future devices so that security researchers, and the public at large, can evaluate them with reference to the rowhammer problem," noted Seaborn.
Read more on security