Dark Reading is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them.Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Network Security

11/27/2018
09:35 AM
Larry Loeb
Larry Loeb
Larry Loeb
50%
50%

Rowhammer Vulnerability Can Bypass ECC Memory Chips

New research finds that the Rowhammer vulnerability can be adjusted to bypass ECC memory chips, exposing processors to an attack.

About four years ago, the Rowhammer vulnerability in DRAM memory chips emerged. It came about by "hammering" -- many reads or write access -- a particular memory location causing a bit to change state in a completely different location.

The Rowhammer problem was hardware-based and could be done on different chips from different manufactures. It turned out that it could be carried out from Javascript, or even across the network on a remote server.

It was thought that error-correcting code-style memory was resistant to this, since it stores extra -- or redundant -- information that the CPU uses to detect and repair these "bit flips."

Now, however, Security researchers from Vrije Universiteit Amsterdam have found out that Rowhammer attacks will work on error-correcting code (ECC) memory chips. It turns out that ECC is not a protection against this kind of attack.

The researchers posted in their blog that they first had to reverse engineer how ECC memory worked to determine this, since manufacturers don't want to give out details about it.

In their report, researchers used Intel Xeon E3-1270 v3 CPU (Haswell), AMD Opteron 6376 CPU (Bulldozer), Xeon E5-2650 v1 (Sandy Bridge), and Intel Xeon E5-2620 v1 CPU (Sandy Bridge) in their research. They did not name the memory DIMMs that they tested.

They found that ECC merely slows down the Rowhammer attack and is not enough to stop it.

ECC technology was designed to stop one bit flip caused by something out of the ordinary, such as a cosmic ray hitting a chip in a satellite. However, it has quirks. If it detects two bit flips, it makes the program crash because it cannot repair itself.

That's why ECC was thought to be a protection. A single Rowhammer bit flip would be corrected, while two bit flips break the system.

However, the researchers realized that if you got three bit flips to occur without accidentally getting two first and triggering a crash, you could bypass ECC.

Their method involved the discovery of a side channel that they could exploit in order to find out which bit flips have been ECC-corrected. As they wrote:

What we found is that we can detect that a bit has been corrected by means of a timing side channel. Simply put: it will typically take measurably longer to read from a memory location where a bitflips needs to be corrected, than it takes to read from an address where no correction was needed. Thus, we can try each bit in turn, until we find a word in which we could flip three bits that are vulnerable. The final step is then to make all three bits in the two locations different and hammer one final time, to flip all three bits in one go: mission accomplished.

The attack, which they call ECCploit, takes time, however. The simplest attack, in theory, can take 32 minutes. In a noisy environment, it can take up to one week. They also think that that the side-channel introduced by the error correction is observable on DDR4.

Since ECC is a reliability mechanism, they do not counsel removing it from routine use. But they do think that users should phase out memory/setup that is susceptible to Rowhammer.

Full details may be found in their technical write up "Exploiting Correcting Codes: On the Effectiveness of ECC Memory Against Rowhammer Attacks."

Related posts:

— Larry Loeb has written for many of the last century's major "dead tree" computer magazines, having been, among other things, a consulting editor for BYTE magazine and senior editor for the launch of WebWeek.

Comment  | 
Print  | 
More Insights
Comments
Newest First  |  Oldest First  |  Threaded View
Manchester United Suffers Cyberattack
Dark Reading Staff 11/23/2020
As 'Anywhere Work' Evolves, Security Will Be Key Challenge
Robert Lemos, Contributing Writer,  11/23/2020
Cloud Security Startup Lightspin Emerges From Stealth
Kelly Sheridan, Staff Editor, Dark Reading,  11/24/2020
Register for Dark Reading Newsletters
White Papers
Video
Cartoon Contest
Write a Caption, Win an Amazon Gift Card! Click Here
Latest Comment: This comment is waiting for review by our moderators.
Current Issue
2021 Top Enterprise IT Trends
We've identified the key trends that are poised to impact the IT landscape in 2021. Find out why they're important and how they will affect you today!
Flash Poll
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
CVE-2019-20934
PUBLISHED: 2020-11-28
An issue was discovered in the Linux kernel before 5.2.6. On NUMA systems, the Linux fair scheduler has a use-after-free in show_numa_stats() because NUMA fault statistics are inappropriately freed, aka CID-16d51a590a8c.
CVE-2020-29368
PUBLISHED: 2020-11-28
An issue was discovered in __split_huge_pmd in mm/huge_memory.c in the Linux kernel before 5.7.5. The copy-on-write implementation can grant unintended write access because of a race condition in a THP mapcount check, aka CID-c444eb564fb1.
CVE-2020-29369
PUBLISHED: 2020-11-28
An issue was discovered in mm/mmap.c in the Linux kernel before 5.7.11. There is a race condition between certain expand functions (expand_downwards and expand_upwards) and page-table free operations from an munmap call, aka CID-246c320a8cfe.
CVE-2020-29370
PUBLISHED: 2020-11-28
An issue was discovered in kmem_cache_alloc_bulk in mm/slub.c in the Linux kernel before 5.5.11. The slowpath lacks the required TID increment, aka CID-fd4d9c7d0c71.
CVE-2020-29371
PUBLISHED: 2020-11-28
An issue was discovered in romfs_dev_read in fs/romfs/storage.c in the Linux kernel before 5.8.4. Uninitialized memory leaks to userspace, aka CID-bcf85fcedfdd.