目录导航
OpenSSL的维护者已经发布了针对其软件中的两个高度严重的安全漏洞的修复程序,该漏洞可被利用来进行拒绝服务(DoS)攻击并绕过证书验证。
跟踪为CVE-2021-3449和CVE-2021-3450,这两个漏洞已在周四发布的更新(版本OpenSSL 1.1.1k)中得到解决。虽然CVE-2021-3449影响所有OpenSSL 1.1.1版本,但CVE-2021-3450影响OpenSSL版本1.1.1h及更高版本。
CVE-2021-3449详情
CVE-2021-3449 (OpenSSL通报)[高严重性] 2021年3月25日:如果从客户端发送了恶意的重新协商ClientHello消息,则OpenSSL TLS服务器可能会崩溃。如果TLSv1.2重新协商ClientHello省略了signature_algorithms扩展名(在最初的ClientHello中存在),但包括了signature_algorithms_cert扩展名,则将导致NULL指针取消引用,从而导致崩溃和拒绝服务攻击。只有启用了TLSv1.2和重新协商(默认配置)的服务器才容易受到攻击。OpenSSL TLS客户端不受此问题的影响。此问题影响所有OpenSSL 1.1.1版本。这些版本的用户应升级到OpenSSL 1.1.1k。OpenSSL 1.0.2不受此问题影响。PeterKästle(诺基亚)和Samuel Sapalski(诺基亚)的报道。
- 已在OpenSSL 1.1.1k (git commit)中修复(受影响的1.1.1-1.1.1j)
CVE-2021-3450详情
CVE-2021-3450 (OpenSSL通报)[严重性] 2021年3月25日:X509_V_FLAG_X509_STRICT标志启用对证书链中存在的证书的其他安全检查。默认情况下未设置。从OpenSSL版本1.1.1h开始,添加了一项检查以禁止在链中显式编码椭圆曲线参数的证书,这是附加的严格检查。实施此检查时发生错误,这意味着先前检查的结果已被覆盖,该检查用于确认链中的证书是有效的CA证书。这有效地绕过了非CA证书一定不能颁发其他证书的检查。如果已配置“用途”,则随后会有机会检查证书是否为有效的CA。libcrypto中实现的所有命名的“用途”值均执行此检查。所以,即使设置了严格标志,设置目的的证书链仍将被拒绝。默认情况下,libssl客户端和服务器证书验证例程中设置了一个目的,但是可以被应用程序覆盖或删除该目的。为了受到影响,应用程序必须显式设置X509_V_FLAG_X509_STRICT验证标志,并且不设置证书验证的目的,或者在TLS客户端或服务器应用程序的情况下,应覆盖默认目的。OpenSSL 1.1.1h及更高版本受此问题影响。这些版本的用户应升级到OpenSSL 1.1.1k。OpenSSL 1.0.2不受此问题影响。本杰明·卡杜克(本杰明)(Akamai),香鼎(Akamai)等人在阿卡迈(Akamai)的报道。默认情况下,libssl客户端和服务器证书验证例程中设置了一个目的,但是可以被应用程序覆盖或删除该目的。为了受到影响,应用程序必须显式设置X509_V_FLAG_X509_STRICT验证标志,并且不设置证书验证的目的,或者在TLS客户端或服务器应用程序的情况下,应覆盖默认目的。OpenSSL 1.1.1h及更高版本受此问题影响。这些版本的用户应升级到OpenSSL 1.1.1k。OpenSSL 1.0.2不受此问题影响。本杰明·卡杜克(本杰明)(Akamai),香鼎(Akamai)等人在阿卡迈(Akamai)的报道。默认情况下,libssl客户端和服务器证书验证例程中设置了一个目的,但是可以被应用程序覆盖或删除该目的。为了受到影响,应用程序必须显式设置X509_V_FLAG_X509_STRICT验证标志,并且不设置证书验证的目的,或者在TLS客户端或服务器应用程序的情况下,应覆盖默认目的。OpenSSL 1.1.1h及更高版本受此问题影响。这些版本的用户应升级到OpenSSL 1.1.1k。OpenSSL 1.0.2不受此问题影响。本杰明·卡杜克(本杰明)(Akamai),香鼎(Akamai)等人在阿卡迈(Akamai)的报道。应用程序必须显式设置X509_V_FLAG_X509_STRICT验证标志,并且不设置证书验证的目的,或者在TLS客户端或服务器应用程序的情况下,应覆盖默认目的。OpenSSL 1.1.1h及更高版本受此问题影响。这些版本的用户应升级到OpenSSL 1.1.1k。OpenSSL 1.0.2不受此问题影响。本杰明·卡杜克(本杰明)(Akamai),香鼎(Akamai)等人在阿卡迈(Akamai)的报道。应用程序必须显式设置X509_V_FLAG_X509_STRICT验证标志,并且不设置证书验证的目的,或者在TLS客户端或服务器应用程序的情况下,应覆盖默认目的。OpenSSL 1.1.1h及更高版本受此问题影响。这些版本的用户应升级到OpenSSL 1.1.1k。OpenSSL 1.0.2不受此问题影响。本杰明·卡杜克(本杰明)(Akamai),香鼎(Akamai)等人在阿卡迈(Akamai)的报道。
- 已在OpenSSL 1.1.1k (git commit)中修复(受影响的1.1.1h-1.1.1j)
OpenSSL是一个由加密功能组成的软件库,这些加密功能实现了传输层安全协议,旨在保护通过计算机网络发送的通信。
根据OpenSSL发布的公告,CVE-2021-3449与潜在的DoS漏洞有关,该漏洞可能是由于NULL指针取消引用而引起的,如果在重新协商过程中客户端在传输过程中发送了恶意的“ ClientHello”消息,则可能导致OpenSSL TLS服务器崩溃。服务器和用户之间的握手。该问题是自2018年1月以来所做的更改的一部分。
“如果TLSv1.2重新协商ClientHello省略了signature_algorithms扩展名(在最初的ClientHello中存在),但是包括了signature_algorithms_cert扩展名,则将导致NULL指针取消引用,从而导致崩溃和拒绝服务攻击。”说。
诺基亚于3月17日报告了此漏洞,该漏洞被归功于诺基亚,并通过单行代码更改修复了DoS错误。
另一方面,CVE-2021-3450与X509_V_FLAG_X509_STRICT标志有关,该标志启用对证书链中存在的证书的附加安全检查。虽然默认情况下未设置此标志,但是实现中的错误意味着OpenSSL无法检查“非CA证书一定不能颁发其他证书”,从而导致证书绕过。
结果,该漏洞阻止了应用拒绝由浏览器信任的证书颁发机构(CA)未进行数字签名的TLS证书。
OpenSSL说:“为了受到影响,应用程序必须明确设置X509_V_FLAG_X509_STRICT验证标志,并且不设置证书验证的目的,或者在TLS客户端或服务器应用程序的情况下,应覆盖默认目的。”
从Akamai的本杰明Kaduk据说已报告的问题,以3月18日该项目的维护者,该漏洞是由项笛嗯和其他在Akamai的发现,具有修复。实行由前红帽首席软件工程师和OpenSSL开发托马什Mraz的。
尽管这两个问题都不会影响OpenSSL 1.0.2,但值得注意的是,该版本自2020年1月1日起不再受支持,并且不再接收更新。建议依赖OpenSSL漏洞版本的应用程序应用补丁程序,以减轻与漏洞相关的风险。

