下面介绍 OpenSSL 中的 CVE-2021-3449 和 CVE-2021-3450 两个高危漏洞,当前这两个漏洞不影响 OpenSSL 1.0.2 版本,并且它们都在 OpenSSL 1.1.1k 版中已经得到了修复,使用更低一些版本的用户建议升级以修复漏洞。以下是详细的介绍内容。
前言 OpenSSL 是一个常用的软件库,用于构建需要建立安全通信的网络应用和服务器。当前,OpenSSL 项目针对潜伏在 OpenSSL 产品中的两个高危漏洞 CVE-2021-3449 和 CVE-2021-3450 发布了公告说明,具体如下。 这两个漏洞包括: CVE-2021-3449:由于 NULL 指针取消引用而导致的拒绝服务(DoS)漏洞,只影响 OpenSSL 服务器实例,而不影响客户端。 CVE-2021-3450:不正确的 CA 证书验证漏洞,同时影响服务器和客户端实例。
关于 CVE-2021-3449:单行代码即可修复 DoS 漏洞 如果在重新协商的过程中,客户端发送了一个恶意的 ClientHello 消息,OpenSSL TLS 服务器中的 DoS 漏洞(CVE-2021-3449)就会导致服务器崩溃。 公告指出,"如果 TLSv1.2 重新协商的 ClientHello 省略了 signature_algorithms 扩展(在初始的 ClientHello 中存在),但包含了 signature_algorithms_cert 扩展,那么就会导致 NULL 指针取消引用,从而导致崩溃和拒绝服务攻击。" 该漏洞只影响运行在 1.1.1(OpenSSL 1.1.1版本发布下载,增加TLS v1.3支持) 和 1.1.1j 版本之间(包括两者)且需要同时启用 TLSv1.2 和重新协商的 OpenSSL 服务器。然而,由于这是这些 OpenSSL 服务器版本的默认配置,许多活跃的服务器可能都存在这个潜在的漏洞,而 OpenSSL 客户端则不受该漏洞影响。 幸运的是,修复这个 DoS 漏洞十分简单,只需要将 peer_sigalgslen 设置为 0 即可。如下图所示:
该漏洞由诺基亚的工程师 Peter Kästle 和 Samuel Sapalski 发现,他们也提供了上图所示的修复方法。
关于 CVE-2021-3450:CA 证书漏洞 绕过 CA 证书验证的漏洞 CVE-2021-3450 则与 X509_V_FLAG_X509_STRICT 标志有关。 OpenSSL 使用此标志来禁止对损坏的证书使用替代方法,并严格要求根据 X509 规则对证书进行验证。然而,由于一个回归错误,OpenSSL 1.1.1h 及以上版本(但不包括修复后的 1.1.1k 版本)都会受到这个漏洞的影响,因为在这些版本中这个标志并没有被默认设置。 该公告指出,"从 OpenSSL 1.1.1h 版本开始增加了一项检查,以禁止在链中显式编码 elliptic curve 参数的证书,这是附加的严格检查。但是,这项检查的实现中出现了一个错误,意味着之前确认链中证书是有效 CA 证书的检查结果被覆盖了"。
结语 目前上述这两个漏洞都不会影响 OpenSSL 1.0.2,并且这两个漏洞都在 OpenSSL 1.1.1k 中得到了修复,官方建议用户升级到这个版本以保护它们的实例。 注:如果你使用的 OpenSSL 版本低于 OpenSSL 1.1.1k,则应该尽早升级,以防漏洞被利用造成额外的损失。
相关主题 |