Onderzoekers hebben een speculative-executionbug gevonden in AMD-cpu's op basis van Zen 2-architectuur. De bug, Zenbleed, is een use-after-freebug die het mogelijk maakt om tot 30kB/s per core af te luisteren van de chip. AMD heeft inmiddels een microcodepatch uitgebracht.
De onderzoekers noemen de bug Zenbleed. Dat is een vergelijkbare kwetsbaarheid in de zogenoemde speculative-executionfunctie van cpu's. In de afgelopen jaren zijn meerdere van zulke bugs naar buiten gekomen. Zenbleed werd ontdekt door beveiligingsonderzoekers die eerder bij Googles securityafdeling Project Zero werkten. De onderzoekers hebben een technische beschrijving gepubliceerd en een werkende proof of concept online gezet.
De bug treft alle Zen 2-processors, zowel de Ryzen- en Threadripper-serie als de zakelijke modellen zoals de Epyc Rome voor datacenters. De onderzoekers hebben hun bevindingen met AMD gedeeld. Dat heeft inmiddels een microcodepatch uitgebracht onder volgnummer AMD-SB-7008. De bug wordt verder gevolgd onder CVE-2023-20593.
Zenbleed is een speculative-executionbug. Speculative execution is een optimalisatiemethode waarbij een cpu bepaalde taken of berekeningen probeert te voorspellen om de processor sneller te maken. Zenbleed is een kwetsbaarheid in de vzeroupper
-instruction die tijdens dat proces wordt gebruikt. Als die instruction aangeroepen wordt, wordt een van de vectorregisters veranderd in een 0-bit, zodat dat register voor een bepaalde actie kan worden gereserveerd. Als dat via een speculative execution gebeurt, maar het blijkt dat het register niet nodig is, dan wordt de 0-bit daar weer uit verwijderd. Maar in de tussentijd kan een aanvaller er met speciale malware voor zorgen dat die registerruimte wordt opgevuld met andere code en kan hij ook bestaande code uitlezen.
Volgens de onderzoeker lijkt dat op een use-after-freebug, iets dat voorheen amper voorkwam in cpu's. Hij zegt verder dat het mogelijk is om zijn malwarecode te optimaliseren om meer data af te luisteren dan normaal. Hij zou in totaal 30 kilobyte aan data per seconde kunnen afluisteren.