OpenSSL安全通报[2021年3月25日]
OpenSSL安全通报[2021年3月25日]
=========================================
使用X509_V_FLAG_X509_STRICT的CA证书检查旁路(CVE-2021-3450)
================================================== ======================
严重程度:高
X509_V_FLAG_X509_STRICT标志可对
证书链中存在的证书。默认情况下未设置。
从OpenSSL版本1.1.1h开始,进行检查以禁止使用
添加了已明确编码椭圆曲线参数的链
作为额外的严格检查。
实施此检查的错误意味着
先前检查以确认链中的证书是有效的CA
证书被覆盖。这有效地绕过了检查
非CA证书一定不能颁发其他证书。
如果已经配置了“用途”,那么将有后续机会
用于检查证书是否为有效的CA。所有的命名为“目的”
在libcrypto中实现的值执行此检查。因此,在哪里
设置了目的,即使在以下情况下,证书链仍将被拒绝:
使用了严格标志。默认情况下,在libssl客户端中设置了一个目的,并且
服务器证书验证例程,但可以被覆盖或
被应用程序删除。
为了受到影响,应用程序必须明确设置
X509_V_FLAG_X509_STRICT验证标志,但未设置目的
用于证书验证,或者用于TLS客户端或服务器
应用程序,则覆盖默认用途。
OpenSSL 1.1.1h及更高版本受此问题影响。这些用户
版本应升级到OpenSSL 1.1.1k。
OpenSSL 1.0.2不受此问题影响。
Benjamin Kaduk在2021年3月18日向OpenSSL报告了此问题
是由Akamai提出,并由Akamai的项鼎和其他人发现。解决方法是
由TomášMráz开发。
signature_algorithms处理(CVE-2021-3449)中的NULL指针反引用
================================================== ===================
严重程度:高
如果发送了恶意的重新协商,则OpenSSL TLS服务器可能会崩溃
来自客户端的ClientHello消息。如果TLSv1.2重新协商ClientHello省略
signature_algorithms扩展名(在初始位置
ClientHello),但包含一个signature_algorithms_cert扩展名,然后为NULL
将导致指针取消引用,从而导致崩溃和服务拒绝
攻击。
服务器只有启用了TLSv1.2并启用了重新协商(
是默认配置)。OpenSSL TLS客户端不受此影响
问题。
此问题影响所有OpenSSL 1.1.1版本。这些版本的用户
应该升级到OpenSSL 1.1.1k。
OpenSSL 1.0.2不受此问题影响。
诺基亚已于2021年3月17日向OpenSSL报告了此问题。解决方法是
由诺基亚的PeterKästle和Samuel Sapalski开发。
笔记
====
OpenSSL 1.0.2已不再受支持,并且不再接收公共更新。扩展的
高级支持客户可以使用以下支持:
https://www.openssl.org/support/contracts.html
OpenSSL 1.1.0不再受支持,不再接收任何形式的更新。
尚未分析这些问题对OpenSSL 1.1.0的影响。
这些版本的用户应升级到OpenSSL 1.1.1。
参考
==========
此安全公告的URL:
https://www.openssl.org/news/secadv/20210325.txt
注意:咨询的在线版本可能会更新,并附带其他详细信息
随着时间的推移。
有关OpenSSL严重性分类的详细信息,请参见:
https://www.openssl.org/policies/secpolicy.html