logoalt Hacker News

Eight Bits of Trust: eMudhra's CA keys cracked in milliseconds

784 points • by hkc • today at 9:08 AM • 384 comments • view on HN

Comments

john_strinlai • today at 1:06 PM

new email from wayne, who is the original reporter:

"I've had more than a few emails asking on how this was discovered. The simple answer is: https://github.com/google/paranoid_crypto

Yeah, out of the box. CCADB was intended to be a quick corpus test before looking at subscriber certificates...

I've done a far more thorough check of all existing CCADB certificates, thankfully no more hits. Most of my time has been spent going over the basics that everyone assumed someone else had already done - a critical mistake to ever make near security.

So unless someone has significantly more computational resources or access to more cryptanalysis research the low-hanging fruit has been caught so far."

https://groups.google.com/a/mozilla.org/g/dev-security-polic...

➕ show 4 replies
jlmorton • today at 9:58 AM

In retrospect, having 100 trusted certificate authorities might have been excessive.

➕ show 6 replies
jasonjayr • today at 11:38 AM

> It's fortunate that the steps required here aren't particularly complicated for the devices you can update, and the advice essentially boils down to 'update them'. The problem is the devices you can't update or update easily.

> Update everything that ships a CA bundle: your OS ca-certificates package, certifi, Node, Homebrew, and rebuild your container images once the base images pick up the change.

> Devices you can't update are the hard part. Routers, printers, TVs, appliances with frozen firmware will trust these certificates until expiry, which is July 2039...

Quick -- we need to MITM all the smart TVs so they can be jailbroken in one fell swoop!

➕ show 9 replies
irusensei • today at 1:40 PM

Okay hear me out. People are complaining about unpatcheable IOT device and thats indeed concerning. But can’t we use the bad keys to generate seemingly value certificates that can be used to jailbreak these devices?

EDIT: seems its already happening? https://x.com/otomir23/status/2112697830687047918

➕ show 2 replies
WalterGR • today at 9:52 AM

Related: https://news.ycombinator.com/item?id=50166579

“eMudhra intermediate CA compromise” | 947 points | 19 hours ago | 408 comments

gagan2020 • today at 10:12 AM

"Importantly, none of the affected intermediate CAs were deployed in production, with the exception of one. Furthermore, none of these intermediate CAs, including the one deployed in production, have issued any end-entity certificates. This has been confirmed through our internal analysis and corroborated by publicly available Certificate Transparency records on crt.sh."

This statement is more discerning than anything else. It raises question about why this certificates exists in first place if not deployed since 2025. Is it deliberate attempt to do compromising of system?

In recent times, Indian Government is becoming quite rogue and don't follow the said procedures. So, it might be related to that as well.

bombcar • today at 9:49 AM

Of COURSE it's easy to crack, 4 isn't even prime!

➕ show 8 replies
amluto • today at 2:26 PM

For all that DNSSEC is crap, DANE would at least mean that a domain is only vulnerable to failures of the authorities relevant to the domain.

Meanwhile there are two less invasive changes that really ought to happen:

1. A clean way for things like curl and Python to start checking CT logs like Chrome does.

2. Name constraints. It’s long past time for the CAs of the world to have name constraints enforced. A CA that is not appropriate to use for .com should not work for .com. A CA that is not appropriate to use for .ae should not work for .ae. And the CA/B Forum should should requiring that all newly approved roots and all newly signed intermediates have appropriate name constraints.

➕ show 2 replies
Ambroos • today at 1:59 PM

