Ubuntu 16.04 ESM / 18.04 ESM / 20.04 ESM / 22.04 LTS:Netty 漏洞 (USN-6049-1)

medium Nessus 插件 ID 174932

简介

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

描述

远程 Ubuntu 16.04 ESM/18.04 ESM/20.04 ESM/22.04 LTS 主机上安装的多个程序包受到 USN-6049-1 公告中提及的多个漏洞影响。

- 4.1.46 之前的 Netty 4.1.x 中的 ZlibDecoder 支持无限制内存分配,同时可对 ZlibEncoded 字节流进行解码。攻击者可向 Netty 服务器发送一个大型 ZlibEncoded 字节流,迫使服务器将其所有可用内存分配给单个解码器。(CVE-2020-11612)

- Netty 是一个开源异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。在 4.1.59.Final 之前版本的 Netty 中,类 Unix 系统中存在涉及不安全临时文件的漏洞。如果启用了磁盘上的临时存储上传,在使用 netty 的多部分解码器时,攻击者可通过本地系统临时目录造成本地信息泄露。在类 Unix 系统上,临时目录由所有用户共享。
因此,使用未明确设置文件/目录权限的 API 写入此目录可导致信息泄露。值得注意的是,这不会影响现代 MacOS 操作系统。类 Unix 系统上的 File.createTempFile 方法会创建一个随机文件,但默认情况下会以 -rw-r--r-- 权限创建此文件。因此,如果敏感信息被写入此文件,则其他本地用户可读取此信息。netty 的 AbstractDiskHttpData 在此情况下易受攻击。
此问题已在 4.1.59.Final 版中修复。作为变通方案,启动 JVM 时您可指定您自己的 java.io.tmpdir,或使用 DefaultHttpDataFactory.setBaseDir(...) 将目录设置为仅可由当前用户读取的内容。(CVE-2021-21290)

- Netty 是一个开源异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。在 Netty (io.netty: netty-codec-http2) 低于 4.1.60.Final 的版本中,存在启用请求走私的漏洞。如果原始 HTTP/2 请求中存在 Content-Length 标头,则向上传播该字段时不会通过“Http2MultiplexHandler”进行验证。只要请求没有以 HTTP/1.1 的形式被代理,便不会出现问题。如果请求以 HTTP/2 流的形式进入,通过“Http2StreamFrameToHttpObjectCodec”转换为 HTTP/1.1 域对象(“HttpRequest”、“HttpContent”等),然后向上发送到子通道的管道并通过远程对等方以 HTTP/1.1 的形式被代理,则可能导致请求走私。在代理的情况下,用户可以假设 content-length 以某种方式经过验证,而实际上并未经过验证。如果请求被转发到作为 HTTP/1.1 连接的后端通道,则 Content-Length 现在有意义并且需要检查。当正文从 HTTP/2 降级为 HTTP/1.1 时,攻击者可走私正文内的请求。有关示例攻击,请参阅链接的 GitHub 公告。仅当所有这些条件为真时,用户才会受到影响:使用“HTTP2MultiplexCodec”或“Http2FrameCodec”,使用“Http2StreamFrameToHttpObjectCodec”转换为 HTTP/1.1 对象,并将这些 HTTP/1.1 对象转发到另一个远程对等方中。此漏洞已在 4.1.60.Final 中修复。作为变通方案,用户可通过实现放置在“Http2StreamFrameToHttpObjectCodec”后“ChannelPipeline”中的自定义“ChannelInboundHandler”来自行验证。(CVE-2021-21295)

- Netty 是一个开源异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。在 Netty (io.netty: netty-codec-http2) 低于 4.1.61.Final 的版本中,存在启用请求走私的漏洞。如果请求仅使用 endStream 设置为真的单个 Http2HeaderFrame,则未正确验证 content-length 标头。如果请求被代理到远程对等方并转换为 HTTP/1.1,则可能导致请求走私。这是 GHSA-wm47-8v5p-wjpj/CVE-2021-21295 的后续行动,之前的行动未能修复此案例。
此漏洞在 4.1.61.Final 中已修复。(CVE-2021-21409)

