Debian DSA-5197-1:curl - 安全更新

critical Nessus 插件 ID 163681

简介

远程 Debian 主机上缺少一个或多个与安全性相关的更新。

描述

远程 Debian 11 主机上安装的多个程序包受到 dsa-5197 公告中提及的多个漏洞影响。

- 当“-t”命令行选项(在 libcurl 中称为“CURLOPT_TELNETOPTIONS”)用于将 variable=content 对发送到 TELNET 服务器时,curl 7.7 到 7.76.1 受到信息泄露漏洞的影响。用于发送 NEW_ENV 变量的选项解析器中存在一个缺陷,因此 libcurl 可能会被用于将未初始化的数据从基于堆栈的缓冲区传递到服务器,从而可能导致使用明文网络协议将敏感的内部信息泄露给服务器。(CVE-2021-22898)

- LibCurl 将先前使用的连接保留在连接池中,以供后续传输重新使用(如果其中一个连接与设置匹配)。由于逻辑错误,配置匹配函数没有考虑“发行者证书”,且比较了涉及路径中的*不区分大小写*,这可导致 LibCurl 重新使用错误的连接。文件路径在许多系统中会(或可能)区分大小写,但不是全部,并且甚至会因使用的文件系统而不同。比较中未包括“发行者证书”,传输可对其进行设置,以限制验证服务器的方式。 (CVE-2021-22924)

- 向 MQTT 服务器发送数据时,libcurl <= 7.73.0 和 7.78.0 版在某些情况下可能会错误地保留指向已释放内存区域的指针,并在后续调用中再次使用该指针来发送数据,并*再次* 释放。(CVE-2021-22945)

- 用户可以在与 IMAP、POP3 或 FTP 服务器通信时,告知 7.20.0、7.78.0 及其之间的 curl 版本需要成功升级至 TLS(命令行的 `--ssl-reqd` 或`CURLOPT_USE_SSL` 设置为带有 libcurl 的 `CURLUSESSL_CONTROL` 或 `CURLUSESSL_ALL`)。如果服务器返回构建正确且完全合法的响应,则可绕过此要求。此缺陷将使 curl 默默地继续其操作
**无 TLS** 违反说明和预期,可通过网络以明文形式暴露可能的敏感数据。(CVE-2021-22946)

- 当 7.20.0、7.78.0 及其之间的 curl 版本连接到 IMAP 或 POP3 服务器以使用 STARTTLS 检索数据进而升级到 TLS 安全时,服务器可以响应并立即发回 curl 缓存的多个响应。
然后,curl 会升级至 TLS,但不会刷新缓存响应的队列,而是继续使用和信任其在 TLS 握手*之前*获得的响应,就好像这些响应已经过身份验证一样。中间人攻击者可使用此缺陷,首先注入虚假响应,然后传递来自合法服务器的 TLS 流量,并诱使 curl 认为攻击者注入的数据来自受 TLS 保护的服务器,从而向用户发回数据。(CVE-2021-22947)

- curl 7.33.0 至 7.82.0(含)版本中存在一个不当认证漏洞,从而可能允许在未正确确保已使用为传输设置的相同凭据来认证连接的情况下,重复使用经 OAUTH2 认证的连接。此漏洞会影响启用了 SASL 的协议:SMPTP(S)、IMAP(S)、POP3(S) 和 LDAP(S)(仅限 openldap)。(CVE-2022-22576)

- curl 4.9 至 7.82.0 版(含)存在凭据保护不充分漏洞,允许攻击者在遵循身份验证中结合使用的 HTTP(S) 重定向时提取凭据,将凭据泄露给不同协议或端口号上的其他服务。
(CVE-2022-27774)

- curl 7.65.0 至 7.82.0 中存在信息泄露漏洞,在使用连接池中具有不同区域 ID 的 IPv6 地址时,它可能会重复使用连接。(CVE-2022-27775)

- curl 7.83.0 版中修复的凭据保护不充分漏洞可能会在 HTTP 重定向到相同主机不同端口号时泄漏身份认证或 Cookie 标头数据。(CVE-2022-27776)

- libcurl 提供“CURLOPT_CERTINFO”选项,以允许应用程序请求返回有关服务器证书链的详细信息。由于使用错误函数,恶意服务器可造成使用 NSS 构建的 libcurl 在尝试检索此信息时被卡在忙碌等待的死循环中。
(CVE-2022-27781)

