Jump to content

Note: Please credit WereCat for OP if this goes on the WAN show, not me.

Like they say, if a hacker has hardware access you're screwed

http://arstechnica.com/security/2015/03/cutting-edge-hack-gives-super-user-status-by-exploiting-dram-weakness/

rest of old OP

The technique, outlined in a blog post published Monday

by Google's Project Zero security initiative, works by reversing individual bits of data stored in DDR3 chip modules known as DIMMs. Last year, scientists proved that such "bit flipping" could be accomplished

by repeatedly accessing small regions of memory, a feat that—like a magician who transforms a horse into a rabbit—allowed them to change the value of contents stored in computer memory. The research unveiled Monday showed how to fold such bit flipping into an actual attack.

If repost sorry. I was looking but didnt found it in here.

Source: http://googleprojectzero.blogspot.sk/2015/03/exploiting-dram-rowhammer-bug-to-gain.html

I strongly recommend reading the article for those who are interested as it is a bit complex so I will quote only some things.

 

“Rowhammer” is a problem with some recent DRAM devices in which repeatedly accessing a row of memory can cause bit flips in adjacent rows. We tested a selection of laptops and found that a subset of them exhibited the problem. We built two working privilege escalation exploits that use this effect. 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. We don’t know for sure how many machines are vulnerable to this attack, or how many existing vulnerable machines are fixable. Our exploit uses the x86 CLFLUSH instruction to generate many accesses to the underlying DRAM, but other techniques might work on non-x86 systems too. We expect our PTE-based exploit could be made to work on other operating systems; it is not inherently Linux-specific. Causing bit flips in PTEs is just one avenue of exploitation; other avenues for exploiting bit flips can be practical too. Our other exploit demonstrates this by escaping from the Native Client sandbox.

Basicaly they are saying that by using this exploit someone can get your root access in your OS. Google managed to change bits in 15 out of 29 notebooks. How many devices is affected is unknown.

The paper explains that this tiny snippet of code can cause bit flips: code1a:  mov (X), %eax  // Read from address X  mov (Y), %ebx  // Read from address Y  clflush (X)  // Flush cache for address X  clflush (Y)  // Flush cache for address Y  jmp code1a Two ingredients are required for this routine to cause bit flips: Address selection: For code1a to cause bit flips, addresses X and Y must map to different rows of DRAM in the same bank. Some background: Each DRAM chip contains many rows of cells. Accessing a byte in memory involves transferring data from the row into the chip’s “row buffer” (discharging the row’s cells in the process), reading or writing the row buffer’s contents, and then copying the row buffer’s contents back to the original row’s cells (recharging the cells). It is this process of “activating” a row (discharging and recharging it) that can disturb adjacent rows. If this is done enough times, in between automatic refreshes of the adjacent rows (which usually occur every 64ms), this can cause bit flips in the adjacent rows. The row buffer acts as a cache, so if addresses X and Y point to the same row, then code1a will just read from the row buffer without activating the row repeatedly. Furthermore, each bank of DRAM has its own notion of a “currently activated row”. So if addresses X and Y point to different banks, code1a will just read from those banks’ row buffers without activating rows repeatedly. (Banks are groups of DRAM chips whose rows are activated in lockstep.) However, if X and Y point to different rows in the same bank, code1a will cause X and Y’s rows to be repeatedly activated. This is termed “row hammering”. Bypassing the cache: Without code1a’s CLFLUSH instructions, the memory reads (MOVs) will be served from the CPU’s cache. Flushing the cache using CLFLUSH forces the memory accesses to be sent to the underlying DRAM, which is necessary to cause the rows to be repeatedly activated. Note that the paper’s version of code1a also includes an MFENCE instruction. However, we found that using MFENCE was unnecessary and actually reduced the number of bit flips we saw. Yoongu Kim’s modified memtest also omits the MFENCE from its row hammering code.

Testing your own machine

Users may wish to test their own machines using the rowhammer-test tool above. If a machine produces bit flips during testing, users may wish to adjust security and trust decisions regarding the machine accordingly.

While an absence of bit flips during testing on a given machine does not automatically imply safety, it does provide some baseline assurance that causing bit flips is at least difficult on that machine.

This is prety major bug. It is surprising that it was not noticed sooner and I dont think it will be resolved soon. I would like to add more to this but I am not really into these things and understand only core of it.

