r/programming • • 7d ago

Go Issues Emergency Update Blocking Eight CA Keys Over Undisclosed Security Concerns

https://thehackernews.com/2026/10/go-issues-emergency-update-blocking.html
336 Upvotes

23 comments sorted by

152

u/Xaeroxe3057 7d ago edited 7d ago

If the concern is worth blocking certs over then surely it’s worth disclosing what the concerns were yes?

EDIT: See https://emudhra.we-have-a-problem.com/

65

u/minaguib 7d ago edited 7d ago

39

u/cosmic-parsley 7d ago

Why is the CA still trusted at all? How do we know there isn’t a 9th key that was generated by the same poor practices.

→ More replies (4)

136

u/davvblack 7d ago

omg lol the security concern is that the private keys were almost entirely zeros except the last byte. that’s absurd.

37

u/minaguib 7d ago

That would be hilarious if true (and, I suppose, would mean that there's a nonzero probability that they were "discovered" moreso than "leaked")

13

u/davvblack 7d ago

whatever the opposite of nonzero is. manyzero i guess.

→ More replies (2)

5

u/minaguib 6d ago

Well hot damn, they were literally just "discovered" not "leaked"

https://scotthelme.co.uk/eight-bits-of-trust-emudhras-ca-keys-cracked-in-milliseconds/

1

u/ingridmartens-9 1d ago

If it was a one-byte key, there were only 256 candidates. "Discovered" is technically right, but it makes the search sound much harder than it was.

31

u/the_gnarts 7d ago edited 7d ago

Looks like a horribly hackish substitute for doing revocation the X.509 way.

EDIT: The corresponding commit in Rustls. Looks like it’s making waves.

Diginotar / Türktrust flashbacks. To think that these CAs operate as paid services lol.

20

u/Own_Back_2038 7d ago

X.509 revocation is not something you should ever rely on

3

u/simon_o 5d ago

It's completely absurd that libraries bundle certificates, instead of using the OS' certificate store.

18

u/jared__ 7d ago

the great thing about go's backwards compatibility promise is that you can just update the version without any worry that it will break shit.

14

u/BadlyCamouflagedKiwi 7d ago

They've done breaking stuff in the name of security before - for example, about 1.22 they dropped support for RSA key exchange in TLS which we turned out still to be receiving from, let's say, a major financial institution. Fortunately there was a GODEBUG switch but it was an exciting rapid rollback on that release when we realised it didn't connect any more.

6

u/gronodev 7d ago

Not always That's mostly ok if you just build your code with a newer tool chain But if you actually bump your go version in go.mod... there can be changes that could be considered as breaking

See various GODEBUG escape hatches: https://go.dev/doc/godebug

1

u/Single-Virus4935 6d ago

That is what I like about go: I have absolutely NO(!) problem updateing the SDK.  The Compatibility Promise was always fullfiled and updating is just compiling with the new SDK and running the tests.