AMD Zen 3 blijkt Spectre-achtige kwetsbaarheid te bezitten

AMD legt vandaag de billen bloot met een witboek omtrent de beveiligingsanalyse van Predictive Store Forwarding (PSF). Deze technologie is geïntroduceerd met de Zen 3-architectuur, ofwel o.a. de Ryzen 5000-reeks aan processoren. Het blijkt dat PSF een kwetsbaarheid met zich meebrengt, die vergelijkbaar is aan de Spectre-kwetsbaarheid die Intel enkele jaren geleden deed ervaren. Wat mag dan exact het euvel zijn bij Zen 3?

In het witboek legt AMD uit dat PSF helpt prestaties te verbeteren door de relatie te voorspellen tussen zogeheten ‘loads’ en ‘stores’. In versimpelde termen verwijzen die acties naar het kopiëren van data, van en naar geheugen. Zen 3 probeert een voorspelling te maken door loads en stores te volgen en in het merendeel van gevallen heeft PSF het bij het juiste einde. Dit resulteert dan in de nodige prestatieverbeteringen.

Waar het probleem doet opduiken, is in het moment dat PSF een onjuiste voorspelling maakt. Dit kan volgens AMD voorkomen in twee scenario’s. Als eerste wanneer de samenhang tussen een load en store verdwijnt, wat kan gebeuren als het adres van de load of store verandert. Het tweede scenario is complexer en vereist dat bij twee paren aan loads/stores met dezelfde alias enkel het tweede load/store-paar wordt uitgevoerd.

First, it is possible that the store/load pair had a dependency for a while but later stops having a dependency. This can occur if the address of either the store or load changes during the execution of the program.

The second source of incorrect PSF predictions can occur if there is an alias in the PSF predictor structure. The PSF predictor is designed to track stores/load pairs based on portions of their RIP. It is possible that a store/load pair which does have a dependency may alias in the predictor with another store/load pair which does not. This may result in incorrect speculation when the second store/load pair is executed.

Veilig in gebruik?

Technisch jargon terzijde, AMD concludeert in het witboek dat het gebruik van PSF een afweging blijkt tussen prestatieverbetering en mogelijke kwetsbaarheid. De kans dat de kwetsbaarheid geëxploiteerd kan worden, is gelukkig vrij klein. Daarnaast zijn er nog geen bekende meldingen van misbruik van de kwetsbaarheid. Zodoende raadt AMD het gebruik van PSF gewoon aan, omdat de prestatiewinst de risico’s van de PSF-kwetsbaarheid doet ontstijgen.

Voor (zeer specifieke) werkomgevingen, waarin de Spectre v4-achtige kwetsbaarheid wél een risico kan zijn, raadt AMD een uitschakeling van Predictive Store Forwarding aan. In dat opzicht heeft AMD Linux-patches voorgesteld om PSF daarin mede uit te schakelen.

Bron: Tom’s Hardware