CVE-2021-4044
libssl 中 X509_verify_cert() 内部错误处理不当
- 已发布
- 2021年12月14日
- 已更新
- 2024年9月17日
- 分配 CNA
- openssl
- 观察到的证据
- 2026年8月4日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H高 · 未来 30 天
- 百分位
- 98.9%
- 型号日期
- 2026年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
OpenSSL 中的 libssl 在客户端侧调用 X509_verify_cert() 来验证服务器提供的证书。该函数可能返回负值以指示内部错误(例如内存不足)。OpenSSL 未正确处理此类负返回值,这将导致 IO 函数(如 SSL_connect() 或 SSL_do_handshake())不指示成功,并且随后调用 SSL_get_error() 会返回 SSL_ERROR_WANT_RETRY_VERIFY 值。此返回值本应仅在应用程序先前调用过 SSL_CTX_set_cert_verify_callback() 时由 OpenSSL 返回。由于大多数应用程序不会这样做,因此 SSL_get_error() 返回的 SSL_ERROR_WANT_RETRY_VERIFY 值将完全出乎意料,应用程序可能因此无法正确运行。具体行为将取决于应用程序,但可能导致崩溃、无限循环或其他类似的错误响应。此问题与 OpenSSL 3.0 中的另一个独立缺陷结合时会变得更加严重,该缺陷会导致 X509_verify_cert() 在处理证书链时指示内部错误。当证书不包含 Subject Alternative Name 扩展但证书颁发机构已强制执行名称约束时,就会发生这种情况。即使证书链有效,此问题也可能出现。通过结合这两个问题,攻击者可以诱导错误的、依赖应用程序的行为。已在 OpenSSL 3.0.1 中修复(受影响版本 3.0.0)。
来源
1用于检查OpenSSL版本是否存在CVE-2021-4044漏洞,并测试用户指定网站的SSL/TLS连接,同时包含错误处理和报告功能的Python脚本。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。