Let's Encrypt在其证书授权(CAA)代码中发现了一个bug,如果客户不强制更新证书,就必须撤销数百万个证书。
任何未能更新证书的网站将向访问者显示安全警告,直至问题得到纠正。虽然没有提到具体的网站,但涉及多达300万个证书,一些知名网站可能会受到影响。
该错误意味着在检查Let's Encrypt订阅服务器是否具有其所有域的有效安全证书时存在问题。在发现bug后仅仅两个小时,就推出了一个修复程序,但是需要更新证书才能产生任何效果。
Let's Encrypt发布了一个关于bug发现的安全警告:
在2020-02-29 UTC,让我们加密在我们的CAA代码中发现一个错误。我们的CA软件Boulder在验证用户对域名的控制的同时,检查CAA记录。大多数订阅者在域控制验证之后立即颁发证书,但是我们认为验证有效期为30天。这意味着,在某些情况下,我们需要在CAA记录发布之前再次检查。具体来说,我们必须在发布前8小时内检查CAA(根据BRs§3.2.2.8),因此任何在8小时前验证有效的域名都需要重新检查。
缺陷::当证书请求包含N个域名需要CAA重新检查时,Boulder会选择一个域名并对其进行N次检查。实际上,这意味着如果订户在X时刻验证了一个域名,并且CAA在X时刻对该域名进行了记录,则允许我们进行加密发行,该订户将能够颁发包含该域名的证书,直到X + 30天,即使后来有人在该域名上安装了禁止通过Let's Encrypt发行的CAA记录。
我们在2020-02-29 03:08 UTC确认了这个bug,并在03:10停止了发布。我们在世界标准时间05:22部署了修复程序,然后重新启用了发布功能。
我们的初步调查显示该错误于2019-07-25年引入。我们将进行更详细的调查,并在完成后提供事后分析。
在另一篇文章中,Let's Encrypt共享受影响序列号的详细信息,并为任何人提供一个到主机名检查实用工具的链接,以检查他们的域是否可能被攻击。。