"My game vs my brains, who gets more fatal errors?" ~ Camper125Lv, GMC Jam #15

Link to comment
https://linustechtips.com/topic/325485-exploit-for-dram-found/
Share on other sites

Link to post
Share on other sites

Thank god I've got 8GB of DDR2 still.

           .;ldkO0000Okdl;.                michael@SUSE-BlackBox
        .;d00xl:^''''''^:ok00d;.            OS: openSUSE 20260405
      .d00l'                'o00d.          Kernel: x86_64 Linux 6.19.11-1-default
    .d0K^'  Okxoc;:,.          ^O0d.        Uptime: 2d 21h 52m
   .OVVAK0kOKKKKKKKKKKOxo:,      lKO.       Packages: 6556
  ,0VVAKKKKKKKKKKKKK0P^,,,^dx:    ;00,      Shell: bash 5.3.9
 .OVVAKKKKKKKKKKKKKk'.oOPPb.'0k.   cKO.     Resolution: 3840x1080
 :KVAKKKKKKKKKKKKKK: kKx..dd lKd   'OK:     DE: KDE
 lKlKKKKKKKKKOx0KKKd ^0KKKO' kKKc   lKl     WM: KWin
 lKlKKKKKKKKKK;.;oOKx,..^..;kKKK0.  lKl     GTK Theme: Breeze-Dark [GTK2], Breeze [GTK3]
 :KAlKKKKKKKKK0o;...^cdxxOK0O/^^'  .0K:     Icon Theme: breeze-dark
  kKAVKKKKKKKKKKKK0x;,,......,;od  lKP      Disk: 13T / 22T (60%)
  '0KAVKKKKKKKKKKKKKKKKKK00KKOo^  c00'      CPU: AMD Ryzen 7 5800X3D 8-Core @ 16x 4.55295GHz
   'kKAVOxddxkOO00000Okxoc;''   .dKV'       GPU: AMD Radeon RX 6700 XT (radeonsi, navi22, ACO, DRM 3.64, 6.19.11-1-default)
     l0Ko.                    .c00l'        RAM: 13127MiB / 48094MiB
      'l0Kk:.              .;xK0l'          
         'lkK0xc;:,,,,:;odO0kl'             
             '^:ldxkkkkxdl:^'    

 

Link to comment
https://linustechtips.com/topic/325485-exploit-for-dram-found/#findComment-4420473
Share on other sites

Link to post
Share on other sites

So.......does that mean DDR3 RAM prices are gonna tank so I can buy an additional set of 16GB for really cheap? :D

 

Any chance for fixing this?

Spoiler

CPU: Intel i5-4690K | Mobo: MSI Z97 Gaming 3 | RAM: Kingston Savage 4x4GB | GPU: Asus Strix GTX970 | PSU: Seasonic M12II-620 Evo | Storage: MX100 128GB + WD Blue 1TB | Cooling: CM Hyper 212 evo | Case: NZXT H440

Link to comment
https://linustechtips.com/topic/325485-exploit-for-dram-found/#findComment-4420539
Share on other sites

Link to post
Share on other sites

FAKE they want to make DDR3 to seem weak,in order to make DDR4 relevant since its mostly useless.And this is aimed at servers cause who cares about desktop users.

 

3803168-4112292660-geniu.gif

Either way, it won't affect me-once I get my new qx extreme and mobo, my i5 4440 gets its early retirement.

           .;ldkO0000Okdl;.                michael@SUSE-BlackBox
        .;d00xl:^''''''^:ok00d;.            OS: openSUSE 20260405
      .d00l'                'o00d.          Kernel: x86_64 Linux 6.19.11-1-default
    .d0K^'  Okxoc;:,.          ^O0d.        Uptime: 2d 21h 52m
   .OVVAK0kOKKKKKKKKKKOxo:,      lKO.       Packages: 6556
  ,0VVAKKKKKKKKKKKKK0P^,,,^dx:    ;00,      Shell: bash 5.3.9
 .OVVAKKKKKKKKKKKKKk'.oOPPb.'0k.   cKO.     Resolution: 3840x1080
 :KVAKKKKKKKKKKKKKK: kKx..dd lKd   'OK:     DE: KDE
 lKlKKKKKKKKKOx0KKKd ^0KKKO' kKKc   lKl     WM: KWin
 lKlKKKKKKKKKK;.;oOKx,..^..;kKKK0.  lKl     GTK Theme: Breeze-Dark [GTK2], Breeze [GTK3]
 :KAlKKKKKKKKK0o;...^cdxxOK0O/^^'  .0K:     Icon Theme: breeze-dark
  kKAVKKKKKKKKKKKK0x;,,......,;od  lKP      Disk: 13T / 22T (60%)
  '0KAVKKKKKKKKKKKKKKKKKK00KKOo^  c00'      CPU: AMD Ryzen 7 5800X3D 8-Core @ 16x 4.55295GHz
   'kKAVOxddxkOO00000Okxoc;''   .dKV'       GPU: AMD Radeon RX 6700 XT (radeonsi, navi22, ACO, DRM 3.64, 6.19.11-1-default)
     l0Ko.                    .c00l'        RAM: 13127MiB / 48094MiB
      'l0Kk:.              .;xK0l'          
         'lkK0xc;:,,,,:;odO0kl'             
             '^:ldxkkkkxdl:^'    

 

