A team of Google researchers working with AMD recently discovered a major CPU exploit on Zen-based processors. The exploit allows anyone with local admin privileges to write and push custom microcode updates to affected CPUs. The same Google team has released the full deep-dive on the exploit, including how to write your own microcode. Anyone can now effectively jailbreak their own AMD CPUs.
The exploit affects all AMD CPUs using the Zen 1 to Zen 4 architectures. AMD released a BIOS patch plugging the exploit shortly after its discovery, but any of the above CPUs with a BIOS patch before 2024-12-17 will be vulnerable to the exploit. Though a malicious actor wishing to abuse this vulnerability needs an extremely high level of access to a system to exploit it, those concerned should update their or their organization’s systems to the most recent BIOS update.
From the article:
helped in no small part by AMD reusing a publicly-accessible NIST example key as its security key
That’s a whole new level of … something.
90% of security vulnerabilities are caused by “let’s just use/do this for now and change it before production”.
What does the fix look like?
Code scanners? Hackathons? Code review by new hires? Education? Methodology?
All of the above and more? There’s always the risk of something falling through the cracks, so the more layers of security measures you add/can afford the better.
I’d like that to be “new”, but… It’s not exactly the first time this exact thing happened in tech.
I spent quite some time trying to find a better way to put it, but stupid, idiot, ignorance, incredulity just didn’t seem to cover the experience of WTAF?
Any guesses how long it will take for someone to use this jailbreak to get Doom to run on just the CPU?
In theory, at least some of the affected processors should have more than enough cache to run it directly from there, right?Though I have to admit that I don’t understand CPU internals well enough to know if the microcode even has enough control over the chip to make that physically possible.
The new AMD 9950X3D CPU has 128MiB of L3 cache. Windows 95 installs to about 60MiB in total. Doom takes up 12MiB for all episodes. That means in theory you could load all of Windows 95 and DOOM into the L3 cache with some room to spare.
Of course this wouldn’t work out in practice because you’d lose those cache lines at some point during execution. However, Intel does have a part in its boot process where it runs a miniature OS in cache alone, but that’s part of the CPU design and probably can’t be altered.
If you could hijack the temporary “use cache as RAM” stage, you’d still lack video output or game input. I don’t think you can initialize the I/O components without completely clobbering the cache?
coming from jailbreaking iphones, what exactly does jailbreaking a cpu imply in this case?
I figure you can already do what you want in your pc so what “features” was being blocked from users?
Microcode is used to „patch” a CPU in case bugs are found and allows tweaks to very low level logic. From the original research paper it looks like understanding microcode is a challenge, let alone writing new microcode. In all likelihood this will be used for more research and reverse engineering of things that are trade secrets closed from public knowledge.
Now that we have examined the vulnerability that enables arbitrary microcode patches to be installed on all (un-patched) Zen 1 through Zen 4 CPUs, let’s discuss how you can use and expand our tools to author your own patches. We have been working on developing a collection of tools combined into a single project we’re calling zentool. The long-term goal is to provide a suite of capabilities similar to binutils, but targeting AMD microcode instead of CPU machine code. You can find the project source code here along with documentation on how to use the tools.
The zentool suite consists of tools for microcode patch examination including limited disassembly, microcode patch authoring using a limited amount of reverse engineered assembly, microcode patch signing, and microcode patch loading. We plan to also release details on how to decrypt and encrypt microcode patches in the future. A significant portion of the ongoing research is focused on building an accurate understanding of the AMD microcode instruction set – the current disassembly and assembly are not always accurate due to this challenge.
If the scene is willing to pay people enough, I can see cheaters use this to write cheats that are undetectable by the OS. Right now, VM detection and PCIe bus monitoring for DMA devices seems to catch the most proficient cheaters, but it the CPU can turn your increment function into a multiplication, all bets are off. If cheaters do go this route, I expect game companies to blacklist these CPUs entirely.
Altering the CPU instructions could be very useful for reverse engineering, as debugger detection could be worked around on the CPU level. You could also use it to alter and monitor things like encryption functions. Malware could use microcode to write an entire class of CPU instructions custom to the malware/infection/infected PC itself, making it impossible to reverse engineer it using standard means. How powerful this stuff really is depends on how much free space there is in the memory that contains the microcode, but it’s pretty cool and scary stuff, depending on if your intentions are good or bad.
Intel used to have SGX, a processor component that was designed to run isolated code that not even the OS could manage. The only official way to play Blu-ray on PC, Powerlink, made heavy use of that for hiding DRM code. SGX got breached with SPECTRE/MELTDOWN, though, and Intel dropped it somewhere around the 9th Gen core processors for desktop CPUs. If AMD has a similar feature I don’t know about, that can be presumed broken on these chips now.
I would guess Zen 1 through Zen 4 is currently the majority of gaming PCs. It’s certainly a massive percentage. I don’t think game companies can realistically just blacklist all of them.
Some companies refuse to boot games that aren’t running Windows 11 in secure boot mode with TPM 2.0 for remote attestation, using the TPM as a hardware ID that’s difficult to fake. Ignoring half the PC gamers who are on Windows 10 is worth it for them for fighting cheaters alone.
I don’t think they will ban anyone until the first microcode cheats are proven to exist, but after that things may turn sideways for some AMD owners in some games.
Okay, but I’m definitely certain that the majority of gamers running Windows 11 in secure boot mode with TPM 2.0 are running Zen 3 or 4. How many times can they cut their user-base in half before the people who are left leave because it’s a dead game?
We’ll have to wait and see. AMD has about 31% hardware share on the Steam hardware survey (which includes the AMD driven Steam Deck of course) and Windows 10 makes up 53% of Team’s user base. Would cutting off 31% from the 44% or PC gamers really hurt their bottom line enough to not warrant anti cheating technology? It’s a significant chunk of gamers, but they’re already dropping literally most PC gamers anyway.
If AMD/Intel were close to a 50/50 split the story may be different, but unfortunately Intel still has most of the PC market share. I think gamers may be tricked into calling AMD hardware “cheater hardware” before calling out their favourite games companies.
You can jailbreak your tesla to give you heated seats without paying that clown. For starters.
You said the phrase, so I unfortunately need to share this music video. My apologies.
Perhaps this could be used to jailbreak the PS5 🤔