Onderzoekers zijn erin geslaagd om een bug in ddr3-geheugen te misbruiken met javascript. Daardoor kan een willekeurige webpagina bits flippen in het geheugen, zelfs als de browser in een sandbox draait en dat dus niet zou moeten kunnen.
De bug, die door Google-onderzoekers eerder Rowhammer is gedoopt, is niet nieuw, maar Oostenrijkse en Franse onderzoekers hebben nu een manier gevonden om de bug te exploiteren vanuit een website. Dat gebeurt door fysieke kwetsbaarheden in ddr3-geheugen te misbruiken.
De onderzoekers maakten een aanval die werkte op een systeem met Intel Haswell-processor, in een browser die javascript binnen een sandbox draait. Daarbij zou een aanvaller root-toegang tot een systeem kunnen krijgen, vermoeden de onderzoekers. De aanvallers wisten de bug in ieder geval in Firefox en Chrome te misbruiken.
Het probleem dat de onderzoekers aan de kaak stellen, bevindt zich in het fysieke ddr3-geheugen. Doordat geheugen op steeds kleinere schaal wordt gemaakt en geheugencellen zich steeds dichter bij elkaar bevinden, kan de elektrische lading van bits in het geheugen 'lekken' naar aangrenzende bits.
Dat dit kon, was al langer bekend, maar dat dat ook vanuit een webpagina zou kunnen, was nog niet eerder aangetoond. De kwetsbaarheid is in verschillende modellen ddr3-geheugen aanwezig, maar niet in al het geheugen: geheugen met error correcting code heeft er geen last van. Ook ddr4-geheugen is niet kwetsbaar. Het gaat daarbij vooralsnog enkel om pc's, maar de onderzoekers denken dat onderzoek naar telefoons nodig is, omdat die een variant op ddr3-geheugen bevatten.
Doordat het gaat om een fysieke kwetsbaarheid, werkt softwarematige beveiliging tegen aanvallen - zoals sandboxing en data execution prevention - niet meer. Daardoor kan een webpagina eigen code in het geheugen injecteren en die vervolgens uitvoeren. Dat is een zeer ernstige kwetsbaarheid, vooral omdat zij softwarematig niet is op te lossen. Alleen een bios-update zou nog enig soelaas kunnen bieden. Wel is het moeilijk om een concrete aanval te maken; hoewel bits flippen mogelijk is, moet dat namelijk ook nog eens in de goede volgorde gebeuren.
In dit specifieke geval is er wel een work-around die de impact zou kunnen beperken. Javascript zou langzamer kunnen draaien om het moeilijker te maken om de bug te misbruiken. Daarnaast raden de onderzoekers gebruikers aan om javascript uit te schakelen. Dat kan bijvoorbeeld via een extensie als NoScript.