Amazon Linux 2 : curl (ALAS-2019-1162)

critical Nessus 插件 ID 122260
全新!插件严重性现在使用 CVSS v3

计算的插件严重性默认已更新为使用 CVSS v3。没有 CVSS v3 分数的插件将回退到 CVSS v2 来计算严重性。可以在设置下拉列表中切换严重性显示首选项。

简介

远程 Amazon Linux 2 主机缺少安全更新。

描述

Libcurl 容易受到堆栈缓冲区越界读取影响。处理传入 NTLM type-2 消息的函数 (`lib/vauth/ntlm.c:ntlm_decode_type2_target`) 未正确验证传入的数据,而且容易受到整数溢出漏洞影响。恶意或中断的 NTLM 服务器可利用该溢出,诱骗 libcurl 接受错误的长度 + 位移组合,导致缓冲区读取越界。(CVE-2018-16890) 在 32 位平台上,curl 和 libcurl 7.57.0 之前版本中的 NTLM 验证功能可让攻击者通过涉及长用户和密码字段的向量,造成拒绝服务(整数溢出和所产生的缓冲区溢出,以及应用程序崩溃),或可能造成其他不明影响。(CVE-2017-8816) 32 位平台上的 curl 和 libcurl 7.57.0 之前版本可让攻击者造成拒绝服务(越界访问和应用程序崩溃),或可能造成其他不明影响,这是因为为连接到 SSL 库所分配的内存过少。(CVE-2017-8818) 在进行 FTP 时,libcurl 可能在堆栈分配缓冲区之外读取。当 libcurl 连接至 FTP 服务器并成功登录(匿名或不匿名)时,它会使用 `PWD` 命令,向服务器要求当前目录。然后,服务器会以 257 响应来响应,此响应中的路径会以双引号括住。返回的路径名称随后会由 libcurl 保留,以供后续使用。由于此目录名称的字符串解析器中存有缺陷,因此,如果这种传递的目录名称没有右双引号,将会导致 libcurl 无法将结尾 NUL 字节添加至持有该名称的缓冲区。当 libcurl 随后访问该字符串时,它可以超出分配的堆栈缓冲区进行读取并使超出缓冲区的数据崩溃,或错误地访问超出缓冲区的数据,将其视为路径的一部分。恶意服务器可滥用此事实,并有效地防止基于 libcurl 的客户端对其进行处理。PWD 命令一律会在新的 FTP 连接上发出,且此错误很可能会造成段错误。这个问题长期未被发现的简单事实可能表明,在良性的服务器中,格式错误的 PWD 响应很少见。我们未发现对此缺陷的利用。此错误在 2005 年 3 月的认可 [415d2e7cb7] 中引入 (https://github.com/curl/curl/commit/415d2e7cb7)。在 libcurl 7.56.0 版中,解析器一律以零结束字符串,并且将会拒绝最后未使用双引号正确结束的字符串。(CVE-2017-1000254) Curl 7.14.1 到 7.61.1 版在 tool_msgs.c:voutf() 函数中容易受到基于堆栈的缓冲区读取越界影响,进而可能导致信息泄漏和拒绝服务。(CVE-2018-16842) libcurl 容易受到基于堆栈的缓冲区溢出影响。创建传出 NTLM type-3 标头的函数 (`lib/vauth/ntlm.c:Curl_auth_create_ntlm_type3_message()`) 会根据先前收到的数据,生成请求 HTTP 标头内容。为防止本地缓冲区溢出而存在的检查实现错误(使用无符号的数学),因此无法防止发生溢出。如果从恶意或中断的 HTTP 服务器提供的上一个 NTLMv2 标头提取非常大的 'nt response' 数据,此输出数据可以增长到比本地缓冲区大。这种“大值”必须在 1000 字节以上。复制到目标缓冲区的实际负载数据来自 NTLMv2 type-2 响应标头。(CVE-2019-3822) libcurl 在处理 SMTP 之响应结尾的代码中,容易受到堆栈越界读取影响。如果传递至 `smtp_endofresp()` 的缓冲区不是以 NUL 结尾,且不含已解析数字的字符结尾,而且 `len` 设为 5,则 `strtol()` 调用会读取超出分配的缓冲区。系统不会将读取内容返回至调用者。(CVE-2019-3823) 在 curl 和 libcurl 7.57.0 之前版本中,FTP wildcard 函数可让远程攻击者通过结尾为 '[' 字符的字符串,造成拒绝服务(越界读取和应用程序崩溃),或可能造成其他不明影响。(CVE-2017-8817) 在 GNU Wget 低于 1.20.1 的 xattr.c 中,set_file_metadata 可将文件的来源 URL 储存在已下载文件之扩展属性的 user.xdg.origin.url 元数据属性中,进而允许本地用户通过读取此属性,获取敏感信息(例如,URL 中包含的认证),getfattr 即为一例。这也适用于 user.xdg.referrer.url 元数据属性中的 Referer 信息。根据 Wget ChangeLog 中的 2016-07-22,user.xdg.origin.url 在 curl 的 tool_xattr.c 中,部分是以 fwrite_xattr 的行为为基础。(CVE-2018-20483) 在 libcurl 的 IMAP handler 中发现缓冲区溢出缺陷。通过诱骗没有防备的用户连接至恶意 IMAP 服务器,攻击者可利用此缺陷导致信息泄露或应用程序崩溃。(CVE-2017-1000257) 在与关闭简单句柄相关代码的 curl 7.59.0 到 7.61.1 中发现一个堆释放后使用缺陷。在 `Curl_close()` 函数中关闭并清除“简单”句柄时,库代码会先释放 struct(不使指针为空),然后可能会错误地写入已释放之 struct 中的 struct 字段。(CVE-2018-16840) Curl 7.33.0 到 7.61.1 版在 SASL 验证代码中容易遭受缓冲区溢出,进而导致拒绝服务。(CVE-2018-16839)

解决方案

运行 'yum update curl' 以更新系统。

另见

https://alas.aws.amazon.com/AL2/ALAS-2019-1162.html

插件详情

严重性: Critical

ID: 122260

文件名: al2_ALAS-2019-1162.nasl

版本: 1.3

类型: local

代理: unix

发布时间: 2019/2/19

最近更新时间: 2020/2/12

依存关系: ssh_get_info.nasl

风险信息

VPR

风险因素: Medium

分数: 6.7

CVSS v2

风险因素: High

基本分数: 7.5

时间分数: 5.5

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

时间矢量: E:U/RL:OF/RC:C

CVSS v3

风险因素: Critical

基本分数: 9.8

时间分数: 8.5

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

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

漏洞信息

CPE: p-cpe:/a:amazon:linux:curl, p-cpe:/a:amazon:linux:curl-debuginfo, p-cpe:/a:amazon:linux:libcurl, p-cpe:/a:amazon:linux:libcurl-devel, cpe:/o:amazon:linux:2

必需的 KB 项: Host/local_checks_enabled, Host/AmazonLinux/release, Host/AmazonLinux/rpm-list

易利用性: No known exploits are available

补丁发布日期: 2019/2/18

漏洞发布日期: 2017/10/6

参考资料信息

CVE: CVE-2017-1000254, CVE-2017-1000257, CVE-2017-8816, CVE-2017-8817, CVE-2017-8818, CVE-2018-16839, CVE-2018-16840, CVE-2018-16842, CVE-2018-16890, CVE-2018-20483, CVE-2019-3822, CVE-2019-3823

ALAS: 2019-1162