Ubuntu 18.04 LTS / 20.04 LTS:OpenSSL 漏洞 (USN-5051-1)

critical Nessus 插件 ID 152784

简介

远程 Ubuntu 主机缺少一个或多个安全更新。

描述

远程 Ubuntu 18.04 LTS / 20.04 LTS / 21.04 主机上安装的程序包受到 USN-5051-1 公告中提及的多个漏洞的影响。

- 为了解密 SM2 加密的数据,应用程序应调用 API 函数 EVP_PKEY_decrypt()。通常,应用程序将会调用此函数两次。第一次:输入时,out 参数可以是 NULL,退出时,outlen 参数会填充保存解密后明文的缓冲区大小。然后,应用程序会分配大小充足的缓冲区,并再次调用 EVP_PKEY_decrypt(),但这次会为 out 参数传递非空值。SM2 解密代码的实现中存在一个错误,这意味着用于保存 EVP_PKEY_decrypt() 首次调用所返回明文的缓冲区大小的计算值可能小于第二次调用所需的实际大小。当应用程序通过过小的缓冲区第二次调用 EVP_PKEY_decrypt() 时,将会导致缓冲区溢出。能够向应用程序展示用于解密的 SM2 内容的恶意攻击者可使攻击者选择的数据溢出缓冲区多达 62 个字节,这会改变缓冲区之后保存的其他数据内容,从而可能改变应用程序行为或造成应用程序崩溃。缓冲区的位置取决于应用程序,但通常是在堆中分配。已在 OpenSSL 1.1.1l 中修复(影响 1.1.1-1.1.1k)。
(CVE-2021-3711)

- ASN.1 字符串在 OpenSSL 内表示为 ASN1_STRING 结构,该结构包含一个保存字符串数据的缓冲区和一个保存缓冲区长度的字段。此字符串与普通 C 字符串形成对比,后者表示为字符串数据的缓冲区,以 NUL(0) 字节结束。虽然不是严格要求,但使用 OpenSSL 的独有 d2i 函数(及其他类似解析函数)解析的 ASN.1 字符串,以及使用 ASN1_STRING_set() 函数设定值的任何字符串,都将额外使用 NUL 方式终止 ASN1_STRING 结构中的字节数组。但是,应用程序可能会直接构建有效的 ASN1_STRING 结构,该结构不会直接在 ASN1_STRING 数组中设置数据和长度字段,进而使用 NUL 终止字节数组。这种情况也会因使用 ASN1_STRING_set0() 函数发生。已经发现,打印 ASN.1 数据的多个 OpenSSL 函数均假设 ASN1_STRING 字节数组将使用 NUL 终止,但无法保证直接构建的字符串亦是如此。当应用程序请求打印 ASN.1 结构时,并且 ASN.1 结构包含由应用程序直接构建但并非使用 NUL 终止的 ASN1_STRING 时,将会出现读取缓冲区溢出。同样的情况也会在处理证书的名称限制期间出现(例如,证书直接由应用程序构建,而非通过 OpenSSL 解析函数加载,以及证书包含非 NUL 终止的 ASN1_STRING 结构)。这种情况也会出现在 X509_get1_email()、X509_REQ_get1_email() 和 X509_get1_ocsp() 函数中。如果恶意执行者使应用程序直接构建 ASN1_STRING,然后通过某个受影响的 OpenSSL 函数处理该字符串,此问题也会出现。此问题可能会导致崩溃(导致拒绝服务攻击)。
该问题还可能导致私有内存内容(例如私钥或敏感纯文本)泄露。已在 OpenSSL 1.1.1j 中修复(影响 1.1.1-1.1.1k)。已在 OpenSSL 1.0.2za (Affected 1.0.2-1.0.2y) 中修复。(CVE-2021-3712)

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

解决方案

更新受影响的 libssl-dev、libssl1.1 和/或 openssl 程序包。

另见

https://ubuntu.com/security/notices/USN-5051-1

插件详情

严重性: Critical

ID: 152784

文件名: ubuntu_USN-5051-1.nasl

版本: 1.7

类型: local

代理: unix

发布时间: 2021/8/24

最近更新时间: 2023/10/16

支持的传感器: Frictionless Assessment AWS, Frictionless Assessment Azure, Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Nessus

风险信息

VPR

风险因素: High

分数: 7.7

CVSS v2

风险因素: High

基本分数: 7.5

时间分数: 6.2

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

CVSS 分数来源: CVE-2021-3711

CVSS v3

风险因素: Critical

基本分数: 9.8

时间分数: 9.1

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

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

漏洞信息

CPE: cpe:/o:canonical:ubuntu_linux:20.04:-:lts, p-cpe:/a:canonical:ubuntu_linux:libssl1.1, cpe:/o:canonical:ubuntu_linux:18.04:-:lts, p-cpe:/a:canonical:ubuntu_linux:openssl, p-cpe:/a:canonical:ubuntu_linux:libssl-dev

必需的 KB 项: Host/cpu, Host/Debian/dpkg-l, Host/Ubuntu, Host/Ubuntu/release

可利用: true

易利用性: Exploits are available

补丁发布日期: 2021/8/24

漏洞发布日期: 2021/2/16

参考资料信息

CVE: CVE-2021-3711, CVE-2021-3712

IAVA: 2021-A-0395-S

USN: 5051-1