Why is it that every time there’s drama about hardware, its something I own?
That’s because of monopolies… There are only two brands of PC CPUs you could own…
That’s a duopoly and is also not true, there are ARM processors readily available outside of Intel and AMD.
Oh how I miss Cyrix
Nice to know that security researchers are giving AMD some love too. Ill be sure to turn the patch off on my 3600 once it rolls around (can’t be losing any frames for something silly like security)
That’s a very bad idea.
The bad news is that the exploit doesn’t require physical hardware access and can be triggered by loading JavaScript on a malicious website.
Planned fix
December 2023
Yikes.
It’s worth noting these are the firmware / microcode fixes.
There’s already a software solution available,
There is a software workaround, you can set the chicken bit DE_CFG[9]. This may have some performance cost, and the microcode update is preferred.
source: https://www.openwall.com/lists/oss-security/2023/07/24/3
AMD has also already released a fix for the big boy - the EPYC processor.
The MSR bit is potentially a large performance loss and AMD recommends their partners not use it. In my tests is was 5-15% on EPYC depending on workload. “Some performance cost” is really hiding the reality of that bit.
How come branch prediction seems so vulnerable to exploits? Both spectre and meltdown were also caused by branch prediction not working quite right.
It wasn’t branch prediction alone, it was the cache combined with branch prediction. The problem is that even discarded outcomes fill the cache with data. Those older vulnerabilities also had the problem that the access permissions check was done after the branch prediction. It’s probably too expensive to do when it’s not even clear yet whether the branch is going to be taken (that’s just speculation on my part though).
(that’s just speculation on my part though).
I see what you did there, even if you didn’t :)
The more steps in the instruction pipeline the more ways there are for there to be an error where some result doesn’t get erased when undoing stuff from the wrong branch. It’s basically like telling someone to move into a new house and get settled then stopping them six hours in and trying to make sure you get all their stuff out.
Intel had something like this as well (side channel attack?). I remember it because Linus Torvalds (creator of Linux kernel) ripped Intel a new one.
They’ve had a couple. Spectre is the one to which you’re referring, I bet.
Is there any information on the performance impact of the microcode fix or is it too early for that?
So far the word is the microcode fix causes negligible performance impact, but using the MSR fix causes 5-15% loss. In my own testing on EPYC hardware, microcode made no noticable difference to my workloads and benchmarks. Same as random noise in results.
ELI5 how this works?
Oh poop.
Feeling pretty smudge about my 2400g and RX580 “gaming” rig.
Makes me glad I’m using an ancient CPU from before the vulnerability.
Well
that’s not great
I’m just going to pretend I didn’t buy any AMD surface laptops.
ELI5 how this works?
A CPU performs operations like “read a small bit of thing from the memory into the CPU” and “do a small bit of computation on things inside the CPU” and “put a small bit of thing from the CPU into the memory”.
Doing small bits of computation on things inside the CPU is very fast but moving bits of things from or to the memory is slow in comparison. In order to not be slowed down, CPUs read the code ahead of what is currently being executed, and try to guess what is going to happen and what will need to be moved from the memory into the CPU, so they can do it ahead of time, and have the small bit of thing from the memory already available right there in the CPU when it’s time to do a bit of computation on it. That way, there is no need to wait on slow memory, and the CPU runs much faster overall. That’s a good thing.
In this case, a researcher found a way to make certain CPUs guess what is going to happen with the code wrong, in such a way that the small bits of things that were read from the memory ahead of time do not get properly cleaned up, and can still be found inside the CPU by another program. Those small bits of things might be your password or banking details, so that’s bad.
Updated amd64-microcode for EPYC processors appears available for several distributions which has mitigations available. I went ahead and proactively grabbed the microcode update from Debian unstable (not the best practice) and applied it without issue to my Bullseye/EPYC.
This isn’t exactly condoned as it’s not officially a backport, but I’ll take my chances as this is pretty critical.
Date of the updated microcode should be July 19th.
This is not a back-end at all…