Aerosol Posted March 10, 2015 Report Posted March 10, 2015 Sources:http://googleprojectzero.blogspot.ca/2015/03/exploiting-dram-rowhammer-bug-to-gain.htmlhttps://code.google.com/p/google-security-research/issues/detail?id=284Full PoC: http://www.exploit-db.com/sploits/36311.tar.gzThis is a proof-of-concept exploit that is able to escape from NativeClient's x86-64 sandbox on machines that are susceptible to the DRAM"rowhammer" problem. It works by inducing a bit flip in read-onlycode so that the code is no longer safe, producing instructionsequences that wouldn't pass NaCl's x86-64 validator.Note that this uses the CLFLUSH instruction, so it doesn't work innewer versions of NaCl where this instruction is disallowed by thevalidator.There are two ways to test the exploit program without getting a realrowhammer-induced bit flip: * Unit testing: rowhammer_escape_test.c can be compiled and run as a Linux executable (instead of as a NaCl executable). In this case, it tests each possible bit flip in its code template, checking that each is handled correctly. * Testing inside NaCl: The patch "inject_bit_flip_for_testing.patch" modifies NaCl's dyncode_create() syscall to inject a bit flip for testing purposes. This syscall is NaCl's interface for loading code dynamically.Mark Seabornmseaborn@chromium.orgMarch 2015Source Quote