Link to comment
https://linustechtips.com/topic/325485-exploit-for-dram-found/#findComment-4420795
Share on other sites

Link to post
Share on other sites

Hey, anyone have some DDR2 laying around?

Derp  :P

           .;ldkO0000Okdl;.                michael@SUSE-BlackBox
        .;d00xl:^''''''^:ok00d;.            OS: openSUSE 20260405
      .d00l'                'o00d.          Kernel: x86_64 Linux 6.19.11-1-default
    .d0K^'  Okxoc;:,.          ^O0d.        Uptime: 2d 21h 52m
   .OVVAK0kOKKKKKKKKKKOxo:,      lKO.       Packages: 6556
  ,0VVAKKKKKKKKKKKKK0P^,,,^dx:    ;00,      Shell: bash 5.3.9
 .OVVAKKKKKKKKKKKKKk'.oOPPb.'0k.   cKO.     Resolution: 3840x1080
 :KVAKKKKKKKKKKKKKK: kKx..dd lKd   'OK:     DE: KDE
 lKlKKKKKKKKKOx0KKKd ^0KKKO' kKKc   lKl     WM: KWin
 lKlKKKKKKKKKK;.;oOKx,..^..;kKKK0.  lKl     GTK Theme: Breeze-Dark [GTK2], Breeze [GTK3]
 :KAlKKKKKKKKK0o;...^cdxxOK0O/^^'  .0K:     Icon Theme: breeze-dark
  kKAVKKKKKKKKKKKK0x;,,......,;od  lKP      Disk: 13T / 22T (60%)
  '0KAVKKKKKKKKKKKKKKKKKK00KKOo^  c00'      CPU: AMD Ryzen 7 5800X3D 8-Core @ 16x 4.55295GHz
   'kKAVOxddxkOO00000Okxoc;''   .dKV'       GPU: AMD Radeon RX 6700 XT (radeonsi, navi22, ACO, DRM 3.64, 6.19.11-1-default)
     l0Ko.                    .c00l'        RAM: 13127MiB / 48094MiB
      'l0Kk:.              .;xK0l'          
         'lkK0xc;:,,,,:;odO0kl'             
             '^:ldxkkkkxdl:^'    

 

Link to comment
https://linustechtips.com/topic/325485-exploit-for-dram-found/#findComment-4423705
Share on other sites

Link to post
Share on other sites

Good thing i have DDR4

Current Rig:   CPU: AMD 1950X @4Ghz. Cooler: Enermax Liqtech TR4 360. Motherboard:Asus Zenith Extreme. RAM: 8GB Crucial DDR4 3666. GPU: Reference GTX 970  SSD: 250GB Samsung 970 EVO.  HDD: Seagate Barracuda 7200.14 2TB. Case: Phanteks Enthoo Pro. PSU: Corsair RM1000X. OS: Windows 10 Pro UEFI mode  (installed on SSD)

Peripherals:  Display: Acer XB272 1080p 240Hz G Sync Keyboard: Corsair K95 RGB Brown Mouse: Logitech G502 RGB Headhet: Roccat XTD 5.1 analogue

Daily Devices:Sony Xperia XZ1 Compact and 128GB iPad Pro

Link to comment
https://linustechtips.com/topic/325485-exploit-for-dram-found/#findComment-4425174
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×