"Zenbleed" vulnerability puts AMD Ryzen users at risk of data theft

midian182

Posts: 9,745   +121
Staff member
Why it matters: A new vulnerability has been discovered that affects the entirety of AMD's Zen 2 processor line, including the Ryzen 3000/4000/5000 CPUs and the Epyc enterprise processors. Called Zenbleed, the exploit can be used to steal sensitive data such as passwords and encryption keys. Most worrying of all, attacks can be carried out remotely.

Google security researcher Tavis Ormand reported Zenbleed (CVE-2023-20593) to AMD on May 15 before revealing its details this week. As we've seen with previous similar attacks like Spectre and Meltdown, it takes advantage of the speculative execution technique used by modern processors to optimize their performance. Zenbleed is closer to the more easily exploitable Meltdown than Spectre.

Zenbleed works by manipulating the register files to force a mispredicted command. As Ormandy explains:

"The bug works like this, first of all you need to trigger something called the XMM Register Merge Optimization2, followed by a register rename and a mispredicted vzeroupper. This all has to happen within a precise window to work"

"We now know that basic operations like strlen, memcpy and strcmp will use the vector registers - so we can effectively spy on those operations happening anywhere on the system!"

"This works because the register file is shared by everything on the same physical core. In fact, two hyperthreads even share the same physical register file."

Cloudflare specifies that the vulnerability is caused by a register not being written to 0 correctly under specific microarchitectural circumstances. This may cause data from another process and/or thread to be stored in the YMM register, which may allow an attacker to potentially access sensitive information.

The company adds that while the error is associated with speculative execution, it is not a side-channel vulnerability. It adds that the attack can be executed remotely through JavaScript on a website, meaning that the attacker need not have physical access to the computer or server.

The vulnerability allows the pilfering of data at speeds of 30KB per second per core, fast enough to monitor encryption keys and passwords as users log in. It can steal data from any software running on the system, including virtual machines, sandboxes, containers, and processes. As Tom's Hardware notes, its ability to read data across virtual machines will be especially concerning for cloud service providers and their customers.

AMD says in a security advisory that it has already released a microcode patch for its second-generation Epyc 7002 processors, but many of the updates for the other Zen 2 CPUs aren't arriving until between October and December. Moreover, AMD says the performance impact resulting from the update will vary depending on workload and system configuration.

Ormandy is recommending Zen 2 users get and apply AMD's microcode update. He has also provided a software workaround that involves setting a control bit to disable some of the functionality that prevents exploitation. It may impact system performance, but it's better to be safe than sorry until the updates arrives.

Permalink to story.

 
While it doesn't matter really for home users, it might be concerning for VM's if they can get to other tenant's data within cloud cluster...
 
While it doesn't matter really for home users, it might be concerning for VM's if they can get to other tenant's data within cloud cluster...

From the article:
"It adds that the attack can be executed remotely through JavaScript on a website, meaning that the attacker need not have physical access to the computer or server. It can steal data from any software running on the system, including virtual machines, sandboxes, containers, and processes."

Seems like it would be a bit of a worry for home users. Probably not too many servers surfing the internet would run in to a malicious JavaScript. I wonder why this was mitigated in the Ryzen 7000 processors but never addressed with a microcode patch in older processors.
 
From the article:
"It adds that the attack can be executed remotely through JavaScript on a website, meaning that the attacker need not have physical access to the computer or server. It can steal data from any software running on the system, including virtual machines, sandboxes, containers, and processes."
This still needs to be targeted, as there is no way to identify what exactly are you extracting from buffers and which of the code is a security key or cat image - unless you somehow memory address it is stored at. It just dumps buffers. Normal user wont be a target due to huge noise to usable data, but in cloud vm it might be some use to target exact execution.
 
I'm safe for now :)

This technique is CVE-2023-20593 and it works on all Zen 2 class processors, which includes at least the following products:

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
 
I'm safe for now :)

This technique is CVE-2023-20593 and it works on all Zen 2 class processors, which includes at least the following products:

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
There's a better list in the Tom's Hardware article - its not as wide as your list - https://www.tomshardware.com/news/z...t-from-amds-zen-2-processors-patches-released

My wife's 5800X, for instance, is not on the list.
 
> remote vulnerability
> fix in 6 months

Things like this are the reason why it's very hard sometimes to take AMD seriously.
 
> remote vulnerability
> fix in 6 months

Things like this are the reason why it's very hard sometimes to take AMD seriously.
Developing new AGESA takes time as it takes motherboard manufacturers to make new BIOS containing and testing that AGESA too. Also this bug could be fixed with software too. You are just trying to make this big issue, but it's not. All CPUs have flaws/bugs, many of them will never get fixed.
 
"including the Ryzen 3000/4000/5000 CPUs and the Epyc enterprise processors. "

Not true. From the Epyc lineup only the Epycs with model number ending xxx2 are affected (thats ZEN2)
From RyZEN only RyZENs with ZEN2 cores are affected thats mostly RyZEN 3000 and a few 4000-5000 models with Radeon graphics, but thats the minority.
RyZEN 5000 processors without graphics are certainly not affected
 
Thankfully the CPU list seems to be fairly limited and it's not an exploit that affects most AMD CPUs. I wonder why only Zen2 works this way.
AMD has told they mostly design CPUs from scratch every time architecture changes. That way power consumption is kept in place. Unlike with Intel that admits to build new CPUs like "add more stuff on old design" -way.

As this bug is limited on Zen2 only, AMD claims seem to be at least somewhat true.
 
Would've been nice to have 'Zen 2' in the title and save me from reading something that does not pertain to me....
 
Ouch. I mean, the side-channel attacks, Javascript (for example) avoided the problem easily by simply removing nanosecond-accuracy timers. This, removing high-accuracy timers would not help. I wonder if this causes intermittent crashes? I mean, if you have a register that does not have the value it's supposed to it seems like it could.
 
Easy fix, ban JS. Why is anyone still using JavaScript?
Because it's the only thing that run on all platforms.

First you have to load the webpage that has the script with JS enabled.

Second you have the option in browser settings "Don't allow sites to use JavaScript". Or select manually the sites whitelisted.

Some pages will not load and some pages will load partially with JS off.

At this pace we will need Corporate Firewalls with IPS, IDS, HTTPS traffic inspection and Antivirus blades enabled for regular home usage.
 
I appreciate the article, BUT why in the world would you use a thumbnail of a Ryzen 9 7950X3D next to an article warning about Ryzen 2 vulnerabilities? That's unnecessarily misleading for anyone not tech savvy enough to know better. Seriously, that's just wrong.
 
Because it's the only thing that run on all platforms.

First you have to load the webpage that has the script with JS enabled.

Second you have the option in browser settings "Don't allow sites to use JavaScript". Or select manually the sites whitelisted.

Some pages will not load and some pages will load partially with JS off.

At this pace we will need Corporate Firewalls with IPS, IDS, HTTPS traffic inspection and Antivirus blades enabled for regular home usage.
I have an add on JavaScript blocker for both Safari and Firefox. I’ve yet to see a page that didn’t work without js. Granted I don’t use “social media”‘or play web games. But as far as I can see nearly everything useful in JS can be done in bare HTML5.
 
Back