Oracle Linux 8:squid: 4 (ELSA-2020-4743)

critical Nessus 插件 ID 180917

简介

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

描述

远程 Oracle Linux 8 主机上安装的程序包受到 ELSA-2020-4743 公告中提及的多个漏洞的影响。

- 在 Squid 4.10 之前的版本中发现问题。它允许构建的 FTP 服务器触发堆内存中敏感信息(例如,与其他用户的会话或非 Squid 进程相关的信息)的泄露。(CVE-2019-12528)

- 在 Squid 4.10 之前的版本中发现问题。由于不正确的缓冲区管理,导致远程客户端可在充当反向代理的 Squid 实例中造成缓冲区溢出。(CVE-2020-8450)

- 在 Squid(版本低于 4.12 以及为低于 5.0.3 的 5.x)的 http/ContentLengthInterpreter.cc 中发现问题。可成功针对 HTTP 缓存发动请求走私和中毒攻击。客户端发送带有 Content-Length 标头的 HTTP 请求,该标头包含长度字段值的 +\- 或不常见 shell 空白字符前缀。(CVE-2020-15049)

- 可信对等机可利用 Squid(版本为 4.13 以及 5.0.4 之前的 5.x),通过在处理构建的 Cache Digest 响应消息期间消耗所有可用的 CPU 周期,执行拒绝服务。仅当 cache_peer 与缓存摘要功能一起使用时才会发生此问题。存在该问题的原因是 peer_digest.cc 中的 peerDigestHandleReply() 活锁未正确处理 EOF。(CVE-2020-24606)

- 在 Squid 4.10 之前的版本中发现问题。此问题可以非预期的方式解释构建的 HTTP 请求,以访问早期安全过滤器禁止的服务器资源,这是输入验证不正确所致。
(CVE-2020-8449)

- 在 Squid 4.7 及之前的版本中发现问题。- 当 Squid 解析 ESI 时,它会将 ESI 元素保留在 ESIContext 中。ESIContext 包含一个用于保存 ESIElement 堆栈的缓冲区。在解析新的 ESIElement 时,可以通过 addStackElement 添加该元素。addStackElement 对此缓冲区中的元素数量进行了检查,但结果为差 1,进而导致 1 个元素堆溢出。溢出位于同一结构内,因此不会影响邻近的内存块,只会在处理时导致崩溃。
(CVE-2019-12521)

- 在 Squid 4.9 之前的版本中发现问题。处理 URN 请求时,会发出相应的 HTTP 请求。此 HTTP 请求未经过传入 HTTP 请求经过的访问权限检查,这会造成所有访问检查被绕过,并且允许访问受限制的 HTTP 服务器,例如,攻击者可连接到仅监听本地主机的 HTTP 服务器。(CVE-2019-12523)

- 在 Squid 4.7 及之前的版本中发现问题。- 处理来自用户的请求时,Squid 会检查其规则以查看是否应拒绝该请求。默认情况下,Squid 带有阻止访问缓存管理器的规则,该管理器可为维护者提供详细的服务器信息。此规则通过 url_regex 实现。url_regex 的规则 URL 处理程序可解码传入的请求,这使攻击者可以对自己的 URL 进行编码以绕过 url_regex 检查,并获得对被阻止资源的访问权限。(CVE-2019-12524)

- 在 Squid 4.9 之前的版本中发现问题。Squid 中的 URN 响应处理受到基于堆的缓冲区溢出漏洞影响。从远程服务器接收数据以响应 URN 请求时,Squid 无法确保响应内容都在缓冲区内。攻击者可利用此漏洞造成堆中的控制数据溢出。(CVE-2019-12526)

- 在 Squid 2.x 至 2.7.STABLE9、3.x 至 3.5.28 和 4.x 至 4.7 版本中发现了一个问题。当 Squid 配置为使用基本身份验证时,它会通过 uudecode 解析标头 Proxy-Authorization。
uudecode 会通过迭代输入并检查其表格来确定需要解码的字节数。然后,此长度会被用于开始解码该字符串。但没有任何检查可以确保其计算出的长度不超过输入缓冲区的长度。这会导致邻近内存也被解码。除非 Squid 维护人员已配置在错误页面显示用户名,否则攻击者将无法检索已解码的数据。(CVE-2019-12529)

- 使用特定 Web 浏览器时,Squid 4.9 的之前版本未正确处理 cachemgr.cgi 的主机(又称为主机名)参数中的 HTML。(CVE-2019-18860)

