OpenSSL是一个功能丰富且自包含的开源安全工具箱。它提供的主要功能有:SSL协议实现(包括SSLv2、SSLv3和TLSv1)、大量软算法(对称/非对称/摘要)、大数运算、非对称算法密钥生成、ASN.1编解码库、证书请求(PKCS10)编解码、数字证书编解码、CRL编解码、OCSP协议、数字证书验证、PKCS7标准实现和PKCS12个人数字证书格式实现等功能。OpenSSL采用C语言作为开发语言,这使得它具有优秀的跨平台性能。OpenSSL支持Linux、UNIX、windows、Mac等平台。
3月25日,OpenSSL发布安全公告,称在更新的1.1.1k版本中修复了2个高危安全漏洞:CVE-2021-3449和CVE-2021-3450。
- CVE-2021-3449: 该漏洞是空指针间接引用引发的DoS 漏洞,但该漏洞只影响OpenSSL 服务器实例,不影响客户端。
- CVE-2021-3450: 该漏洞是CA证书验证不当漏洞,既影响服务器也影响客户端实例。
CVE-2021-3449
在重新协商的过程上,客户端发送恶意ClientHello 消息就可以触发该漏洞,引发服务器奔溃。如果TLSv1.2的renegotiation ClientHello 忽略了signature_algorithms 扩展,但是包含signature_algorithms_cert 扩展,那么空指针间接引用就会引发奔溃和DoS 攻击。
该漏洞影响启用了TLSv1.2和重新协商的OpenSSL 1.1.1到1.1.1j版本,漏洞不影响OpenSSL 客户端。由于TLSv1.2和重新协商是OpenSSL 服务器的默认配置,因此许多服务器都受到该漏洞的影响。
修复该DoS bug只需要一行代码,具体来说就是将peer_sigalgslen 设置为0。
CVE-2021-3449补丁
CVE-2021-3450
CVE-2021-3450漏洞是CA 证书验证绕过漏洞,与X509_V_FLAG_X509_STRICT flag有关。该flag是OpenSSL 用来禁用损坏的证书流,并需要证书通过X509 规则的验证。
但是由于一个回归bug的存在,OpenSSL v1.1.1h及以上版本受到该漏洞的影响。幸运的是该flag在这些版本中并不是默认设置的。从OpenSSL v 1.1.1h版本开始,会对编码的椭圆曲线参数进行额外的严格检查。但是在检查的实现中存在错误,导致之前的确认链上证书的检查结果是之前覆写的有效的CA 证书。因此,OpenSSL 实例无法检查非CA 证书不能是其他证书的发布者,因此攻击者可以利用这个漏洞来进行证书绕过。
总结
这两个漏洞都不影响OpenSSL 1.0.2版本,新发布的OpenSSL 1.1.1k版本修复了这两个漏洞,研究人员建议用户尽快进行升级更新,以保护其OpenSSL实例。
更多参见OpenSSL安全公告:https://www.openssl.org/news/vulnerabilities.html
本文翻译自:https://www.bleepingcomputer.com/news/security/openssl-fixes-severe-dos-certificate-validation-vulnerabilities/如若转载,请注明原文地址。