- Bzip2 解压缩解码器功能不允许对解压缩的输出数据设置大小限制(这会影响解压缩期间使用的分配大小)。Bzip2Decoder 的所有用户都会受到影响。恶意输入可触发 OOME 等 DoS 攻击 (CVE-2021-37136)

- Snappy 帧解码器功能未限制区块长度,这可能会导致内存使用过多。除此之外,它还可能缓冲保留的可跳过区块,直到接收整个区块为止,这也可能会导致内存使用过多。通过提供解压缩后的大小非常大的恶意输入(通过网络流或文件),或通过发送巨大的可跳过区块,可触发此漏洞。(CVE-2021-37137)

- Netty 是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。低于 4.1.71.Final 的 Netty 会跳过标头名称开头/结尾的控制字符。相反,它应该快速失败,因为这些是规范所禁止的,并且可能导致 HTTP 请求走私。当远程系统用作代理时,未执行验证可能导致 netty 在将标头名称转发到另一个远程系统之前审查标头名称。此远程系统无法再查看无效使用情况,因此不会自行执行验证。用户应升级到版本 4.1.71.Final。 (CVE-2021-43797)

- Netty 项目是一个事件驱动的异步网络应用程序框架。在低于 4.1.86.Final 的版本中,由于无限递归,在解析畸形构建的消息时可引发堆栈溢出错误。此问题已在 4.1.86.Final 版本中得到修补。除使用自定义 HaProxyMessageDecoder 外,没有其他变通方案。 (CVE-2022-41881)

- Netty 项目是一个事件驱动的异步网络应用程序框架。从版本 4.1.83.Final 到 4.1.86.Final 之前的版本开始,当通过 _iterator_ 调用 `DefaultHttpHeadesr.set` 时,未执行标头值验证,这允许迭代器中的恶意标头值执行 HTTP 响应拆分。此问题已在 4.1.86.Final 版本中得到修补。集成商可通过将值的迭代器中 `DefaultHttpHeaders.set(CharSequence, Iterator<?>)` 调用更改为 `remove()` 调用,并循环调用 `add()` 来解决此问题。 (CVE-2022-41915)

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

解决方案

更新受影响的 libnetty-java 程序包。

另见

https://ubuntu.com/security/notices/USN-6049-1

插件详情

严重性: Medium

ID: 174932

文件名: ubuntu_USN-6049-1.nasl

版本: 1.3

类型: local

代理: unix

发布时间: 2023/4/28

最近更新时间: 2023/10/16

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

风险信息

VPR

风险因素: Medium

分数: 5.1

CVSS v2

风险因素: Medium

基本分数: 4.3

时间分数: 3.6

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

CVSS 分数来源: CVE-2021-43797

CVSS v3

风险因素: Medium

基本分数: 6.5

时间分数: 6

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

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

CVSS 分数来源: CVE-2022-41915

漏洞信息

CPE: cpe:/o:canonical:ubuntu_linux:16.04:-:esm, cpe:/o:canonical:ubuntu_linux:18.04:-:esm, cpe:/o:canonical:ubuntu_linux:20.04:-:esm, cpe:/o:canonical:ubuntu_linux:22.04:-:lts, p-cpe:/a:canonical:ubuntu_linux:libnetty-java

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

可利用: true

易利用性: Exploits are available

补丁发布日期: 2023/4/28

漏洞发布日期: 2020/4/7

参考资料信息

CVE: CVE-2020-11612, CVE-2021-21290, CVE-2021-21295, CVE-2021-21409, CVE-2021-37136, CVE-2021-37137, CVE-2021-43797, CVE-2022-41881, CVE-2022-41915

USN: 6049-1