- 在版本低于 4.12 以及版本为低于 5.0.3 的 5.x 的 Squid 中发现问题。由于使用了潜在危险的函数,当打开与攻击者控制的 HTTPS 服务器的 TLS 连接时,Squid 和默认证书验证帮助程序容易受到拒绝服务的攻击。之所以发生此问题,是因为无法识别的错误值被映射到了 NULL;但按照预期,后来输入的代码可将每个错误值都映射到有效的错误字符串。(CVE-2020-14058)

- 在 Squid 4.7 及其之前的所有版本和第 5 版中发现一个问题。当接收请求时,Squid 会检查其缓存以查看其是否可提供响应,它通过对请求的绝对 URL 进行 MD5 哈希来实现此操作。
如果找到,则为请求提供服务。绝对 URL 可包含针对某些协议解码后的 UserInfo(用户名和密码),此解码后的信息会附加到网域之前。攻击者可借此提供具有特殊字符的用户名来分隔域,并将 URL 的其余部分视为路径或查询字符串。攻击者可首先使用编码的用户名向其域发出请求,然后当收到解码为确切 URL 的目标域请求时,程序会提供攻击者的 HTML,而不是真正的 HTML。在同时充当反向代理的 Squid 服务器上,这允许攻击者访问只有反向代理才能使用的功能,例如 ESI。(CVE-2019-12520)

- 由于未正确终止字符串,Squid cachemgr.cgi 4.0 到 4.7 版本可能会访问未分配的内存。在具有内存访问保护的系统上,这可能造成 CGI 进程意外终止,进而导致所有使用它的客户端发生拒绝服务。(CVE-2019-12854)

- 在 Squid 3.x 和 4.x 至 4.8 版本中发现问题。由于输入验证不正确,存在基于堆的缓冲区溢出,可导致使用代理的所有客户端遭受拒绝服务攻击。由于此漏洞在正常安全检查之前发生,因此严重性较高;任何可以访问代理端口的远程客户端都可以通过构建的 URI 方案轻松执行攻击。(CVE-2019-18676)

- 当使用 append_domain 设置时,在 Squid 3.x 和 4.x 到 4.8 版本中发现一个问题(因为附加字符不能与主机名长度限制正确地进行交互)。由于消息处理不正确,可能会将流量错误地重定向到流量不应流向的源。
(CVE-2019-18677)

- 在 Squid 3.x 和 4.x 至 4.8 版本中发现问题。攻击者可利用此问题,通过前端软件将 HTTP 请求传递至 Squid 实例,此实例以不同的方式拆分 HTTP 请求管道。生成的响应消息通过任意 URL 的攻击者控制内容破坏缓存(客户端与 Squid 之间)。攻击者客户端和 Squid 之间的软件会受到影响。但 Squid 本身不会受到影响,所有上游服务器也不会受到影响。此问题与请求标头有关,其中包含标头名称与冒号之间的空格。(CVE-2019-18678)

- 在 Squid 2.x、3.x 及 4.x 至 4.8 版本中发现问题。由于不正确的数据管理,导致在处理 HTTP 摘要式身份验证时容易发生信息泄露。Nonce 令牌包含位于堆内存分配中的指针的原始字节值。此信息会减少 ASLR 保护,并且可能会协助攻击者将内存区域隔离至目标,从而实现远程代码执行攻击。
(CVE-2019-18679)

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

解决方案

更新受影响的 libecap、libecap-devel 和/或 squid 程序包。

另见

https://linux.oracle.com/errata/ELSA-2020-4743.html

插件详情

严重性: Critical

ID: 180917

文件名: oraclelinux_ELSA-2020-4743.nasl

版本: 1.0

类型: local

代理: unix

发布时间: 2023/9/7

最近更新时间: 2023/9/7

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

风险信息

VPR

风险因素: Medium

分数: 5.9

CVSS v2

风险因素: High

基本分数: 7.5

时间分数: 5.5

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

CVSS 分数来源: CVE-2020-8450

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

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

CVSS 分数来源: CVE-2019-12526

漏洞信息

CPE: cpe:/o:oracle:linux:8, p-cpe:/a:oracle:linux:libecap, p-cpe:/a:oracle:linux:libecap-devel, p-cpe:/a:oracle:linux:squid

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

易利用性: No known exploits are available

补丁发布日期: 2020/11/10

漏洞发布日期: 2019/7/11

参考资料信息

CVE: CVE-2019-12520, CVE-2019-12521, CVE-2019-12523, CVE-2019-12524, CVE-2019-12526, CVE-2019-12528, CVE-2019-12529, CVE-2019-12854, CVE-2019-18676, CVE-2019-18677, CVE-2019-18678, CVE-2019-18679, CVE-2019-18860, CVE-2020-14058, CVE-2020-15049, CVE-2020-24606, CVE-2020-8449, CVE-2020-8450