描述
远程主机上安装的 OpenSSL 版本低于 3.0.1。因此,它受到 3.0.1 公告中提及的多个漏洞影响。
- 在 MIPS32 和 MIPS64 平方运算过程中存在一个进位传送缺陷。许多 EC 算法都会受到影响,包括一些 TLS 1.3 默认曲线。未详细分析影响,因为无法满足攻击的先决条件,并且涉及重复使用私钥。分析检测结果后发现,针对 RSA 和 DSA 的攻击难以执行,且可能性不高。由于推断私钥信息所需的大部分工作都可离线执行,针对 DH 的攻击则视为可行(尽管很难)。此类攻击所需的资源量极大。但是,若要成功对 TLS 发动攻击,服务器必须在多个客户端之间共享 DH 私钥(自 CVE-2016-0701 版本以来已无此选项)。OpenSSL 版本 1.0.2、1.1.1 和 3.0.0 会受此问题影响。2021 年 12 月 15 日发布的 1.1.1m 和 3.0.1 版本已解决此问题。对于 1.0.2 版本,此问题已在仅提供给高级支持客户的 git commit 6fc1aaaf3 中得到解决。git commit 6fc1aaaf3 将在发布 1.0.2zc 时予以提供。此问题仅影响 MIPS 平台上的 OpenSSL。已在 OpenSSL 3.0.1 中修复(影响 3.0.0)。已在 OpenSSL 1.1.1m 中修复(影响 1.1.1-1.1.1l)。已在 OpenSSL 1.0.2zc-dev 中修复(影响 1.0.2-1.0.2zb)。(CVE-2021-4160)
- OpenSSL 中的 libssl 通过在内部调用客户端上的 X509_verify_cert(),来验证服务器提供的证书。该函数可能返回负的返回值以指示内部错误(例如内存不足)。OpenSSL 错误处理此类负返回值时,将导致 IO 函数(如 SSL_connect() 或 SSL_do_handshake())指示失败,并继续调用 SSL_get_error() 以返回值 SSL_ERROR_WANT_RETRY_VERIFY。如果 OpenSSL 之前已调用 SSL_CTX_set_cert_verify_callback(),则应仅由该应用程序返回此返回值。由于大多数应用程序不会执行此操作,因此 SSL_GET_error() 将意外返回值 SSL_ERROR_WANT_RETRY_VERIFY,且应用程序可能无法正确运行。确切行为将取决于应用程序,但有可能造成崩溃、无限循环或其他类似的错误响应。
结合 OpenSSL 3.0 中单独存在的缺陷,此问题会造成更加严重的后果,即导致 X509_verify_cert() 在处理证书链时指示内部错误。如果证书不包含使用者备用名称扩展,但证书颁发机构已强制实施名称限制,即会发生这种情况。即使使用有效链,仍会发生此问题。通过结合利用这两个问题,攻击者可致使应用程序执行不正确的行为。已在 OpenSSL 3.0.1 中修复(影响 3.0.0)。(CVE-2021-4044)
请注意,Nessus 尚未测试这些问题,而是只依据应用程序自我报告的版本号进行判断。
解决方案
升级到 OpenSSL 版本 3.0.1 或更高版本。
插件详情
代理: windows, macosx, unix
配置: 启用全面检查 (optional)
支持的传感器: Nessus Agent, Continuous Assessment, Nessus
风险信息
矢量: CVSS2#AV:N/AC:M/Au:N/C:P/I:N/A:N
矢量: CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
时间矢量: CVSS:3.0/E:U/RL:O/RC:C
漏洞信息
CPE: cpe:/a:openssl:openssl
必需的 KB 项: installed_sw/OpenSSL
易利用性: No known exploits are available