Debian DLA-711-1:curl 安全更新

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

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

简介

远程 Debian 主机缺少安全更新。

描述

CVE-2016-8615 如果在 cookie 栏文件中写入 cookie 状态,然后再回读该文件并用于后续请求,恶意 HTTP 服务器可能向该 cookie 栏中注入任意域的新 cookie。此问题与将 cookie 加载到内存中的函数有关,该函数使用“fgets()”函数将指定文件逐行读入固定大小的缓冲区中。如果由于目标缓冲区太小而导致 fgets() 的调用无法将整行读入目标缓冲区中,它会截断输出。这样,恶意服务器发送的一个非常长的 cookie(名称 + 值)会存储在文件中,随后可能部分读取并正确制作该 cookie,将其作为另一台服务器的不同 cookie 处理。CVE-2016-8616 curl 在重新使用连接时,会对现有连接进行不区分大小写的用户名和密码比较。这意味着,如果具有连接范围凭据的协议存在具有适当凭据的未使用连接,则攻击者如知晓正确密码的不区分大小写版本,可导致重用连接。CVE-2016-8617 在 libcurl 的 base64 编码函数中,分配输出缓冲区时不对 insize 进行任何检查,方式如下:malloc( insize * 4 / 3 + 4 ) 在用户空间中具有 32 位地址的系统(例如 x86、ARM、x32 )上,如果 insize 至少为 1GB 数据,表达式中的乘法运算会回绕。如果发生这种情况,会分配一个较小的输出缓冲区,但仍会写入完整结果,从而覆盖输出缓冲区后面的内存。具有“size_t”类型的 64 位版本的系统不受此问题影响。CVE-2016-8618 名为 curl_maprintf() 的 libcurl API 函数在使用 32 位 size_t 变量的系统上可能由于执行不安全的 size_t 乘法运算而被诱骗进行双重释放。许多情况下可能还会在内部使用该函数。具有“size_t”类型的 64 位版本的系统不受此问题影响。CVE-2016-8619 在 curl 的 Kerberos 身份验证机制的实现中,会使用 security.c 中的函数“read_data()”填充必要的 krb5 结构。从套接字读取其中一个长度字段时,不能确保传递给 realloc() 的长度参数未设置为 0。CVE-2016-8621 “curl_getdate”可将给定的日期字符串转换为数字时间戳,它支持多种不同的格式,并且可以表示日期和时间。底层日期解析功能还可以在内部使用,例如在解析 HTTP cookie(可能从远程服务器接收到)时使用,并且可以在执行条件 HTTP 请求时使用。CVE-2016-8622 libcurl 中的 URL 百分比编码解码函数称为“curl_easy_unescape”。在内部,即使令该函数分配大于 2GB 的 unescape 目标缓冲区,它也会在已签名的 32 位整数变量中返回该新长度,因此该长度会被截断,或在被截断的同时变为负数。这随后可导致 libcurl 在基于堆的缓冲区之外写入。CVE-2016-8623 libcurl 明确允许用户在不同线程同时使用的多个简单句柄之间共享 cookie。在收集要发送到服务器的 cookie 时,匹配函数会收集所有要发送的 cookie,然后立即释放 cookie 锁。但是,该函数只会将带有 *reference* 的列表返回到名称、值、路径等的原始字符串。因此,如果另一个线程快速获取了锁定并释放了其中一个原始 cookie 结构及其字符串,则可能会发生释放后使用并导致信息泄露。另一个线程也可以替换来自单独 HTTP 响应或 API 调用的 cookie 内容。CVE-2016-8624 当主机名部分以“#”字符结尾时,curl 无法正确解析 URL 的授权组件,并且可能被诱骗连接其他主机。这可能会对安全性产生影响,例如,如果您使用遵循 RFC 的 URL 解析器来检查允许的域,然后再使用 curl 请求它们。对于 Debian 7“Wheezy”,这些问题已在 7.26.0-1+wheezy17 版本中修复。建议您升级 curl 程序包。注意:Tenable Network Security 已直接从 DLA 安全公告中提取上述描述块。Tenable 已尝试在不引入其他问题的情况下,尽可能进行自动整理和排版。

解决方案

升级受影响的程序包。

另见

https://lists.debian.org/debian-lts-announce/2016/11/msg00018.html

https://packages.debian.org/source/wheezy/curl

插件详情

严重性: Critical

ID: 94941

文件名: debian_DLA-711.nasl

版本: 2.8

类型: local

代理: unix

发布时间: 2016/11/18

最近更新时间: 2021/1/11

依存关系: 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:debian:debian_linux:curl, p-cpe:/a:debian:debian_linux:libcurl3, p-cpe:/a:debian:debian_linux:libcurl3-dbg, p-cpe:/a:debian:debian_linux:libcurl3-gnutls, p-cpe:/a:debian:debian_linux:libcurl3-nss, p-cpe:/a:debian:debian_linux:libcurl4-gnutls-dev, p-cpe:/a:debian:debian_linux:libcurl4-nss-dev, p-cpe:/a:debian:debian_linux:libcurl4-openssl-dev, cpe:/o:debian:debian_linux:7.0

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

易利用性: No known exploits are available

补丁发布日期: 2016/11/17

漏洞发布日期: 2018/7/31

参考资料信息

CVE: CVE-2016-8615, CVE-2016-8616, CVE-2016-8617, CVE-2016-8618, CVE-2016-8619, CVE-2016-8621, CVE-2016-8622, CVE-2016-8623, CVE-2016-8624