My oven (which has a camera and WiFi, don't ask, it's a great oven otherwise and doesn't exist without WiFi) received a software update this morning. I can't help but wonder if it's related.

➕ show 3 replies
tclancy • today at 10:18 AM

I will say, there’s something almost reassuring when something goes boom that badly and the story is really silly. It’s like [horrific human-caused disaster] but it’s because of a Three Stooges episode.

➕ show 1 reply
supernes • today at 10:27 AM

Two more things to note about impact assessment: Flatpak uses the selected runtime's baked-in trust store (I think), so any apps may be susceptible even if you update the system package. Containers also don't inherit the host's trust store and use the one from the base image.

seanalltogether • today at 1:39 PM

Quick question for the crypto experts. I thought that the goal of a true random number generator was that all values between 0 and MAXCOUNT are equally likely, and therefore all private keys between those values are equally likely. Is this not true? If people are going to attempt to brute force your key, don't you want the floor to start at 0? If the floor is higher, won't the brute force start higher too?

➕ show 5 replies
geye1234 • today at 3:25 PM

For those running Ubuntu, the following page tells you what to do. It's two commands:

https://ubuntu.com/blog/emudhra-ca-compromise-fixes-availabl...

teyc • today at 9:30 PM

Maybe they are a CIA front like CryptoAG

asveikau • today at 7:09 PM

This issue is highlighting a few things for me:

* It's absurd that Python, Go, or Node need their own certificate stores that need separate updates. (Probably OK for browsers because they seem very on top of updating them without user intervention.)

* This issue is especially bad when you consider deployment through containers, docker, etc. More parallel copies of vulnerable certificate stores. With docker volumes you could mount the host's certificates into the containers and get "update once" behavior but I doubt people are doing this.

* It wouldn't be too hard to implement CRLs against the OpenSSL certs as a script that runs from cron. I might end up doing this.

tniemi • today at 10:42 AM

Someone used the Dilbert random number generator. https://www.random.org/analysis/

➕ show 1 reply
charles_f • today at 1:52 PM

I reckon that was an attempt to fend off the enemy. "Everyone expects us to set 196 bits of entropy, but you know what they won't expect? A single byte!"

nmeofthestate • today at 11:30 AM

I wonder how someone stumbled upon this - maybe leaked by someone inside eMudhra?

Since there's nothing to indicate that the private key was all zeroes and one non-zero lsbyte, and presumably nobody would try to brute-force a private key.

➕ show 4 replies
dang • today at 7:12 PM

Related ongoing thread: Your MCU Likely Escaped the eMudhra Intermediate CA Compromise - https://news.ycombinator.com/item?id=50183280

Previously: eMudhra intermediate CA compromise - https://news.ycombinator.com/item?id=50166579 - Oct 2026 (458 comments)

positive-spite • today at 9:39 AM

That's some criminal negligence right there.

8 bits is crazytalk!

➕ show 3 replies
mnx • today at 11:41 AM

I made test.key4.lol if you want to quickly check if your device/browser is vulnerable still.

andix • today at 5:43 PM

I'm wondering how many other private keys might be cropped to 32, 64 or 128 bit and much weaker than we think. Seems like nobody tested it yet. Otherwise the 8 bit would've been found within minutes.

➕ show 2 replies
Qision • today at 9:55 AM

It feels like they chose the private keys by hand.

➕ show 5 replies
zkmon • today at 5:32 PM

>> "These roots and issuing CAs have gone through independent audits for two years in a row and have been in browser trust lists since mid-2025".

the Audit part is scary. The same audit process might have cleared many other stuff.

https://www.einpresswire.com/article/951151580/emudhra-state...

➕ show 1 reply
dlcarrier • today at 5:02 AM

I thought CAs automatically filtered out really low keys. There's a great Suckerpinch video (https://youtu.be/M1si1y5lvkk) about trying to purposely make the least secure HTTPS page possible, and Tom initially tried to choose a laughably-low number as the key, but the CA automatically rejected it.

closetheloopdev • today at 4:41 PM

After my shock and anger subside, I can think more clearly now. I see many have mentioned using this to perform MITM on the IoT devices.

On the other hand, can we not utilize that to also protect the IoT devices? Can we not create a MITM proxy on our own network that proxies all of our IoT devices's traffic and then forwards them to the trusted HTTPS, MQTTS, ... endpoints upstream? Since the proxy already revokes these bad certificates, the upstream traffic should be protected. We should be able to revoke any other bad certs in the the future as well.

➕ show 1 reply
childintime • today at 1:25 PM

1. So there was no certification of the certifiers?

2. This is stupidity that rises to the level of being malicious. There is no excuse, this was a fraud. Their business was literally to promise security and.. make a profit. Nothing was ever delivered.

➕ show 2 replies
AnkitGuptaTruth • today at 5:01 PM

The needful is complete

TazeTSchnitzel • today at 10:06 AM

Could HN start feeding submissions through Pangram so us human readers don't have to suffer with reading the nauseating AI-prose?

➕ show 3 replies
kyleomalley • today at 12:44 PM

Question: what about the other trusted roots? Has anyone tested them?

I’ve tested most of them (from historical archives) and have automated testing any new CA certificates that show up in CT.

I’m calling the check “luggage code entropy” (1 byte).

It was a mistake to trust so many root CAs and misapply the same level of trust where clearly it is impossible to independently verify and most of the accountability is smoke and mirrors. We need to be asking “why” here, the stated reason needs to be much more than “because webtrust audit” and “we recorded the entire operational process for key material handling on YouTube with this open source implementation of key ceremony tooling and have underwritten the strength of the private key with a few $mm dollars, to be paid out to the rest of the roots for the shared reputational damage to the entire ecosystem should we fuck up (intentional or otherwise).

maeln • today at 10:00 AM

eMudhra explanation : https://bugzilla.mozilla.org/show_bug.cgi?id=2083449#c11

Kind of hard to understand how a bug would have generated a second pair of key so bad, and how would human would have ended up using them. Never attribute to malice what can be attributed to stupidity, but sometimes you wonder.

➕ show 3 replies
jesuswasjew • today at 2:03 PM

This does not look like blunder; more like espionage. The bigger guys are throwing emudra under the bus.

➕ show 1 reply
russfink • today at 2:22 PM

> One of eMudhra's certificate authority private keys is the number 4.

https://imgs.xkcd.com/comics/random_number.png

throwitaway222 • today at 3:57 PM

Predicting more LAN devices come pre-installed with a variety of private VPN options and an option to route all traffic from specific devices through that.

zkmon • today at 5:22 PM

Anything to update/check for Macs running on various versions of the OS?

Gabrys1 • today at 12:46 PM

This has a big upside: I can now MITM any Android app / IOT device without any suspicious set up on the device? (given it'll run on the unupdated OS and that cert revocation is not ON).

➕ show 2 replies
pwfisher • today at 2:46 AM

Test your browser and update your system's certificates: https://emudhra.we-have-a-problem.com/

eviks • today at 11:58 AM

> recovered all of them from their public certificates on my laptop just now, and it took less than a second.

Why wasn't this second spend by the parties accepting those certificates as valid before they were accepted?

➕ show 1 reply
hypfer • today at 10:17 AM

This is not a good write-up. Yesterday's discussion did contain better data, less self-Promotion and actually asked why it happened, instead of just saying "number small".

megous • today at 1:51 PM

Well, so what now? It's not like I have these in my system CA store, they're just intermediaries cross-signed by sectigo.

➕ show 1 reply
dbcooper • today at 10:36 AM

All the numbers were under 384. Surely they couldn't have ...

➕ show 1 reply
unsupp0rted • today at 2:59 AM

Never attribute to malice what can be explained by ignorance?

In this case I wonder if this was an intentional wide open doorway to fraud

➕ show 1 reply
yoyohello13 • today at 2:49 PM

I love how this article explains multiplication... very carefully.

bandrami • today at 12:58 PM

Shakti de. This should be firm-ending for them but I fear it won't be.

kristofferR • today at 5:10 PM

This is amazing! I've already been able to grab firmware images for two locked down ESP32-using devices that I struggled to jailbreak before.

alwa • today at 1:48 AM

Bugzilla bug in question:

https://.mozilla.org/showbug.cgi?id=2083449

➕ show 1 reply
ligarota • today at 12:57 PM

Man in the middle just for the love of the game

siwatanejo • today at 10:05 AM

https://xkcd.com/221/

➕ show 2 replies
sashank_1509 • today at 6:48 PM

I’ve tried asking Opus 5.5 but I don’t fully get the mechanics of this Certificate Authority stuff, wonder if someone can dumb it down here for me.

Here’s what I understand, every website sends some data encrypted by some key issued by CA and then the browser decrypts it first and then decrypts something in that message, to verify that Google.com, is google.com. I still don’t get why CA’s even exist, not sure what they are solving and how they’re doing it.

➕ show 2 replies

🔗 View 18 more comments