key4.lol
A very real certificate authority incident

TRUST
ISSUES.

A certificate authority used the number 4 as a private key. Not 4 followed by a lot of digits. Just 4. Let’s see who still trusts it.

ONE CLIENT. ONE CHAIN. NO HAND-WAVING.

PRIVATE KEY / ACTUAL VALUE
01 / THE CHECKTARGET → test.key4.lol

Let’s check your trust.

One request to a certificate signed with the compromised key. Your browser makes the call.

NO ROOT INSTALLS. NO CLICKING PAST WARNINGS.
CONNECTION REPORT— / —

Awaiting your trust issues.

Nothing has run yet. No login, downloads or trust-store changes required.

Open the test endpoint directly ↗
01 / ACCEPTED

This client took the bait.

It accepted this compromised chain. Exceptions or a TLS-inspecting proxy can change what was actually verified.

02 / CERTIFICATE REJECTED

That door stayed shut.

This connection was rejected: revocation, Certificate Transparency or missing trust may be why. Other apps can behave differently.

03 / NO CONNECTION

Not a verdict. Just a timeout.

A browser fetch can’t distinguish TLS rejection from a network failure. Open the endpoint to check the actual error.

02 / HOW IS THIS A THING?

384 bits of possibility.
They picked four.

The private keys of eight eMudhra intermediate CAs turned out to be tiny numbers. The key behind EM OV TLS CA – G3C is literally 4. Anyone can reproduce it from the public certificate.

This test uses that actual intermediate, cross-signed by AAA Certificate Services, to sign a fresh certificate for our own test hosts. No made-up root. No change to your trust store.

test.key4.loleMudhra · d=4AAA root
03 / SHOW THE RECEIPTS
Compromised issuer
EM OV TLS CA – G3C
Chain route
AAA Certificate Services cross-sign
Test hostnames only
test.key4.lol · key4.fzak.pl
Test certificate expires
Intermediate SHA-256
7485b51c0ed192878fa1d2f948fb529ae1842cc5086c4b67f7be5b2039de9489
Test leaf SHA-256
1cda62db06c3a190ec895e3ac38c74d344fe8c2b476b639d1a341437e3a45132

This checks one client against one affected certificate path, not every app or compromised intermediate. If the test certificate has expired, rejection is inconclusive. No test roots are installed.