Rowhammer (also written as row hammer) is a computer security exploit that takes advantage of an unintended and undesirable side effect in dynamic random-access memory (DRAM) in which memory cells interact electrically between themselves by leaking their charges, possibly changing the contents of nearby memory rows that were not addressed in the original memory access. This circumvention of the isolation between DRAM memory cells results from the high cell density in modern DRAM, and can be triggered by specially crafted memory access patterns that rapidly activate the same memory rows numerous times.[1][2][3]
Different hardware-based techniques exist to prevent the Rowhammer effect from occurring, including required support in some processors and types of DRAM memory modules.[9][10]
Background
In dynamic RAM (DRAM), each bit of stored data occupies a separate memory cell that is electrically implemented with one capacitor and one transistor. The charge state of a capacitor (charged or discharged) is what determines whether a DRAM cell stores "1" or "0" as a binary value. Huge numbers of DRAM memory cells are packed into integrated circuits, together with some additional logic that organizes the cells for the purposes of reading, writing, and refreshing the data.[11][12]
Memory cells (blue squares in both illustrations) are further organized into matrices and addressed through rows and columns. A memory address applied to a matrix is broken into the row address and column address, which are processed by the row and column address decoders (in both illustrations, vertical and horizontal green rectangles, respectively). After a row address selects the row for a read operation (the selection is also known as row activation), bits from all cells in the row are transferred into the sense amplifiers that form the row buffer (red squares in both illustrations), from which the exact bit is selected using the column address. Consequently, read operations are of a destructive nature because the design of DRAM requires memory cells to be rewritten after their values have been read by transferring the cell charges into the row buffer. Write operations decode the addresses in a similar way, but as a result of the design entire rows must be rewritten for the value of a single bit to be changed.[1]: 2–3 [11][12][13]
As a result of storing data bits using capacitors that have a natural discharge rate, DRAM memory cells lose their state over time and require periodic rewriting of all memory cells, which is a process known as refreshing.[1]: 3 [11] As another result of the design, DRAM memory is susceptible to random changes in stored data, which are known as soft memory errors and attributed to cosmic rays and other causes. There are different techniques that counteract soft memory errors and improve the reliability of DRAM, of which error-correcting code (ECC) memory and its advanced variants (such as lockstep memory) are most commonly used.[14]
Overview
Increased densities of DRAMintegrated circuits have led to physically smaller memory cells containing less charge, resulting in lower operational noise margins, increased rates of electromagnetic interactions between memory cells, and greater possibility of data loss. As a result, disturbance errors have been observed, being caused by cells interfering with each other's operation and manifesting as random changes in the values of bits stored in affected memory cells. The awareness of disturbance errors dates back to the early 1970s and Intel 1103 as the first commercially available DRAM integrated circuits; since then, DRAM manufacturers have employed various mitigation techniques to counteract disturbance errors, such as improving the isolation between cells and performing production testing. However, researchers proved in a 2014 analysis that commercially available DDR3 SDRAM chips manufactured in 2012 and 2013 are susceptible to disturbance errors, while using the term Rowhammer to name the associated side effect that led to observed bit flips.[1][3][15]
The opportunity for the Rowhammer effect to occur in DDR3 memory[16] is primarily attributed to DDR3's high density of memory cells and the results of associated interactions between the cells, while rapid DRAM row activations have been determined as the primary cause. Frequent row activations cause voltage fluctuations on the associated row selection lines, which have been observed to induce higher-than-natural discharge rates in capacitors belonging to nearby (adjacent, in most cases) memory rows, which are called victim rows; if the affected memory cells are not refreshed before they lose too much charge, disturbance errors occur. Tests show that a disturbance error may be observed after performing around 139,000 subsequent memory row accesses (with cache flushes), and that up to one memory cell in every 1,700 cells may be susceptible. Those tests also show that the rate of disturbance errors is not substantially affected by increased environment temperature, while it depends on the actual contents of DRAM because certain bit patterns result in significantly higher disturbance error rates.[1][2][15][17]
A variant called double-sided hammering involves targeted activations of two DRAM rows surrounding a victim row: in the illustration provided in this section, this variant would be activating both yellow rows with the aim of inducing bit flips in the purple row, which in this case would be the victim row. Tests show that this approach may result in a significantly higher rate of disturbance errors, compared to the variant that activates only one of the victim row's neighboring DRAM rows.[4][18]: 19–20 [19]
As DRAM vendors have deployed mitigations, patterns had to become more sophisticated to bypass Rowhammer mitigations. More recent Rowhammer patterns include non-uniform, frequency-based patterns.[20] These patterns consist of many double-sided aggressors pairs where each of them is hammered with a different frequency, phase, and amplitude. Using this and synchronizing patterns with the REFRESH command, it is possible to very effectively determine "blind spots" where the mitigation is not able to provide protection anymore. Based on this idea, academics built a Rowhammer fuzzer named Blacksmith[21] that can bypass existing mitigations on all DDR4 devices.
Mitigation
Different methods exist for more or less successful detection, prevention, correction or mitigation of the Rowhammer effect. Tests show that simple error correction code, providing single-error correction and double-error detection (SECDED) capabilities, are not able to correct or detect all observed disturbance errors because some of them include more than two flipped bits per memory word.[1]: 8 [15]: 32 Furthermore, research shows that precisely targeted three-bit Rowhammer flips prevents ECC memory from noticing the modifications.[22][23]
A less effective solution is to introduce more frequent memory refreshing, with the refresh intervals shorter than the usual 64 ms,[a] but this technique results in higher power consumption and increased processing overhead; some vendors provide firmware updates that implement this type of mitigation.[24] One of the more complex prevention measures performs counter-based identification of frequently accessed memory rows and proactively refreshes their neighboring rows; another method issues additional infrequent random refreshes of memory rows neighboring the accessed rows regardless of their access frequency. Research shows that these two prevention measures cause negligible performance impacts.[1]: 10–11 [25]
Since the release of Ivy Bridgemicroarchitecture, IntelXeon processors support the so-called pseudo target row refresh (pTRR) that can be used in combination with pTRR-compliant DDR3 dual in-line memory modules (DIMMs) to mitigate the Rowhammer effect by automatically refreshing possible victim rows, with no negative impact on performance or power consumption. When used with DIMMs that are not pTRR-compliant, these Xeon processors by default fall back on performing DRAM refreshes at twice the usual frequency, which results in slightly higher memory access latency and may reduce the memory bandwidth by up to 2–4%.[9]
The LPDDR4 mobile memory standard published by JEDEC[26] includes optional hardware support for the so-called target row refresh (TRR) that prevents the Rowhammer effect without negatively impacting performance or power consumption.[10][27][28] Additionally, some manufacturers implement TRR in their DDR4 products,[29][30] although it is not part of the DDR4 memory standard published by JEDEC.[31] Internally, TRR identifies possible victim rows, by counting the number of row activations and comparing it against predefined chip-specific maximum activate count (MAC) and maximum activate window (tMAW) values, and refreshes these rows to prevent bit flips. The MAC value is the maximum total number of row activations that may be encountered on a particular DRAM row within a time interval that is equal or shorter than the tMAW amount of time before its neighboring rows are identified as victim rows; TRR may also flag a row as a victim row if the sum of row activations for its two neighboring rows reaches the MAC limit within the tMAW time window.[26][32] Research showed that TRR mitigations deployed on DDR4 UDIMMs and LPDDR4X chips from devices produced between 2019 and 2020 are not effective in protecting against Rowhammer.[20]
Due to their necessity of huge numbers of rapidly performed DRAM row activations, Rowhammer exploits issue large numbers of uncached memory accesses that cause cache misses, which can be detected by monitoring the rate of cache misses for unusual peaks using hardware performance counters.[4][33]
Version 5.0 of the MemTest86 memory diagnostic software, released on December 3, 2013, added a Rowhammer test that checks whether computer RAM is susceptible to disturbance errors, but it only works if the computer boots UEFI; without UEFI, it boots an older version with no hammer test.[34]
Implications
Memory protection, as a way of preventing processes from accessing memory that has not been assigned to each of them, is one of the concepts behind most modern operating systems. By using memory protection in combination with other security-related mechanisms such as protection rings, it is possible to achieve privilege separation between processes, in which programs and computer systems in general are divided into parts limited to the specific privileges they require to perform a particular task. Using privilege separation can also reduce the extent of potential damage caused by computer security attacks by restricting their effects to specific parts of the system.[35][36]
Disturbance errors (explained in the section above) effectively defeat various layers of memory protection by "short circuiting" them at a very low hardware level, practically creating a unique attack vector type that allows processes to alter the contents of arbitrary parts of the main memory by directly manipulating the underlying memory hardware.[2][4][18][37] In comparison, "conventional" attack vectors such as buffer overflows aim at circumventing the protection mechanisms at the software level, by exploiting various programming mistakes to achieve alterations of otherwise inaccessible main memory contents.[38]
Exploits
hammer:mov(X),%eax// read from address Xmov(Y),%ebx// read from address Yclflush(X)// flush cache for address Xclflush(Y)// flush cache for address Yjmphammer
A snippet of x86 assembly code that induces the row hammer effect (memory addresses X and Y must map to different DRAM rows in the same memory bank)[1]: 3 [4][18]: 13–15
The initial research into the Rowhammer effect, published in June 2014, described the nature of disturbance errors and indicated the potential for constructing an attack, but did not provide any examples of a working security exploit.[1] A subsequent October 2014 research paper did not imply the existence of any security-related issues arising from the Rowhammer effect.[16]
On March 9, 2015, Google's Project Zero revealed two working privilege escalation exploits based on the Rowhammer effect, establishing its exploitable nature on the x86-64 architecture. One of the revealed exploits targets the Google Native Client (NaCl) mechanism for running a limited subset of x86-64 machine instructions within a sandbox,[18]: 27 exploiting the Rowhammer effect to escape from the sandbox and gain the ability to issue system calls directly. This NaCl vulnerability, tracked as CVE-2015-0565, has been mitigated by modifying the NaCl so it does not allow execution of the clflush (cache line flush[39]) machine instruction, which was previously believed to be required for constructing an effective Rowhammer attack.[2][4][37]
The second exploit revealed by Project Zero runs as an unprivileged Linux process on the x86-64 architecture, exploiting the Rowhammer effect to gain unrestricted access to all physical memory installed in a computer. By combining the disturbance errors with memory spraying, this exploit is capable of altering page table entries[18]: 35 used by the virtual memory system for mapping virtual addresses to physical addresses, which results in the exploit gaining unrestricted memory access.[18]: 34, 36–57 Due to its nature and the inability of the x86-64 architecture to make clflush a privileged machine instruction, this exploit can hardly be mitigated on computers that do not use hardware with built-in Rowhammer prevention mechanisms. While testing the viability of exploits, Project Zero found that about half of the 29 tested laptops experienced disturbance errors, with some of them occurring on vulnerable laptops in less than five minutes of running row-hammer-inducing code; the tested laptops were manufactured between 2010 and 2014 and used non-ECC DDR3 memory.[2][4][37]
In July 2015, a group of security researchers published a paper that describes an architecture- and instruction-set-independent way for exploiting the Rowhammer effect. Instead of relying on the clflush instruction to perform cache flushes, this approach achieves uncached memory accesses by causing a very high rate of cache eviction using carefully selected memory access patterns. Although the cache replacement policies differ between processors, this approach overcomes the architectural differences by employing an adaptive cache eviction strategy algorithm.[18]: 64–68 The proof of concept for this approach is provided both as a native code implementation, and as a pure JavaScript implementation that runs on Firefox 39. The JavaScript implementation, called Rowhammer.js,[40] uses large typedarrays and relies on their internal allocation using large pages; as a result, it demonstrates a very high-level exploit of a very low-level vulnerability.[41][42][43][44]
In October 2016, researchers published DRAMMER, an Android application that uses Rowhammer, together with other methods, to reliably gain root access on several popular smartphones.[45] The vulnerability was acknowledged as CVE-2016-6728[46] and a mitigation was released by Google within a month. However, due to the general nature of possible implementations of the attack, an effective software patch is difficult to be reliably implemented. As of June 2018, most patch proposals made by academia and industry were either impractical to deploy or insufficient in stopping all attacks. As a mitigation, researchers proposed a lightweight defense that prevents attacks based on direct memory access (DMA) by isolating DMA buffers with guard rows.[47][48]
In May 2021, a Google research team announced a new exploit, Half-Double that takes advantage of the worsening physics of some of the newer DRAM chips.[49]
In March 2024, a group of researchers at ETH Zürich announced ZenHammer, a rowhammer exploit for AMD Zen chips, and also announced the first use of rowhammer to exploit DDR5 SDRAM.[50][51]
In June 2024, a group of researchers at ETH Zürich announced RISC-H, a rowhammer exploit for RISC-V chips, this is the first Rowhammer study on RISC-V.[52]
Memory scrambling – memory controller feature that turns user data written to the memory into pseudo-random patterns
Radiation hardening – the act of making electronic components resistant to damage or malfunctions caused by ionizing radiation
Single event upset – a change of state caused by ions or electromagnetic radiation striking a sensitive node in an electronic device
Soft error – a type of error involving erroneous changes to signals or data but no changes to the underlying device or circuit
Notes
^Research shows that the rate of disturbance errors in a selection of DDR3 memory modules closes to zero when the memory refresh interval becomes roughly seven times shorter than the default of 64 ms.[15]: 17, 26
^ abKyungbae Park; Sanghyeon Baeg; ShiJie Wen; Richard Wong (October 2014). "Active-precharge hammering on a row induced failure in DDR3 SDRAMs under 3× nm technology". Active-Precharge Hammering on a Row Induced Failure in DDR3 SDRAMs under 3x nm Technology. IEEE. pp. 82–85. doi:10.1109/IIRW.2014.7049516. ISBN978-1-4799-7308-8. S2CID14464953.
BridgeThe Helix, Home of the KelpiesThe Kelpies, which tower over the new canal at The HelixCoordinates56°01′05″N 3°45′18″W / 56.018°N 3.755°W / 56.018; -3.755Official nameThe Helix, Home of the KelpiesMaintained byScottish Canals and Falkirk CouncilHistoryConstruction startApril 2006 (official planning)Location vteThe Helix Legend Route diagram River Carron New sealock Pipe bridge A905 bridges Pipe bridge M9 bridges Lock and Kelpies Moorings Old sealock Carro…
Bandar Udara Kiev beralih ke halaman ini. Untuk kegunaan lain, lihat Bandar Udara Kiev (disambiguasi). Untuk Bandar Udara Zhuliany, lihat Bandar Udara Internasional Zhuliany Kiev. Artikel ini memerlukan pemutakhiran informasi. Harap perbarui artikel dengan menambahkan informasi terbaru yang tersedia. Bandar Udara Internasional BoryspilМіжнародний аеропорт БориспільIATA: KBPICAO: UKBBInformasiJenisPublik/MiliterPengelolaPemerintah SipilMelayaniKyiv, UkrainaLokasiBorysp…
Sampul buku A Mathematician's Apology adalah esai yang ditulis pada tahun 1940 oleh matematikawan Britania G. H. Hardy. Esai ini membahas estetika matematika dan isi pribadi, dan memberikan wawasan kepada orang awam tentang pikiran seorang matematikawan aktif. Ringkasan isi Pada judul buku ini, Hardy menggunakan kata apology (apologia atau pembelaan) dalam arti pembenaran formal atau pembelaan (seperti dalam karya Plato Apologia Sokrates), bukan dalam arti meminta maaf. Hardy merasa perlu untuk …
Battle between British and Ottoman forces in 1917 31°29′21″N 34°28′25″E / 31.4893°N 34.4737°E / 31.4893; 34.4737 Third Battle of GazaPart of the Middle Eastern theatre of World War IDate1–2 November 1917(1 day)LocationGaza, southern PalestineResult Allied victory[1] Ottoman garrison abandons Gaza on 7 November as a result of fighting during the Battle of Tel el Khuweilfe and the Battle of Hareira and SheriaBelligerents British Empire …
Spiritual beliefs of the Cherokee people ᏗᎵᏍᏙᏗ dilsdohdi [1] the water spider is said to have first brought fire to the inhabitants of the earth in the basket on her back.[2] Cherokee spiritual beliefs are held in common among the Cherokee people – Native American peoples who are Indigenous to the Southeastern Woodlands, and today live primarily in communities in North Carolina (the Eastern Band of Cherokee Indians), and Oklahoma (the Cherokee Nation and United Keetow…
This article is about a radio station in New Orleans. For the computer standard, see web service level agreement. Radio station in Slidell, LouisianaWSLASlidell, LouisianaBroadcast areaNew Orleans metropolitan areaFrequency1560 kHzBrandingWSLA AM 1560ProgrammingFormatNews/Talk, SportsOwnershipOwnerMapa BroadcastingHistoryFirst air dateSeptember 5, 1963 (as WBGS)Former call signsWBGS (1963–1972), WSDL (1972–1989)Call sign meaningSlidell, LouisiAnaTechnical informationFacility ID39849ClassDPow…
Cet article est une ébauche concernant une localité hondurienne. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. San Pedro de Copán Administration Pays Honduras Département Copán Maire Sergio Lemus Démographie Population 63 829 hab. (2015) Densité 215 hab./km2 Géographie Coordonnées 14° 37′ 00″ nord, 88° 52′ 00″ ouest Altitude 836 m Superficie 29…
Artikel ini tidak memiliki referensi atau sumber tepercaya sehingga isinya tidak bisa dipastikan. Tolong bantu perbaiki artikel ini dengan menambahkan referensi yang layak. Tulisan tanpa sumber dapat dipertanyakan dan dihapus sewaktu-waktu.Cari sumber: Soekarmen – berita · surat kabar · buku · cendekiawan · JSTOR Soekarmen Gubernur Bali Ke-4Masa jabatan1967–1978PendahuluI Gusti Putu MarthaPenggantiIda Bagus Mantra Informasi pribadiLahir(1925-05-30)3…
Franca Raimondi song Aprite le finestreEurovision Song Contest 1956 entryCountryItalyArtist(s)Franca RaimondiLanguageItalianComposer(s)Virgilio PanzutiLyricist(s)Pino PerottiConductorGian StellariFinals performanceFinal result2ndFinal points-Entry chronologyAmami se vuoi (1956) ► Aprite le finestre (Open the windows) is an Italian song by Franca Raimondi. It won the sixth edition of the Sanremo Music Festival and subsequently was the first Italian entry in the Eurovision Song Contest 1956 (con…
Torpedo bomber and maritime reconnaissance floatplane Do 22 Dornier Do 22 K in the Finnish Air Force Role Torpedo bomber and reconnaissance seaplaneType of aircraft National origin Germany Manufacturer Dornier Flugzeugwerke First flight 15 July 1938 Produced 1938–1939 Number built ~30 The Dornier Do 22 was a German seaplane, developed in the 1930s. Despite good performance, it was built only in small numbers and entirely for the export market. The type was operated in the Second World War by F…
Paduan suara Alexandrov dengan Ansambel Tari, Warsawa 2009 Alexandrovci dengan Iosif Kobzon sebagai penyanyi solo Ansambel Alexandrov, Bielsko-Biala, 2006 Ansambel Alexandrov adalah paduan suara tentara resmi dari Angkatan Bersenjata Rusia. Dibentuk pada waktu era Soviet, ansambel ini terdiri dari sebuah paduan suara pria, sebuah orkestra, dan sebuah ansambel tari. Ansambel ini telah menghibur penonton baik di Rusia dan di seluruh dunia, mempertunjukkan berbagai musik termasuk lagu-lagu rakyat, …
فلوريان لوكاس (بالألمانية: Florian Lukas) معلومات شخصية الميلاد 16 مارس 1973 (العمر 51 سنة)[1]برلين، وبرلين الشرقية مواطنة ألمانيا الحياة العملية المهنة ممثل مسرحي[2]، وممثل أفلام[2]، وممثل تلفزيوني اللغات الألمانية الجوائز جائزة الفيلم الألم…
Ideology that views Zionism as a fundamental component of Orthodox Judaism Religious Zionists celebrating Jerusalem Day in Israel Religious Zionism (Hebrew: צִיּוֹנוּת דָּתִית, romanized: Tziyonut Datit) is an ideology that views Zionism as a fundamental component of Orthodox Judaism. Its adherents are also referred to as Dati Leumi (דָּתִי לְאֻמִּי, 'National Religious'), and in Israel, they are most commonly known by the plural form of the first part…
Japanese sword Ōdachi (大太刀) An ōdachi forged by Sadaie, 14th century, Nanboku-chō period, Important SwordTypeSwordPlace of originJapanService historyUsed bySamurai, Kenjutsu, Iaido practitionersProduction historyProducedKamakura period (1185-1333) to present[1][2]SpecificationsMass2.2–14.5 kg (4.9–32.0 lb)[3]Blade lengthapprox. 90.9 cm (35.8 in) (3 shaku)–226.7 cm (89.3 in) (7 shaku 5 sun)[3]Blade&…
Not to be confused with How Do You Sleep at Night. 2023 studio album by Teezo TouchdownHow Do You Sleep at Night?Studio album by Teezo TouchdownReleasedSeptember 8, 2023Genre R&B rock boom bap Length39:37Label RCA Not Fit for Society Producer Andrew Bolooki Bnyx Brendan Grieve Dylan Brady Dylan Neustadter Hoskins Jose Julian de la Cruz Justin Raisen Roofeeo Khris Riddick-Tynes Tizhimself SadPony Solomonophonic Tyler Cole Y2K Teezo Touchdown chronology Cover Boy(2018) How Do You Sleep…
Come leggere il tassoboxAttinopterigiScorpaena sp.Classificazione scientificaDominioEukaryota RegnoAnimalia SottoregnoEumetazoa SuperphylumDeuterostomia PhylumChordata SubphylumVertebrata InfraphylumGnathostomata SuperclasseOsteichthyes ClasseActinopterygiiCope, 1887 Sottoclassi Polypteriformes Chondrostei Neopterygii Gli attinopterigi (Actinopterygii Cope, 1887) sono una classe di vertebrati, comprendente la maggior parte dei pesci ossei viventi. Il loro nome deriva dal greco aktis = raggio + p…