云网牛站
所在位置:首页 > Linux安全 > 在OpenSSL中的CVE-2021-3449和CVE-2021-3450两个漏洞介绍

在OpenSSL中的CVE-2021-3449和CVE-2021-3450两个漏洞介绍

2021-03-27 09:14:58作者:Alias_Travis稿源:OSCHINA开源站

下面介绍 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 即可。如下图所示:

在OpenSSL中的CVE-2021-3449和CVE-2021-3450两个漏洞介绍

该漏洞由诺基亚的工程师 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,则应该尽早升级,以防漏洞被利用造成额外的损失。

 

相关主题

使用OpenSSL来检查SSL证书过期的方法

精选文章
热门文章