Amazon Linux 2023:curl、curl-minimal、libcurl (ALAS2023-2023-083)

critical Nessus 插件 ID 173171

简介

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

描述

因此,它受到公告 ALAS2023-2023-083 中提及的多个漏洞影响。

- 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 会错误允许为顶级域 (TLD) 设置 cookie。可指示 curl 接收和发送 cookie。在构建 curl 的 cookie 引擎时,可以使用 [公共后缀列表],也可以不使用 (https://publicsuffix.org/)awareness。如果不提供 PSL 支持,则需要初步检查,以至少防止在 TLD 上设置 cookie。如果 URL 中的主机名以一个点结尾,此检查会被中断。这可允许任意站点设置 cookie,然后将其发送至不同且不相关的站点或域。(CVE-2022-27779)

- 解码 URL 的主机名部分时,curl URL 解析器会错误接受诸如“/”的以百分号编码的 URL 分隔符,从而使其在以后检索时成为使用错误主机名的*不同* URL。例如,解析器会允许诸如 `http://example.com%2F127.0.0.1/` 的 URL 并将其转置为 `http://example.com/127.0.0.1/`。攻击者可利用此缺陷避开筛选和检查等。
(CVE-2022-27780)

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

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

- 使用其 HSTS 支持,即使在 URL 中提供 HTTP 时,也可指示 curl 直接使用 HTTPS,而不是使用不安全的明文 HTTP 步骤。如果给定 URL 中的主机名使用了结尾点而未使用构建 HSTS 缓存时的结尾点,则可绕过此机制。或者反过来
- 在 HSTS 缓存中使用结尾点,而*不在* URL 中使用结尾点。
(CVE-2022-30115)

- 恶意服务器可在 HTTP 响应中提供过量的 `Set-Cookie:` ` 标头,导致 curl 和 curl < 7.84.0 存储所有这些标头。数量够多(大)的 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)

- 在进行 HTTP(S) 传输时,如果之前使用相同的句柄发出 `PUT` 请求(使用读取回调 (`CURLOPT_READFUNCTION`)),即使设置了 `CURLOPT_POSTFIELDS` 选项,libcurl 可能会错误地使用该回调来请求发送数据。此缺陷可能会使应用程序发生意外并导致其行为不当,并在后续的 `POST` 请求中发送错误的数据或使用释放后的内存或类似内容。从 PUT 更改为 POST 时,重用句柄的逻辑中存在此问题。(CVE-2022-32221)

- 当 curl 用于检索和解析来自 HTTP(S) 服务器的 cookie 时,它使用控制代码接受 cookie,这些代码稍后被发送回 HTTP 服务器时可能会使服务器返回 400 响应。
有效地令辅助站点拒绝向所有同级站点提供服务。(CVE-2022-35252)

- 可指示 curl 解析 `.netrc` 文件以获取凭据。如果该文件以具有 4095 个连续非空白字符且无换行符的行结尾,则 curl 将首先读取超过基于堆栈的缓冲区的末尾,如果是 readworks,则写入一个超出其边界的零字节。在大多数情况下此问题会造成段错误或类似问题,但不同的环境也可能造成不同的结果。如果恶意用户可以向应用程序提供自定义 netrc 文件,或以其他方式影响其内容,则此缺陷可被用作拒绝服务。(CVE-2022-35260)

- 在 7.86.0 版之前的 curl 中存在双重释放。如果指示 curl 使用 HTTP 代理进行具有非 HTTP URL 的传输,它会通过向代理发出 CONNECT 请求来与远程服务器建立连接,然后使协议的其余部分通过隧道。HTTP 代理可能拒绝此请求(HTTP 代理通常只允许传出连接至特定端口号,例如 HTTPS 的 443),而向客户端返回非 200 状态代码。由于错误/清理处理中的缺陷,如果在 URL 中使用以下方案之一进行传输,则这可能在 curl 中触发双重释放:dict、gopher、gophers、ldap、ldaps、rtmp、rtmps 或 telnet。低于 7.77.0 的版本均受影响。(CVE-2022-42915)

- 在 7.86.0 版之前的 curl 中,可绕过 HSTS 检查以诱骗其继续使用 HTTP。使用其 HSTS 支持,即使在 URL 中提供 HTTP 时,也可指示 curl 直接使用 HTTPS,而不是使用不安全的明文 HTTP 步骤。如果给定 URL 中的主机名使用在 IDN 转换过程中被 ASCII 对应项替换的 IDN 字符,则可绕过此机制。例如使用字符 UTF-8 U+3002 (IDEOGRAPHIC FULL STOP) 而不是通用 ASCII 句号 U+002E (.)。
低于 7.77.0 2021-05-26 的版本均受影响。(CVE-2022-42916)

- curl <7.87.0 HSTS 检查中存在漏洞,攻击者可绕过检查以诱骗程序继续使用 HTTP。
如使用 HSTS 支持,即使在 URL 中提供了 HTTP,仍可指示 curl 使用 HTTPS,而不是使用不安全的明文 HTTP 步骤。但是,如果给定 URL 中的主机名首先使用在 IDN 转换过程中被替换为 ASCII 对应项的 IDN 字符,则可以绕过 HSTS 机制。就像使用 UTF-8 U+3002 (IDEOGRAPHIC FULL STOP) 字符,而不是通用的 ASCII 句号 (U+002E)“.”。然后在后续请求中,程序不会检测 HSTS 状态并进行明文传输。这是因为它会存储经 IDN 编码的信息,但查找经 IDN 解码的信息。(CVE-2022-43551)

- curl <7.87.0 中存在释放后使用漏洞。可要求 Curl 通过 HTTP 代理*传输*其支持的几乎所有协议。HTTP 代理可以(而且经常会)拒绝此类传输操作。
如果传输特定协议 SMB 或 TELNET 被拒,Curl 会在其传输关闭代码路径中使用已释放的堆分配结构。(CVE-2022-43552)

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

解决方案

运行“dnf update curl --releasever=2023.0.20230222”以更新系统。

另见

https://alas.aws.amazon.com/AL2023/ALAS-2023-083.html

https://alas.aws.amazon.com/faqs.html

https://alas.aws.amazon.com/cve/html/CVE-2022-22576.html

https://alas.aws.amazon.com/cve/html/CVE-2022-27774.html

https://alas.aws.amazon.com/cve/html/CVE-2022-27775.html

https://alas.aws.amazon.com/cve/html/CVE-2022-27776.html

https://alas.aws.amazon.com/cve/html/CVE-2022-27779.html

https://alas.aws.amazon.com/cve/html/CVE-2022-27780.html

https://alas.aws.amazon.com/cve/html/CVE-2022-27781.html

https://alas.aws.amazon.com/cve/html/CVE-2022-27782.html

https://alas.aws.amazon.com/cve/html/CVE-2022-30115.html

https://alas.aws.amazon.com/cve/html/CVE-2022-32205.html

https://alas.aws.amazon.com/cve/html/CVE-2022-32206.html

https://alas.aws.amazon.com/cve/html/CVE-2022-32207.html

https://alas.aws.amazon.com/cve/html/CVE-2022-32208.html

https://alas.aws.amazon.com/cve/html/CVE-2022-32221.html

https://alas.aws.amazon.com/cve/html/CVE-2022-35252.html

https://alas.aws.amazon.com/cve/html/CVE-2022-35260.html

https://alas.aws.amazon.com/cve/html/CVE-2022-42915.html

https://alas.aws.amazon.com/cve/html/CVE-2022-42916.html

https://alas.aws.amazon.com/cve/html/CVE-2022-43551.html

https://alas.aws.amazon.com/cve/html/CVE-2022-43552.html

插件详情

严重性: Critical

ID: 173171

文件名: al2023_ALAS2023-2023-083.nasl

版本: 1.6

类型: local

代理: unix

发布时间: 2023/3/21

最近更新时间: 2024/2/20

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

风险信息

VPR

风险因素: Medium

分数: 6.7

CVSS v2

风险因素: High

基本分数: 7.5

时间分数: 5.9

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

CVSS 分数来源: CVE-2022-32207

CVSS v3

风险因素: Critical

基本分数: 9.8

时间分数: 8.8

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

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

CVSS 分数来源: CVE-2022-32221

漏洞信息

CPE: p-cpe:/a:amazon:linux:curl, p-cpe:/a:amazon:linux:curl-debuginfo, p-cpe:/a:amazon:linux:curl-debugsource, p-cpe:/a:amazon:linux:curl-minimal, p-cpe:/a:amazon:linux:curl-minimal-debuginfo, p-cpe:/a:amazon:linux:libcurl, p-cpe:/a:amazon:linux:libcurl-debuginfo, p-cpe:/a:amazon:linux:libcurl-devel, p-cpe:/a:amazon:linux:libcurl-minimal, p-cpe:/a:amazon:linux:libcurl-minimal-debuginfo, cpe:/o:amazon:linux:2023

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

可利用: true

易利用性: Exploits are available

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

漏洞发布日期: 2022/4/28

参考资料信息

CVE: CVE-2022-22576, CVE-2022-27774, CVE-2022-27775, CVE-2022-27776, CVE-2022-27779, CVE-2022-27780, CVE-2022-27781, CVE-2022-27782, CVE-2022-30115, CVE-2022-32205, CVE-2022-32206, CVE-2022-32207, CVE-2022-32208, CVE-2022-32221, CVE-2022-35252, CVE-2022-35260, CVE-2022-42915, CVE-2022-42916, CVE-2022-43551, CVE-2022-43552

IAVA: 2022-A-0224-S, 2022-A-0255-S, 2022-A-0350-S, 2022-A-0451-S, 2023-A-0008-S