OpenSSL 1.0.2 < 1.0.2zg 多个漏洞

high Nessus 插件 ID 171080

简介

远程服务受到多个漏洞的影响。

描述

远程主机上安装的 OpenSSL 版本低于 1.0.2zg。因此,如 1.0.2zg 公告所述,该主机受到多个漏洞的影响。

- 存在一个与 X.509 GeneralName 内的 X.400 地址处理相关的类型混淆漏洞。
X.400 地址被解析为 ASN1_STRING,但 GENERAL_NAME 的公共结构定义错误地将 x400Address 字段的类型指定为 ASN1_TYPE。随后,按照 OpenSSL 函数 GENERAL_NAME_cmp 的解读,此字段应为 ASN1_TYPE 而不是 ASN1_STRING。CRL 检查启用(即应用程序设置 X509_V_FLAG_CRL_CHECK 标记)后,攻击者利用此漏洞可向 memcmp 调用传递任意指针,让指针能够读取内存内容或引起拒绝服务。在大多数情况下,攻击者需要同时提供证书链和 CRL 才能发起攻击,而这两者都不需要具有有效的签名。如果攻击者仅控制其中一个输入,则另一个输入必须已包含作为 CRL 分发点的 X.400 地址,但这种情况并不常见。因此,此漏洞最有可能只影响本身已实现通过网络检索 CRL 功能的应用程序。感谢 David Benjamin (Google)。补丁由 Hugo Landau 开发而来。已在 OpenSSL 1.0.2zg 中修复(影响 1.0.2 之前的版本)。(CVE-2023-0286)

- 公共 API 函数 BIO_new_NDEF 是辅助函数,用于通过 BIO 对 ASN.1 数据作流式处理。该函数主要在 OpenSSL 内部用于为 SMIME、CMS 和 PKCS7 提供流式传输功能支持,但也可能由最终用户应用程序直接调用。该函数从调用程序接收 BIO,在其前面附加一个新的 BIO_f_asn1 filter BIO 以形成 BIO 链,然后将 BIO 链的新标头返回给调用程序。在某些情况下(例如 CMS Recipient 公钥无效时),新的 filter BIO 将被释放,而该函数则会返回表示失败的 NULL 结果。但是,在这种情况下,由于 BIO 链未正确清理,所以调用程序传递的 BIO 仍会保留指向之前已释放的 filter BIO 的内部指针。如果调用程序随后继续调用 BIO 上的 BIO_pop(),则会发生释放后使用。这很有可能会导致崩溃。这种情况直接发生在内部函数 B64_write_ASN1() 中,不仅可能导致 BIO_new_NDEF() 被调用 ,还会导致 BIO 上的 BIO_pop() 在随后被调用。此内部函数依次由公共 API 函数 PEM_write_bio_ASN1_stream、PEM_write_bio_CMS_stream、PEM_write_bio_PKCS7_stream、SMIME_write_ASN1、SMIME_write_CMS 和 SMIME_write_PKCS7 调用。可能受到此问题影响的其他公共 API 函数包括 i2d_ASN1_bio_stream、BIO_new_CMS、BIO_new_PKCS7、i2d_CMS_bio_stream 和 i2d_PKCS7_bio_stream。OpenSSL CMS 和 S/MIME 命令行应用程序同样会受到影响。感谢 Octavio Galland (Max Planck Institute for Security and Privacy)。感谢 Marcel Bhme (Max Planck Institute for Security and Privacy)。补丁由 Viktor Dukhovni 开发而来。补丁由 Matt Caswell 开发而来。已在 OpenSSL 1.0.2zg 中修复(影响 1.0.2 之前的版本)。(CVE-2023-0215)

- OpenSSL RSA 解密实现中存在一个基于时序的边信道,足以用于在 Bleichenbacher 式攻击中跨网络恢复明文。若要成功解密,攻击者必须能够发送大量的测试消息进行解密。
该漏洞影响所有 RSA 填充模式:PKCS#1 v1.5、RSA-OEAP 和 RSASVE。例如,在 TLS 连接中,客户端通常会使用 RSA 向服务器发送经过加密的预主密钥。如果攻击者能够发现客户端与服务器之间的真正连接,则可向服务器发送测试消息并记录消息处理用时。在发送足够多的消息后,攻击者可恢复用于原始连接的预主密钥,进而解密通过该连接发送的应用程序数据。已在 OpenSSL 1.0.2zg 中修复(影响 1.0.2 之前的版本)。(CVE-2022-4304)

请注意,Nessus 尚未测试这些问题,而是只依据应用程序自我报告的版本号进行判断。

解决方案

升级至 OpenSSL 1.0.2zg 或更高版本。

另见

https://www.cve.org/CVERecord?id=CVE-2023-0286

https://www.openssl.org/news/secadv/20230207.txt

https://www.openssl.org/policies/secpolicy.html

https://www.cve.org/CVERecord?id=CVE-2023-0215

https://www.cve.org/CVERecord?id=CVE-2022-4304

插件详情

严重性: High

ID: 171080

文件名: openssl_1_0_2zg.nasl

版本: 1.4

类型: combined

代理: windows, macosx, unix

系列: Web Servers

发布时间: 2023/2/7

最近更新时间: 2023/8/2

支持的传感器: Nessus Agent, Nessus

风险信息

VPR

风险因素: Medium

分数: 6.0

CVSS v2

风险因素: High

基本分数: 7.1

时间分数: 5.3

矢量: CVSS2#AV:N/AC:H/Au:N/C:C/I:N/A:C

CVSS 分数来源: CVE-2023-0286

CVSS v3

风险因素: High

基本分数: 7.4

时间分数: 6.4

矢量: CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:H

时间矢量: CVSS:3.0/E:U/RL:O/RC:C

漏洞信息

CPE: cpe:/a:openssl:openssl

必需的 KB 项: installed_sw/OpenSSL

易利用性: No known exploits are available

补丁发布日期: 2023/2/7

漏洞发布日期: 2023/2/7

参考资料信息

CVE: CVE-2022-4304, CVE-2023-0215, CVE-2023-0286