IT资讯 OpenSSL 修复了严重的 DoS 和证书验证漏洞

jake · 2021-03-27 10:00:06 · 热度: 48

OpenSSL 是一个常用的软件库,用于构建需要建立安全通信的网络应用和服务器。近日,OpenSSL 项目针对潜伏在 OpenSSL 产品中的两个高危漏洞 CVE-2021-3449 和 CVE-2021-3450 发布了公告

这两个漏洞包括:

  • CVE-2021-3449:由于 NULL 指针取消引用而导致的拒绝服务(DoS)漏洞,只影响 OpenSSL 服务器实例,而不影响客户端。
  • CVE-2021-3450:不正确的 CA 证书验证漏洞,同时影响服务器和客户端实例。

单行代码即可修复 DoS 漏洞

如果在重新协商的过程中,客户端发送了一个恶意的 ClientHello 消息,OpenSSL TLS 服务器中的 DoS 漏洞(CVE-2021-3449)就会导致服务器崩溃。

公告指出,"如果 TLSv1.2 重新协商的 ClientHello 省略了 signature_algorithms 扩展(在初始的 ClientHello 中存在),但包含了 signature_algorithms_cert 扩展,那么就会导致 NULL 指针取消引用,从而导致崩溃和拒绝服务攻击。"

该漏洞只影响运行在 1.1.1 和 1.1.1j 版本之间(包括两者)且需要同时启用 TLSv1.2 和重新协商的 OpenSSL 服务器。然而,由于这是这些 OpenSSL 服务器版本的默认配置,许多活跃的服务器可能都存在这个潜在的漏洞,而 OpenSSL 客户端则不受该漏洞影响。

幸运的是,修复这个 DoS 漏洞十分简单,只需要将 peer_sigalgslen 设置为 0 即可。

OpenSSL 修复了严重的 DoS 和证书验证漏洞

该漏洞由诺基亚的工程师 Peter Kästle 和 Samuel Sapalski 发现,他们也提供了上图所示的修复方法。

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 中得到了修复,官方建议用户升级到这个版本以保护他们的实例。

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册