- 即便已更改 TLS 或 SSH 相关选项,libcurl 仍会重复使用以前创建的连接,而这些连接本应禁止重复使用。如果其中一个连接与设置匹配,libcurl 会将以前用过的连接保留在连接池中,以便后续传输重复使用。但是,配置匹配检查会遗漏多个 TLS 和 SSH 设置,使匹配变得非常容易。(CVE-2022-27782)

- 恶意服务器可在 HTTP 响应中提供过量的 `Set-Cookie:` 标头,而低于 7.84.0 版的 curl 会存储所有这些标头。数量够多(大)的 cookie 会向此服务器或这些 cookie 相匹配的其他服务器发出后续 HTTP 请求,从而使创建的请求超过 curl 为避免发送过大请求(1048576 字节)而在内部使用的阈值,而没有返回错误。只要保留和匹配这些 cookie 并且它们未过期,此拒绝状态就可能持续存在。由于 cookie 匹配规则,“foo.example.com”上的服务器可以设置匹配“bar.example.com”的 cookie,从而使同级服务器可以有效造成相同二级域上使用此方法的同级网站拒绝服务。(CVE-2022-32205)

- curl 7.84.0 以下版本支持链接的 HTTP 压缩算法,这意味着服务器响应可被多次压缩,并且可能使用不同的算法。此解压缩链中可接受的链接数量不受限制,因此恶意服务器可以插入数量几乎无限制的压缩步骤。使用此类解压缩链可能导致 malloc 炸弹,使 curl 最终消耗大量分配的堆内存,或尝试并返回内存不足错误。(CVE-2022-32206)

- 低于 7.84.0 版的 curl 将 cookie、alt-svc 和 hsts 数据保存到本地文件时,会通过将临时名称重命名为最终目标文件名称来完成操作,从而使该操作成为原子型操作。在该重命名操作中,它可能会意外*放宽*对目标文件的权限,使更多用户可访问更新后的文件。(CVE-2022-32207)

- 低于 7.84.0 版的 curl 在执行受 krb5 保护的 FTP 传输时,会错误处理消息验证失败。
攻击者可利用此缺陷执行中间人攻击而不被发现,甚至可以向客户端注入数据。(CVE-2022-32208)

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

解决方案

升级 curl 程序包。

对于稳定发行版本 (bullseye),这些问题已在 7.74.0-1.3+deb11u2 版本中解决。

另见

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=989228

https://security-tracker.debian.org/tracker/source-package/curl

https://www.debian.org/security/2022/dsa-5197

https://security-tracker.debian.org/tracker/CVE-2021-22898

https://security-tracker.debian.org/tracker/CVE-2021-22924

https://security-tracker.debian.org/tracker/CVE-2021-22945

https://security-tracker.debian.org/tracker/CVE-2021-22946

https://security-tracker.debian.org/tracker/CVE-2021-22947

https://security-tracker.debian.org/tracker/CVE-2022-22576

https://security-tracker.debian.org/tracker/CVE-2022-27774

https://security-tracker.debian.org/tracker/CVE-2022-27775

https://security-tracker.debian.org/tracker/CVE-2022-27776

https://security-tracker.debian.org/tracker/CVE-2022-27781

https://security-tracker.debian.org/tracker/CVE-2022-27782

https://security-tracker.debian.org/tracker/CVE-2022-32205

https://security-tracker.debian.org/tracker/CVE-2022-32206

https://security-tracker.debian.org/tracker/CVE-2022-32207

https://security-tracker.debian.org/tracker/CVE-2022-32208

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

插件详情

严重性: Critical

ID: 163681

文件名: debian_DSA-5197.nasl

版本: 1.5

类型: local

代理: unix

发布时间: 2022/8/2

最近更新时间: 2022/12/5

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

风险信息

VPR

风险因素: High

分数: 7.4

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 分数来源: CVE-2022-32207

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-gnutls, p-cpe:/a:debian:debian_linux:libcurl3-nss, p-cpe:/a:debian:debian_linux:libcurl4, p-cpe:/a:debian:debian_linux:libcurl4-doc, 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:11.0

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

易利用性: No known exploits are available

补丁发布日期: 2022/8/1

漏洞发布日期: 2021/5/28

参考资料信息

CVE: CVE-2021-22898, CVE-2021-22924, CVE-2021-22945, CVE-2021-22946, CVE-2021-22947, CVE-2022-22576, CVE-2022-27774, CVE-2022-27775, CVE-2022-27776, CVE-2022-27781, CVE-2022-27782, CVE-2022-32205, CVE-2022-32206, CVE-2022-32207, CVE-2022-32208

IAVA: 2022-A-0224-S, 2022-A-0255-S

CEA-ID: CEA-2022-0026