DYDX.EXCHANGE DV-CERT MIS-ISSUANCES
#2/3
Below you can find a listing of 34 LE (Let's Encrypt) leaf certs (certificates) that were all issued on 2024-07-23 for [*.]dydx.exchange (i.e. literally dydx.exchange and *.dydx.exchange , where '*' represents exactly one subdomain level).
Most -if not all- of those certs were mis-issued to cybercriminals who used impersonating websites after modifying DNS records without authorization. Of those certs, only 27 were revoked (as of 2024-08-05).
More about the associated DNS attack can be read in https://www.bleepingcomputer.com/news/security/defi-exchange-dydx-v3-website-hacked-in-dns-hijack-attack/.
REMARKABLE / NOTES
Out of caution, all certs issued to [*.]dydx.exchange on 2024-07-23 should have been revoked.
I see no reason to assume that the 7 of the 34 certificates issued during the same small timeframe (14:26:21 GMT through 19:31:11 GMT, with the last non-revoked cert issued at 15:47:29 GMT, i.e. within 2 hours of the first cert) were not mis-issued.
Note: criminals can still abuse them by attacking individuals by forging DNS responses to them.
In one case, no reason whatsoever was specified for the revocation. In all other cases "cessationOfOperation" was specified.
IMO both are wrong and misleading. The reason should have been the one used for mis-issuance:
<<< privilegeWithdrawn (RFC 5280 CRLReason #9) >>>
See, for example, https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/policy/#611-end-entity-tls-certificate-crlrevocation-reasons and https://blog.mozilla.org/security/2022/05/16/revocation-reason-codes-for-tls-server-certificates/.
In addition to the previous point: maybe I overlooked it, but I found no mention of this security incident on https://letsencrypt.org. Does LE *not* want you to know about this? What happened to "certificate transparency"?
For part of their subdomain names (such as links.dydx.exchange) dydx.exchange seems to have reused an asymmetric keypair *that* many times that tapping on "Subject Public Key Info" in i.e. https://crt.sh/?spkisha256=a49e1f32dc76b0fb9522eb4557b80ce522eab725ac8bfe67b510856e7de0ab8e causes crt.sh to time out (or to crash).
I don't know why there's always a one hour difference between the "invalid before" timestamp and the timestamp of the countersignature. Perhaps there's a mandatory 1 hour delay (please let us know if you know what the reason is).
IMPROVING READABILITY
I've removed all dates that were July 23, 2024 from the list below.
In addition, *each* certificate was actually issued for both:
<subDN>.dydx.exchange
Not mentioned in the following list: www.<subDN>.dydx.exchange
(this also applies to dydx.exchange and www.dydx.exchange).
Records in the list below are sorted in chronological order of issuance of the precertificate.
LEGENDA
r#nn: revoked, #nr (2 digits)
v#nn: valid (not revoked), #nr
f: valid From time (not valid before)
c: counter-signature timestamp
r: revocation timestamp + "(reason)"
s: source
---- BEGIN OF LIST ----
r#01: api.dydx.exchange
f: 14:26:21 GMT
c: 15:26:21.595 GMT
r: 20:59:14 UTC (cessationOfOperation)
s: https://crt.sh/?id=13897807683&opt=ocsp
r#02: dydx.exchange
f: 14:26:23 GMT
c: 15:26:23.451 GMT
r: 21:00:08 UTC (cessationOfOperation)
s: https://crt.sh/?id=13897808125&opt=ocsp
r#03: ios-beta.dydx.exchange
f: 14:26:47 GMT
c: 15:26:47.554 GMT
r: 20:59:36 UTC (cessationOfOperation)
s: https://crt.sh/?id=13897811047&opt=ocsp
r#04: docs.dydx.exchange
f: 14:27:56 GMT
c: 15:27:56.096 GMT
r: 21:00:16 UTC (cessationOfOperation)
s: https://crt.sh/?id=13897811225&opt=ocsp
r#05: links.dydx.exchange
f: 14:28:19 GMT
c: 15:28:19.601 GMT
r: 20:59:47 UTC (cessationOfOperation)
s: https://crt.sh/?id=13897811650&opt=ocsp
r#06: integral.dydx.exchange
f: 14:28:22 GMT
c: 15:28:22.915 GMT
r: 21:00:22 UTC (cessationOfOperation)
s: https://crt.sh/?id=13897821925&opt=ocsp
v#01: status.dydx.exchange
f: 14:28:37 GMT
c: 15:28:37.649 GMT
r:
NOT REVOKED (as of 2024-08-05)
s: https://crt.sh/?id=13897817710&opt=ocsp
r#07: media.dydx.exchange
f: 14:29:06 GMT
c: 15:29:06.874 GMT
r: 20:59:56 UTC (cessationOfOperation)
s: https://crt.sh/?id=13897812660&opt=ocsp
r#08: help.dydx.exchange
f: 14:29:18 GMT
c: 15:29:18.337 GMT
r: 21:00:31 UTC (cessationOfOperation)
s: https://crt.sh/?id=13897814167&opt=ocsp
r#09: indexerv4staging.dydx.exchange
f: 14:29:19 GMT
c: 15:29:19.843 GMT
r: 21:12:13 UTC (cessationOfOperation)
s: https://crt.sh/?id=13897819527&opt=ocsp
r#10: forward.dydx.exchange
f: 14:29:26 GMT
c: 15:29:27.028 GMT
r: 21:12:34 UTC (cessationOfOperation)
s: https://crt.sh/?id=13897820336&opt=ocsp
v#02: metabase.dydx.exchange
f: 14:29:26 GMT
c: 15:29:27.210 GMT
r:
NOT REVOKED (as of 2024-08-05)
s: https://crt.sh/?id=13897815842&opt=ocsp
r#11: indexerv4dev.dydx.exchange
f: 14:29:51 GMT
c: 15:29:52.070 GMT
r: 21:12:52 UTC (cessationOfOperation)
s: https://crt.sh/?id=13897821570&opt=ocsp
r#12: analytics.dydx.exchange
f: 14:30:21 GMT
c: 15:30:21.562 GMT
r: 21:12:21 UTC (cessationOfOperation)
s: https://crt.sh/?id=13897822133&opt=ocsp
r#13: legacy-docs.dydx.exchange
f: 14:30:22 GMT
c: 15:30:22.997 GMT
r: 21:12:40 UTC (cessationOfOperation)
s: https://crt.sh/?id=13897821933&opt=ocsp
r#14: margintokens.dydx.exchange
f: 14:30:38 GMT
c: 15:30:38.606 GMT
r: 21:13:01 UTC (cessationOfOperation)
s: https://crt.sh/?id=13897821784&opt=ocsp
r#15: parity.dydx.exchange
f: 14:31:13 GMT
c: 15:31:13.749 GMT
r: 21:12:45 UTC (cessationOfOperation)
s: https://crt.sh/?id=13897830727&opt=ocsp
r#16: skhelp.dydx.exchange
f: 14:31:14 GMT
c: 15:31:14.982 GMT
r: 21:12:27 UTC (cessationOfOperation)
s: https://crt.sh/?id=13897829203&opt=ocsp
r#17: pm-bounces.dydx.exchange
f: 14:31:38 GMT
c: 15:31:38.388 GMT
r: 21:13:09 UTC (cessationOfOperation)
s: https://crt.sh/?id=13897833728&opt=ocsp
r#18: trade.dydx.exchange
f: 14:32:28 GMT
c: 15:32:28.689 GMT
r: 21:18:56 UTC (cessationOfOperation)
s: https://crt.sh/?id=13897833284&opt=ocsp
r#19: v#03: margin.dydx.exchange
f: 14:32:36 GMT
c: 15:32:37.015 GMT
r:
NOT REVOKED (as of 2024-08-05)
s: https://crt.sh/?id=13897844502&opt=ocsp
r#20: stage.dydx.exchange
f: 14:32:41 GMT
c: 15:32:41.083 GMT
r: 21:18:29 UTC (cessationOfOperation)
s: https://crt.sh/?id=13897834807&opt=ocsp
v#04: whitepaper.dydx.exchange
f: 14:33:17 GMT
c: 15:33:18.231 GMT
r:
NOT REVOKED (as of 2024-08-05)
s: https://crt.sh/?id=13897844858&opt=ocsp
r#21: testing.dydx.exchange
f: 14:33:35 GMT
c: 15:33:35.409 GMT
r: 21:18:36 UTC (cessationOfOperation)
s: https://crt.sh/?id=13852529152&opt=ocsp
v#05: url5082.dydx.exchange
f: 14:33:47 GMT
c: 15:33:47.838 GMT
r:
NOT REVOKED (as of 2024-08-05)
s: https://crt.sh/?id=13897842992&opt=ocsp
r#22: plhelp.dydx.exchange
f: 15:35:53 GMT
c: 16:35:53.580 GMT
r: 21:30:36 UTC
s: https://crt.sh/?id=13898344519&opt=ocsp
r#23: alpha.dydx.exchange
f: 14:36:47 GMT
c: 15:36:47.886 GMT
r: 21:19:04 UTC (cessationOfOperation)
s: https://crt.sh/?id=13897856627&opt=ocsp
r#24: indexerv4testnet.dydx.exchange
f: 14:37:43 GMT
c: 15:37:44.056 GMT
r: 21:29:58 UTC (cessationOfOperation)
s: https://crt.sh/?id=13897859052&opt=ocsp
r#25: hihelp.dydx.exchange
f: 14:41:50 GMT
c: 15:41:50.408 GMT
r: 21:30:27 UTC
s: https://crt.sh/?id=13897870799&opt=ocsp
v#06: em5800.dydx.exchange
f: 14:44:19 GMT
c: 15:44:19.193 GMT
r:
NOT REVOKED (as of 2024-08-05)
s: https://crt.sh/?id=13897878923&opt=ocsp
r#26: v4dev.dydx.exchange
f: 14:45:36 GMT
c: 15:45:36.560 GMT
r: 21:30:04 UTC
s: https://crt.sh/?id=13897883063&opt=ocsp
1 hour later, not revoked:
v#07: slack.dydx.exchange
f: 15:47:29 GMT
c: 16:47:29.547 GMT
r:
NOT REVOKED (as of 2024-08-05)
s: https://crt.sh/?id=13898502795&opt=ocsp
hours later, revoked:
r#27: metrics.dydx.exchange
f: 19:31:11 GMT
c: 20:31:12.076 GMT
r: 20:43:16 UTC (NO REASON PROVIDED)
s: https://crt.sh/?id=13900209357&opt=ocsp
---- END OF LIST ----