Free and open certificate authority (CA) Let’s Encrypt is revoking over 3 million currently-valid certificates after discovering a bug in its Certification Authority Authorization (CAA) code.
Introduced in July 2019, the bug affected the automated process that Let’s Encrypt employs when checking CAA records to validate a subscriber’s control of a domain name. The CA considers validations good for 30 days, but performs a recheck for all validations older than 8 hours.
Due to the bug, when a certificate request contained N domain names that needed CAA rechecking, the CA software used by Let’s Encrypt would pick one domain name and check it N times, instead of checking each domain name.
Thus, a subscriber could issue certificates for validated domain names 30 days after validation, without a second check being performed 8 hours prior to issuance, and the certificate would be issued even if someone installed CAA records for that domain name to prohibit certificate issuance by Let’s Encrypt.
The CA discovered the bug on February 29, 2020, and has already deployed a fix.
3,048,289 currently-valid certificates were found to be affected — this represents 2.6% of the approximately 116 million overall active Let’s Encrypt certificates — with 1 million of them being duplicates of other affected certificates (i.e. issued for the same set of domain names).
“Because of the way this bug operated, the most commonly affected certificates were those that are reissued very frequently, which is why so many affected certificates are duplicates,” Let’s Encrypt explains.
The CA will begin revocation of the affected certificates on March 4, at 20:00 UTC (3:00pm EST), and aims to complete the process by March 5, 03:00 UTC (10:00pm EST).
Let’s Encrypt says it is informing affected subscribers of the issue via email, where contact information is available. It also encourages them to continue to renew and replace affected certificates while it performs the revocation.
The CA has released an online tool to help subscribers determine whether they use affected certificates and also published a list of affected serial numbers.
In some cases, the affected certificates might have already been replaced with newer ones that are not impacted, meaning that renewal is no longer necessary. Thus, subscribers are encouraged to check if they are affected before renewing their certificates.
Related: Let’s Encrypt Issues Over 1 Billion Certificates
Related: Let’s Encrypt Begins Retirement of TLS-SNI-01 Validation