The RCE that AMD wouldn't fix
Posted by MrBruh 5 days ago
See also https://www.youtube.com/watch?v=4HjWHNLRMB0
Related: The RCE that AMD won't fix - https://news.ycombinator.com/item?id=46906947 - Feb 2026 (173 comments)
Comments
Comment by Terr_ 5 days ago
So solves the MITM, but massive infection is still trivial if someone compromises the webserver.
Comment by SahAssar 5 days ago
Sure, but that's true for 99% of things. Unless you establish trust outside of the normal distribution channel how would you protect against this? What is your proposed channel that is not bootstrapped from HTTPS PKI?
Comment by Terr_ 5 days ago
The basics are straightforward: It'd be better if the current installation contains one (or more) public keys, and anything it downloads must validate as being signed by a corresponding private key. You don't need to do fancy things like global certs, discoverable keys, or revocation lists.
If today's installation doesn't have those checks and relies solely on HTTPS... well, that's unfortunate, but it's not like it poses a tricky dilemma! You simply use today's not-so-secure mechanism to install the new code which has more-secure behavior, and it closes the attacker's window of (easier) opportunity.
Comment by SahAssar 5 days ago
The current installation was fetched via HTTPS, right? Either by you or in the factory.
Just saying the "bootstrapping already happened" does not make it not happen. It still needs to bootstrap trust from somewhere
Comment by Terr_ 5 days ago
A. You're asking what should be done if the manufacturer's auto-update server has already been completely compromised by hackers and remains compromised.
B. [Implicitly rejected in last coment] You're asking how anybody can guarantee the very first install can be trusted even if someone has compromised drivers.amd.com .
C. You're asking if the auto-update process can somehow trick a compromised daemon into overwriting itself with a legit copy.
Those are all interesting to contemplate, but they are at best "out of scope".
Comment by Terr_ 5 days ago
1. Axiom: We trust the current daemon and OS. We must assume this, because otherwise it's an entirely separate problem and this whole discussion of an auto-update channel is irrelevant.
2. Axiom: We trust the owner. Tampering with the local auto-update process is not part of our threat-model, because a user who can do that doesn't need to.
3. The daemon is already coded to trust a replacement/successor installer if it meets certain criteria, which are:
3a. It comes from a trusted domain name it already knows should be owned by the same developer/company.
3b. The remote end is authenticated to "be" that domain via certificates from the (trusted) OS.
3c. The content is protected from tampering due, becauese we trust that TLS/SSL encrypts it.
That all already exists, it does not need to be torn down or rebooted. The proposal here is to simply to harden it with a new requirement in the next version:
3d. The next install must be signed by a trusted key-pair that was shipped with the current install.
This improves trust because it means an attacker would also need to compromise keys held in a release pipeline, which is much easier to secure than a CDN/webserver.
Comment by J-Kuhn 4 days ago
Comment by lazide 5 days ago
Comment by rwmj 5 days ago
Comment by bri3d 5 days ago
Comment by SahAssar 5 days ago
Comment by rwmj 5 days ago
Comment by bravetraveler 5 days ago
I'm happy enough with TLS introduced: knowing the server I'm reaching for updates is actually 'amd.com'. Signatures would be nice, sure, but I wouldn't consider them nearly as critical or useful until now. Before we get too caught up in signatures, however, I'd like to see their new/improved updater actually take precedence.
As things stand, I'm not sure key rotation would go well... the updater doesn't mind itself, apparently.
Comment by stinkbeetle 5 days ago
Comment by bravetraveler 5 days ago
Comment by pseudohadamard 5 days ago
Comment by notepad0x90 5 days ago
Comment by Avamander 4 days ago
I blocked HTTP connections from my local network years ago and you wouldn't believe how many driver installers and auto-updaters break. One should never trust a HW vendor's (auto-)update implementation.
Comment by tlb 5 days ago
Comment by tptacek 5 days ago
Everyone's judging this by the standard of "how good a bug" this is. But that's not necessarily how a bug bounty should function. Important prior to frame this with: neither any individual bug bounty submission nor the sum of all valid submissions materially alters the security of a serious product, at least not on their own. The system they feed into (for instance: security engineers taking a validated bounty submission and then quickly auditing the entire tree for variants of the same bug) can move the dials. The bounty bugs themselves though are mostly a sideshow.
What's especially weird (you didn't say this, but the sentiment has popped up on all 3 threads about this story) is the idea that AMD would be trying to cover this up. Why would they care? They run a bug bounty program. They've accepted the premise that they have vulnerabilities.
(From earlier today, in add'n: https://news.ycombinator.com/item?id=48492908).
Comment by inlined 5 days ago
Comment by tptacek 5 days ago
Cards on the table I am not a fan of bug bounty programs, and the fact that they're an engineering process that turns out to be impossible to have public engineering discussions about is definitely one of many reasons why. Most companies should not run bug bounty programs.
Comment by tiberious726 4 days ago
Comment by tptacek 4 days ago
Comment by amiga386 5 days ago
MITM because you used http instead of https and you don't have any other verified cryptographic signature on your data -- get tae fuck, fix it pronto.
Comment by pietervdvn 5 days ago
Comment by arcfour 5 days ago
Comment by inlined 5 days ago
Comment by josephg 5 days ago
I've never heard of most of them. AAA Certificate Services? AC RAIZ FNMT-RCM? ACCVRAIZ1? Actalis? AffirmTrust? Even Godaddy is in there. I know I don't trust those guys.
Trust has gotta start somewhere. But its much better to TOFU, then pin signing keys in the updater.
Comment by joxdosba 5 days ago
Various domain registrars have been compromised over and over again (often by children!), resulting in companies like Tesla and Cloudflare getting owned.
The reality is that any vaguely competent attacker can compromise a court clerk and just compel e.g. the .com registry to hand over whatever domain they want.
Although I suppose the aforementioned problem has significant implications beyond dns…
Comment by gruez 5 days ago
Same reason security programs exclude social engineering, even though that's a pretty common way for companies to get pwned.
Comment by zulln 5 days ago
Comment by tptacek 5 days ago
Comment by joxdosba 5 days ago
Comment by sigmoid10 5 days ago
Comment by tuckerpo 5 days ago
Comment by cogman10 5 days ago
Comment by dlcarrier 5 days ago
Comment by nickdothutton 5 days ago
Comment by RachelF 5 days ago
It has literally cost them a Trillion dollars in market cap - Nvidia's CUDA is a big reason they're so much bigger than AMD.
Comment by voakbasda 5 days ago
Comment by cute_boi 5 days ago
Comment by ethbr1 5 days ago
Thought this was par for the course in closer-to-hardware engineering.
Never understood why the objectively way harder jobs pay so much worse as an industry.
Comment by greenavocado 4 days ago
Comment by Bilal_io 5 days ago
Comment by dcminter 5 days ago
Comment by jeroenhd 5 days ago
Given the way AMD has been treating this issue, I'm assuming they're just incompetent, though.
Comment by LgWoodenBadger 5 days ago
That’s my take.
Comment by 10000truths 5 days ago
Comment by throwway120385 5 days ago
Comment by wat10000 5 days ago
Comment by AlotOfReading 5 days ago
Comment by brokenmachine 5 days ago
So "verifying" using CRC is very stupid if you're trying to prevent malicious execution. You need to use cryptographic signatures.
Comment by AlotOfReading 5 days ago
Nevertheless, they're still useful protection against noise, and you usually want to detect it right as you're pulling protocol messages off the wire. Placing checksums in the last field of each message (as Ethernet does) simplifies the hardware implementation.
Comment by brokenmachine 5 days ago
From stackoverflow:
Because a 32-bit CRC yields only 2³² (approx. 4.29 billion) possible outputs, the Birthday Paradox dictates a 50% chance of an accidental collision after processing just ~77,000 unique inputs.
I've done it for shits and giggles and from memory it took my desktop PC maybe 10 minutes to generate a collision.
You're missing the point though.
Noise is not the only thing they should be protecting against.
The point is that AMD is executing code based on checking using an algorithm that has barely any protection from malicious inputs, which is stupid, and not fixing it just compounds that stupidity.
A cryptographic signature protects against both noise and malicious inputs.
Comment by AlotOfReading 5 days ago
It's fairly trivial, but still significantly harder than computing a single CRC.
You can do it with a single GF(2) multiplication, ignoring the complications of reflection and such. A normal CRC is just the special case of making the remainder 0 (again ignoring complications). You can also brute force it, but that's a bit slow for 64 bit CRCs and well, nanoseconds vs minutes in your example. Noise is not the only thing they should be protecting against.
Sorry, can you point to the comment where I tried to defend AMD's use of CRCs in this particular application? I think I've made it pretty clear that I don't think they're appropriate for cryptographic applications. I was just talking about the math.Different tools for different purposes. You probably don't want to be using your mac scheme for noise resistance, because then you're paying a cost in either buffer space, PDU size, or retransmits, and your error correction capabilities are nil. CRCs allow some error correction (albeit rarely used and inefficient for multibit errors vs FECs), good bit error detection properties, and are cheap. It's common to use both at different layers of a protocol stack.
Comment by sitkack 5 days ago
Comment by tptacek 5 days ago
Remember that at giant tech companies, the incentive is to pay out bounties --- there are people on the vendor's team whose performance is measured in part by how much the program pays out.
Comment by odyssey7 5 days ago
Comment by tptacek 5 days ago
Comment by Hizonner 5 days ago
Comment by tptacek 5 days ago
Comment by JumpCrisscross 5 days ago
Comment by tptacek 5 days ago
I've written about this before here, but to sum it up:
* Unless something wild happens in software engineering (formal methods, &c) as a result of AI, there's no such thing as eradicating security vulnerabilities. Focused programs can eliminate low-hanging fruit, but at the point where you're offering significant bounties part of the premise is that all that fruit has been plucked. The marginal security impact of a single bounty award, by itself, is immaterial.
* What bounty programs can do is focus internal engineering attention. Large product teams have huge backlogs of issues and security design punch lists. For features and feature bugs, there's a closed loop that prioritizes the work: the market. For security vulnerabilities, bounties serve a similar purpose. This is why many bounties are tightly scoped; the whole point of the program is to direct the efforts of specific product teams.
* When we're talking about 10,000+ person engineering teams, the most important thing to know about bug bounty programs is that the company is incentivized to pay out. No major tech company that runs a bounty is "covering up" vulnerabilities. There's no reason for them to do so. They're running a program that ostentatiously pays rewards to people who report vulnerabilities! There are people on the teams managing the bounties who in effect get paid more when the program pays out more: that's what success looks like.
You add all this stuff up and all the drama about AMD (or Google or whoever) being shady or stingy basically never add up.
Comment by stickfigure 5 days ago
Comment by tptacek 5 days ago
Comment by Hizonner 5 days ago
Nobody but AMD gives a fuck about AMD's internal policies or motivations.
Comment by tptacek 5 days ago
Comment by Hizonner 5 days ago
If you don't care about AMD, why are you white-knighting AMD and defending AMD's bad behavior?
But, hey, OK, let's not make it about AMD specifically. It doesn't matter what any company thinks the purpose of its program is, nor does it matter what scope any company unilaterally decides to set for its program. What the outside world is going to see is whether or not you ignore security bugs. Your weird arcane internal policies, justifcations, and "scopes" are irrelevant. And, although I don't honestly care much about "security researchers", you can't really expect them to keep track of your private set of scope rules either... assuming you even tried to tell them the rules in advance to begin with.
Comment by tptacek 5 days ago
My motivation here is very simple: I think people dunking on AMD's bounty program here mostly don't understand how bug bounties function. You apparently keep track of my comments on HN, so I think you know that's a beat I have here.
Comment by odyssey7 5 days ago
Comment by tptacek 5 days ago
Comment by gusgus01 5 days ago
We don't "know" anything unless we are at that company in particular and part of the management conversations. We at best can theorize based on incentives, but that's assuming companies and people are logical, which is a large assumption. I could easily see someone in the midst of layoffs and reduction of overhead initiatives thinking that the solution is to convince everyone you do payouts, but actually minimize payouts, which you could do by creatively using scopes.
Comment by tptacek 5 days ago
Comment by gusgus01 5 days ago
We also regularly see how the incentives we see as outsiders (and somewhat insiders) are regularly perverted. For the VW emissions scandal someone could have argued that the incentives were plain and clear, "Design better engines", but they instead went with "Design better ways to scam the tests". This is on top of the way companies will mask their true incentives, like how renewable energy programs are sometimes actually just the smart financial decision but it'll be portrayed as part of the green movement.
To include some explicit personal opinion, I can't throw a stone without hitting a news story about a company that thought they could get away with something but then eventually got called out by it... and they ultimately still got away with it.
Comment by tptacek 5 days ago
Comment by gusgus01 5 days ago
It was a pop culture example of incentives gone wrong to hopefully support why incentives aren't clear cut.
Comment by sakkura 5 days ago
Comment by tgsovlerkhgsel 5 days ago
> a blog post discussing this issue has already been published, which does not appear to be in accordance with the program’s terms.
Companies reject bugs as out of scope and/or sit on them forever, then use the bug bounty ToS as intimidation to keep people from disclosing them. And sadly, it works.
I'm adding AMD to my list of companies that prefer their bug reports to be a public full disclosure rather than attempting to go through their bug bounty program.
Comment by Bender 5 days ago
Comment by scw 5 days ago
UPDATE! Within a day of this blowing up on Hacker News, AMD reached back
out to me and said they would be looking into the matter after all.
[1] https://mrbruh.com/amd2/Comment by bwfan123 5 days ago
Love this. I am frustrated by idiot software features everywhere, but am not triggered yet to punish them. AI automation is coming close however.
Comment by hilariously 5 days ago
Works great!
Comment by OkayPhysicist 5 days ago
For example: Implement the CUDA. CUDA's won, hands down, that toothpaste is solidly outside the tube. Luckily, to the outside observer CUDA is just an API, and API's aren't copyrightable. Literally nothing is stopping AMD from hiring a relatively small team of developers to make AMD GPUs CUDA-compatible.
Comment by 20k 5 days ago
They could support OpenCL 3.0. Nvidia do. AMD just chooses not to, even though they're the ones that desperately needs to support it most
Instead, we got ROCm which has been a disaster from start to end. It barely supports windows or consumer GPUs, for some reason. Its a buggy mess, for some reason. HIP/ROCm has worse performance than OpenCL, because they downgraded their compiler and stopped extracting read/write information on variables leading to a massive loss of parallelism and utilisation on their GPUs.. for some reason. Why? What are they doing? How is this so rubbish?
Literally ALL of this is WONTFIX, and I don't have a clue why. I've filed bugs, was part of their vanguard supporter program, have tried to reach out to AMD people to (gently) explain why good support is important. Or even just figure out what technology they're even intending to support for GPU development. Is ROCm deprecated? What should we be using on windows for GPU compute on consumer hardware AMD? For the love of god amd I want to make you money
As of 2026, the best cross platform cross vendor API for doing GPU compute is.. drumroll.. OpenCL 1.2. Vulkan is getting there, but its still missing a bunch of stuff. And this is literally AMDs direct fault at this point
Comment by z3ratul163071 5 days ago
my suspicion is that it is the company culture: the hardware engineers are the real engineers. software is a triviality left for the lesser minds. the consequence is they mess up every product... everything they do needs software.
Comment by actionfromafar 5 days ago
Essentially it forces AMD to play by NVidias rules, exactly like how they were forced to follow Intel rules. (Ignore for a second that the API / ISA boundary is different.)
But despite that, I also believe AMD would be better off just implementing CUDA.
Comment by rincebrain 5 days ago
I can't imagine the logic involved in "this is implemented, let's toss it in the dumpster" for that.
Comment by hgoel 5 days ago
But the issue remains that the actual support and debugging tools remain so atrocious that it doesn't help to combat the CUDA monopoly. They've further burned a lot of trust by never really delivering on their promises to do better unless you're a customer large enough to get personalized attention from their engineers.
This ends up being a double whammy because not only are you pushing away smaller businesses, you're also pushing away single developers that go on to influence purchasing/development decisions.
Comment by mnau 5 days ago
Imagine a meeting where they signed off on that. So each developer will have to provide a different binary for each of our architectures? Yep. And once we release the new architecture, developer will have to recompile his program for the new architecture? Yep. Sounds good to me.
Comment by hgoel 5 days ago
They lost me as a customer when they rushed dropping support for the Radeon VII because of the need to ship binaries for every ISA, and didn't deliver proper 5700XT support until it was outdated.
Comment by bri3d 5 days ago
A non-default-installation set of AMD tools (Ryzen Master and probably others) had an auto-updater which used HTTP instead of HTTPS. It's clear this is a feature they'd basically forgotten about; it even pointed to an ATI domain. A third-party bug bounty company rejected it because MITM was out of scope. AMD are incompetent at making software (news at 11), kept asking for extensions, and took an incredible amount of time to deal with it. Eventually they removed this updater entirely and replaced it with one in the app (rather than the installer) that uses HTTPS + a CRC32 (for some reason). The initial vuln was very stupid and should have been fixed faster. As for the current system, if you're mad about HTTPS-protected auto-updaters (which is valid), you've probably got a lot of them to go to war against.
Comment by asveikau 5 days ago
I disagree that they should only add HTTPS and call it done. They should also add some kind of signing check before running the payload.
If anything I'd say HTTPS is optional if they do that part.
Comment by qrobit 5 days ago
Comment by greenavocado 5 days ago
Comment by brikym 5 days ago
Comment by ezoe 5 days ago
Don't bother to use Windows?
Comment by mrguyorama 5 days ago
I am a diehard fanboy of their GPUs, and have been since they were still ATI but I had to finally purchase an nvidia GPU because of how bad AMDs software quality is.
My powerful 5700XT spent two years basically broken, because the default, driver provided fan curve locked the fan at 27%. For two years, I couldn't figure out why my GPU constantly crashed, because it was overheating, because the default fan curve prevented the GPU from keeping itself cool and it would eventually just give up.
That diagnoses was complicated by the fact that AMD GPUs just resetting is very common. There's a watchdog timer in Windows that resets parts of the GPU stack because Microsoft is traumatized by 60% of Windows Vista BSODs being caused by bad nvidia drivers. Apparently sometimes if you increase this watchdog timer, the GPU eventually finishes whatever was giving it trouble.
But I still love AMD, and the ryzen line is a great value in the mid range. So I bought another AMD CPU and am very happy with it. But it somehow included software and this specific auto updater utility. Which I don't need, since I don't want to update the drivers for a GPU that I shouldn't be using (maybe except some video encoding lift, but my GPU can do that too). But I could not figure out a way to kill or prevent this stupid little autoupdater utility which always steals focus, for no reason at all. It shouldn't even be popping up a CLI! Windows task scheduling is incredible and would do this without a problem, and give you all the infrastructure to notice this was happening!
Comment by LooseMarmoset 5 days ago
The funny thing is, in Linux, the drivers are pretty great as far as I can tell. It's not like there aren't bugs, probably, but mostly everything "just works". You can't depend on FSR in Linux, for example - Doom Eternal just goes blank if you turn it on. I can live without it, though, and everything else seems fine, including performance.
Nvidia linux drivers make me quite upset - they're fine once you finally get them working, but you approach Nvidia driver updates with extreme caution in Linux
Comment by somat 5 days ago
I still need to figure out why the internal curve is not working, but have not gotten around to it because I like my controller so much. The novel bit is that as I was writing it I had an epiphany "Why a curve? What we really want is to close the loop. Set an ideal temperature and figure out the fan speed to maintain it" So my controller has a cute little PID loop to do just that. realistically it never works as I imagined. At idle the temp is lower then the set point at the slowest fan speed and at load the full speed fan keeps it ~ 10C higher than the set point(perhaps this means my set point should be higher?). but sometimes I get that goldilocks midrange load and it works great.
Comment by dmitrygr 5 days ago
I started it with $100 - https://ko-fi.com/transactions/03df753c-09b0-4972-8e53-adf06...
Comment by gettingoverit 5 days ago
Makes me wonder, how much of that 4 month delay was spent deliberating with the state actor. As if there was Prism, and both companies were legally bound to allow MitM to happen, and thus don't have a bug bounty for it.
Comment by nyanpasu64 5 days ago
Now if they could've started shipping a modified AMD auto update that followed redirects, that would allow them to pwn users of the updated program. But it would do nothing to people who had installed older versions, up to the version the author installed (which left a black window open indicating the downloads never completed)...
Comment by robotnikman 5 days ago
Comment by protocolture 5 days ago
You want this stuff disclosed to you.
Comment by Dwedit 5 days ago
If the autoupdater can't handle the redirection when grabbing the XML file, then it's a case of accidental safety by mistake that would prevent grabbing the plain http file.
Comment by RandyOrion 5 days ago
Comment by ForOldHack 5 days ago
Note to self: Never piss off a programmer, while he is gaming. To quote: "You're gonna die for that." -Duke Nukem.
Comment by leecommamichael 5 days ago
Comment by stuaxo 5 days ago
I'd make it worse by having the amount next to each and a running total.
Comment by xyst 5 days ago
Comment by LearnYouALisp 5 days ago
Comment by sakkura 5 days ago
Those that have access to international network links.
Those that have the ability to generate new firmware that simply passes the CRC32 checksum.
Comment by tptacek 5 days ago
Comment by helterskelter 5 days ago
I just hope we can get Libreboot working with Framework sometime.
Comment by rirze 5 days ago
Comment by inigyou 5 days ago
Comment by thesuitonym 5 days ago
Comment by happytoexplain 5 days ago
Or, alternatively, and especially in gender relations, any lie intended to manipulate or demean another person. As opposed to lying to protect yourself, to swindle somebody, or some other reason. This is closer to the original idea, but still not there.