Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Certificate verifier doesn't reject mismatched signature algorithm #699

Open
AGWA opened this issue May 25, 2020 · 0 comments
Open

Certificate verifier doesn't reject mismatched signature algorithm #699

AGWA opened this issue May 25, 2020 · 0 comments
Labels

Comments

@AGWA
Copy link

AGWA commented May 25, 2020

When verifying a certificate to see if see if should be logged, CTFE accepts certificates whose signatureAlgorithm field doesn't match the signature field in the tbsCertificate.

The implication is that it's possible to spam logs by taking a certificate signed by a trusted CA and replacing the signatureAlgorithm with an arbitrary OID. Since this field isn't covered by the signature, CTFE accepts the certificate. Since the OID space is infinitely large, a spammer can create as many certificates as they want this way.

For example, see the certificates in Submariner at entries 14260064, 14260065, and 14260088 - these certificates share the same tbsCertificate and signature but have different signatureAlgorithms.

There's a CL to fix this in crypto/x509 (https://go-review.googlesource.com/c/go/+/235118) but since certificate-transparency-go has its own fork of crypto/x509 I'm filing an issue here.

rolandshoemaker added a commit to rolandshoemaker/certificate-transparency-go that referenced this issue Jun 2, 2020
This prevents an easy method for spamming a log by modifying one of the
malleable fields in the certificate structure.

Fixes google#699
@pav-kv pav-kv added the x509 label May 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
2 participants