Debian DSA-5507-1:jetty9 - 安全更新

medium Nessus 插件 ID 182198

简介

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

描述

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

- Jetty 为基于 java 的 Web 服务器和 servlet 引擎。在受影响的版本中,对于调用 `HttpServletRequest.getParameter()` 或 `HttpServletRequest.getParts()` 的多部分支持(例如注释为 `@MultipartConfig`)的 servlet,其可能会在客户端发送包含有名称但无文件名且内容非常大的部分的多部分请求时导致 `OutOfMemoryError`。即使使用默认设置 `fileSizeThreshold=0` 也会发生这种情况,该设置应将整个部分内容流式传输到磁盘。攻击者客户端可能会发送大型多部分请求并导致服务器抛出 `OutOfMemoryError`。然而,服务器可能会在 `OutOfMemoryError` 之后恢复并继续其服务,尽管这可能需要一些时间。已在 9.4.51、10.0.14 和 11.0.14 中修补此问题。建议用户升级。
无法升级的用户可以设置多部分参数 `maxRequestSize`,该参数必须设置为非负值,因此整个多部分内容都会受到限制(尽管仍然读入内存)。
(CVE-2023-26048)

- Jetty 为基于 java 的 Web 服务器和 servlet 引擎。Jetty 中存在非标准 Cookie 解析,攻击者可利用此问题在其他 Cookie 中走私 Cookie,或是通过篡改 Cookie 解析机制来执行意外行为。如果 Jetty 看到以 ``(双引号)开头的 Cookie 值,它将继续读取 Cookie 字符串,直到看到闭引号,即使遇到分号也是如此。因此,Cookie 标头示例如下:`DISPLAY_LANGUAGE=b; JSESSIONID=1337; c=d` 将被解析为一个 Cookie,名称为 DISPLAY_LANGUAGE,值为 b; JSESSIONID=1337; c=d,而非 3 个单独的 Cookie。此操作具有安全隐患,因为如果 JSESSIONID 为 HttpOnly Cookie,且 DISPLAY_LANGUAGE Cookie 值呈现在页面上,攻击者就可将 JSESSIONID Cookie 传递至 DISPLAY_LANGUAGE Cookie 中,从而泄露此信息。当中介基于 Cookie 制定某些策略时,此点尤为重要,因此走私的 Cookie 可以绕过该策略,但仍然可以被 Jetty 服务器或其日志系统看到。此问题已在 9.4.51、10.0.14、11.0.14 和 12.0.0.beta0 版本中解决,建议所有用户升级。针对此问题,尚无已知的变通方案。
(CVE-2023-26049)

- Eclipse Jetty Canonical 存储库是 Jetty 项目的规范存储库。具有非常具体的命令结构的 CgiServlet 的用户可能会执行错误的命令。如果用户向 org.eclipse.jetty.servlets.CGI Servlet 发送名称中包含空格的二进制文件的请求,Servlet 则会用引号将命令封装以转义该命令。随后,系统将通过调用 Runtime.exec 来执行此封装命令以及可选命令前缀。如果用户提供的原始二进制文件名称中包含后跟一个空格的引号,则生成的命令行将包含多个标记,而非一个。已在 9.4.52、10.0.16、11.0.16 和 12.0.0-beta2 版本中修复此问题。
(CVE-2023-36479)

- Jetty 为基于 Java 的 Web 服务器和 servlet 引擎。在版本 9.4.52、10.0.16、11.0.16 和 12.0.1 之前,Jetty 会接受 HTTP/1 标头字段中 content-length 值前面的 `+` 字符。这比 RFC 允许的更为宽松,而其他服务器通常会拒绝此类请求并返回 400 响应。目前尚无已知的利用场景,但可以预见,如果 jetty 与发送此类 400 响应后不关闭连接的服务器结合使用,就可能会导致请求走私情形。 9.4.52、10.0.16、11.0.16 和 12.0.1 版包含针对此问题的补丁。由于目前尚无已知的利用场景,因此没有 变通方案。(CVE-2023-40167)

- Jetty 为基于 Java 的 Web 服务器和 servlet 引擎。版本 9.4.21 至 9.4.51、10.0.15 和 11.0.15 容易受到弱身份验证的影响。如果 Jetty `OpenIdAuthenticator` 使用可选嵌套 `LoginService`,并且该 `LoginService` 决定撤销已通过身份验证的用户,则当前请求仍会将用户视为已通过身份验证。随后,身份验证将从会话中清除,而且后续请求将不会被视为已通过身份验证。因此,先前经过身份验证的会话中的请求在被 `LoginService` 拒绝后可以绕过身份验证。这会影响已配置嵌套 `LoginService` 的 jetty-openid 的使用,并而且 `LoginService` 将能够拒绝先前经过身份验证的用户。9.4.52、10.0.16 和 11.0.16 版本包含针对此问题的补丁。(CVE-2023-41900)

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

解决方案

升级 jetty9 程序包。

对于稳定发行版本 (bookworm),已在 9.4.50-4+deb12u1 版本中修复这些问题。

另见

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

https://www.debian.org/security/2023/dsa-5507

https://security-tracker.debian.org/tracker/CVE-2023-26048

https://security-tracker.debian.org/tracker/CVE-2023-26049

https://security-tracker.debian.org/tracker/CVE-2023-36479

https://security-tracker.debian.org/tracker/CVE-2023-40167

https://security-tracker.debian.org/tracker/CVE-2023-41900

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

https://packages.debian.org/source/bookworm/jetty9

插件详情

严重性: Medium

ID: 182198

文件名: debian_DSA-5507.nasl

版本: 1.2

类型: local

代理: unix

发布时间: 2023/9/29

最近更新时间: 2024/3/21

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

风险信息

VPR

风险因素: Low

分数: 2.2

CVSS v2

风险因素: Medium

基本分数: 5

时间分数: 3.9

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

CVSS 分数来源: CVE-2023-40167

CVSS v3

风险因素: Medium

基本分数: 5.3

时间分数: 4.8

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

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

漏洞信息

CPE: p-cpe:/a:debian:debian_linux:jetty9, p-cpe:/a:debian:debian_linux:libjetty9-extra-java, p-cpe:/a:debian:debian_linux:libjetty9-java, cpe:/o:debian:debian_linux:11.0, cpe:/o:debian:debian_linux:12.0

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

可利用: true

易利用性: Exploits are available

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

漏洞发布日期: 2023/4/18

参考资料信息

CVE: CVE-2023-26048, CVE-2023-26049, CVE-2023-36479, CVE-2023-40167, CVE-2023-41900

IAVB: 2023-B-0082-S