24 juli 2023 heeft AMD informatie vrijgegeven over een kritieke kwetsbaarheid genaamd 'Zenbleed' in alle AMD Zen 2 processoren . Door misbruik te maken van deze kwetsbaarheid kan potentieel beschermde informatie zoals encryption keys en login gegevens gestolen worden van een CPU.
Er was dankzij de onderzoeker die de kwetsbaarheid heeft ontdekt, Tavis Ormandy, al een microupdate en workaround beschikbaar voor de server versies van de AMD Zen 2 processors. Wij hebben deze dan ook direct toegepast op ons PerformanceVPS-platform dat van deze processors gebruik maakt.
Voor de commerciele AMD Zen 2 CPU's die in thuiscomputers en laptops gebruikt worden is nog geen microupdate beschikbaar. AMD geeft aan dat tussen oktober en december microupdates beschikbaar komen voor commerciële CPU's.
In deze handleiding leggen we je daarom uit hoe je controleert of jouw computer/laptop gebruik maakt van een Zen 2 CPU en hoe je de workaround toepast om jezelf tegen de Zenbleed-kwetsbaarheid te beschermen.
Dit artikel is niet van toepassing op jouw VPS maar geldt voor thuiscomputers en laptops.
De Zenbleed-kwetsbaarheid
De kwetsbaarheid heeft de aanduiding CVE-2023-20593 en is het gevolg van een bug die onder specifieke omstandigheden een aanvaller toestaat om gevoelige informatie van de CPU te achterhalen. De aanvaller heeft geen toegang nodig tot een thuiscomputers en laptops. Een aanval waarbij deze kwetsbaarheid misbruikt wordt kan bijvoorbeeld vanaf een website via javascript worden uitgevoerd. Het bezoeken van een website kan hierdoor voldoende zijn om data uit de CPU te achterhalen.
Op de website van de ontdekker van deze kwetsbaarheid, Tavis Ormandy, vind je een gedetailleerde toelichting over de ontdekking, oplossing en misbruik van deze kwetsbaarheid. Zoals hij het zelf verwoordt komt de kwetsbaarheid neer op:
"De bug werkt als volgt, ten eerste moet je iets activeren dat de XMM Register Merge Optimization2 wordt genoemd, gevolgd door een register hernoeming en een verkeerd voorspelde vzeroupper. Dit moet allemaal binnen een precies tijdsvenster gebeuren om te werken.
We weten nu dat basisoperaties zoals strlen, memcpy en strcmp de vectorregisters zullen gebruiken - dus we kunnen effectief spioneren op die operaties die overal in het systeem gebeuren! Het maakt niet uit of ze plaatsvinden in andere virtuele machines, zandbakken, containers, processen, wat dan ook!
Dit werkt omdat het registerbestand wordt gedeeld door alles op dezelfde fysieke kern. In feite delen twee hyperthreads zelfs hetzelfde fysieke registerbestand."
Lijst van getroffen Zen 2 CPU's
- AMD Ryzen 3000 Series Processors
- AMD Ryzen PRO 3000 Series Processors
- AMD Ryzen Threadripper 3000 Series Processors
- AMD Ryzen 4000 Series Processors with Radeon Graphics
- AMD Ryzen PRO 4000 Series Processors
- AMD Ryzen 5000 Series Processors with Radeon Graphics
- AMD Ryzen 7020 Series Processors with Radeon Graphics
- AMD EPYC Rome Processors
AMD Zen 2 CPU's worden ook voor de PS5, Xbox Series X & S en Steam Deck gebruikt. Het is echter onduidelijk op dit moment of deze ook geraakt zijn door de Zenbleed-kwetsbaarheid.
Controleren of jouw computer een Zen 2 CPU gebruikt
Mocht je niet zeker weten welk type processor je gebruikt, dan kun je dit binnen jouw besturingssysteem achterhalen als volgt:
Windows:
Druk tegelijkertijd op je toetsenbord op het Windows Start-icoon + R. Het uitvoeren/run-scherm verschijnt. Type hier het commando 'dxdiag' en druk op 'OK' of de enter-toets.
Het DirectX Diagnostic Tool-venster verschijnt. Controleer hier of achter 'Processor' een van de type processors staat uit de vorige paragraaf. Dit zou voor een AMD 5000 series processor bijvoorbeeld er ongeveer uitzien als: 'AMD Ryzen 5 5600X (6 CPUs) ~ 3,7 ghz'.
Zie je hier een kwetsbare processor terug? Ga dan door naar de volgende paragraaf.
Linux
Start een terminal en voer het volgende commando uit:
lscpu | grep "Model name"
De output ziet er ongeveer als volgt uit:
Model name: AMD Ryzen 5 5600 Six-Core processor
Zie je hier een kwetsbare processor terug? Ga dan door naar de volgende paragraaf.
De workaround tegen de Zenbleed-kwetsbaarheid toepassen op jouw CPU
Vooropgesteld raden we altijd aan indien beschikbaar de microupdate toe te passen op je computer. Tot die beschikbaar is, kun je een workaround toepassen om je computer te beschermen door de 'chicken bit' in te stellen.
AMD geeft aan dat de workaround een impact op de performance van je processor kan hebben. Zij kunnen echter niet aangeven onder welke omstandigheden en hoeveel impact er is. Je kan op een later moment echter de workaround ongedaan maken en de microupdate toepassen op jouw computer om die mogelijke impact weer weg te nemen.
Windows:
Wij werken nog aan de instructie voor Windows en updaten hierop dit artikel zo spoedig mogelijk.
Linux:
Met iedere reboot wordt de workaround ongedaan gemaakt. Je kunt bijvoorbeeld een opstartscript maken om de workaround in stap 2 automatisch toe te passen en wanneer een microupdate beschikbaar is die toepassen en je opstartscript te verwijderen. De microupdate zal t.z.t. wel behouden blijven na een reboot.
- Installeer eerst de MSR-tools op je computer. Deze zijn nodig om de workaround te kunnen toepassen:
Ubuntu/Debian:CentOS/AlmaLinux/Rocky Linux:sudo apt -y install msr-tools
sudo dnf -y install msr-tools
- Voer het volgende commando's uit om de workaround toe te passen:Let op: Met iedere reboot wordt de workaround ongedaan gemaakt. Je kunt bijvoorbeeld een opstartscript maken om de workaround automatisch toe te passen en wanneer een microupdate beschikbaar is die toepassen.
wrmsr -a 0xc0011029 $(($(rdmsr -c 0xc0011029) | (1<<9)))