This client took the bait.
It accepted this compromised chain. Exceptions or a TLS-inspecting proxy can change what was actually verified.
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.
This connection used the compromised certificate chain. If you got here without an exception or TLS-inspecting proxy, this client accepted it. If you clicked past a warning, the result is inconclusive.
One request to a certificate signed with the compromised key. Your browser makes the call.
Nothing has run yet. No login, downloads or trust-store changes required.
Open the test endpoint directly ↗Test curl, a script or an app through its own TLS stack. Keep certificate verification on.
curl -v https://test.key4.lol/probe.jsonJSON response → accepted connection. Certificate error → rejected chain.
Timeout / DNS / network error → inconclusive. Never add -k, --insecure or a custom CA.
It accepted this compromised chain. Exceptions or a TLS-inspecting proxy can change what was actually verified.
This connection was rejected: revocation, Certificate Transparency or missing trust may be why. Other apps can behave differently.
A browser fetch can’t distinguish TLS rejection from a network failure. Open the endpoint to check the actual error.
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.
7485b51c0ed192878fa1d2f948fb529ae1842cc5086c4b67f7be5b2039de94891cda62db06c3a190ec895e3ac38c74d344fe8c2b476b639d1a341437e3a45132This 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.