内容

Apache Tomcat 10.x 漏洞

本页面列出了 Apache Tomcat® 10.x 已发布版本中修复的所有安全漏洞。每个漏洞均由 Apache Tomcat 安全团队赋予安全影响评级 — 请注意,此评级可能因平台而异。我们还列出了已知受此缺陷影响的 Apache Tomcat 版本,对于尚未验证的缺陷,则用问号标记其版本。

注意:非 Tomcat 漏洞但被错误地报告为 Tomcat 漏洞,或 Tomcat 提供了变通方法的漏洞,将在本页面末尾列出。

请注意,Tomcat 10.0.x 已达到生命周期结束 (EOL),不再受支持。2022 年 10 月 31 日之后报告的漏洞未针对 10.0.x 分支进行检查,也不会修复。用户应升级到 10.1.x 或更高版本以获取安全修复。

请注意,我们从不提供二进制补丁。如果您需要应用源代码补丁,请使用您所使用的 Apache Tomcat 版本的构建说明。对于 Tomcat 10.0.x,它们是building.htmlBUILDING.txt。这两个文件都可以在二进制发行版的webapps/docs子目录中找到。您可能还需要查阅文档中的安全注意事项页面。

如果您在构建或配置 Tomcat 方面需要帮助,或在遵循说明以缓解此处列出的已知漏洞方面需要其他帮助,请将您的问题发送到公共Tomcat 用户邮件列表

如果您遇到未列出的安全漏洞或其他具有安全影响的意外行为,或者如果此处的描述不完整,请私下报告给Tomcat 安全团队。谢谢。

目录

2025-06-09 在 Apache Tomcat 10.1.42 中修复

中度:PreResources 和 PostResources 的安全约束绕过 CVE-2025-49125

当 PreResources 或 PostResources 未挂载在 Web 应用程序根目录下时,可以通过非预期路径访问这些资源。该路径可能未受与预期路径相同的安全约束保护,从而允许绕过这些安全约束。

此问题已通过提交 7617b9c2 修复。

此问题于 2025 年 6 月 16 日公开。

影响:10.1.0-M1 至 10.1.41

低:通过 Windows 版 Tomcat 安装程序进行侧加载 CVE-2025-49124

在安装过程中,Windows 版 Tomcat 安装程序在使用 icacls.exe 时未指定完整路径。这导致了侧加载漏洞。

此问题已通过提交 e0e07812 修复。

此问题于 2025 年 6 月 16 日公开。

影响:10.1.0 至 10.1.41

重要:multipart 上传中的 DoS 漏洞 CVE-2025-48988

Tomcat 对 multipart 请求中的请求参数和部分使用了相同的限制。由于上传的部分还包括必须保留的头部信息,处理 multipart 请求可能导致显著更高的内存使用量。一个特制的、使用大量部分的请求可能触发过度的内存使用,从而导致拒绝服务 (DoS)。现在可以配置最大部分数量(通过 Connector 上的 maxPartCount),默认值为 10 个部分。

此问题已通过提交 cdde8e65 修复。

此问题于 2025 年 6 月 16 日公开。

影响:10.1.0-M1 至 10.1.41

重要:Commons FileUpload 中的 DoS 漏洞 CVE-2025-48976

Apache Commons FileUpload 为 multipart 请求相关的头部大小提供了 10kB 的硬编码限制。一个特制的、使用大量部分且头部很大的请求可能触发过度的内存使用,从而导致拒绝服务 (DoS)。现在可以配置此限制(通过 Connector 上的 maxPartHeaderSize),默认值为 512 字节。

此问题已通过提交 667ddd76 修复。

此问题于 2025 年 6 月 16 日公开。

影响:10.1.0-M1 至 10.1.41

2025-05-12 在 Apache Tomcat 10.1.41 中修复

低:CGI 安全约束绕过 CVE-2025-46701

当在不区分大小写的文件系统上运行,并且为映射到 CGI servlet 的 URL 的 pathInfo 组件配置了安全约束时,可以通过特制的 URL 绕过这些安全约束。

此问题已通过提交 2c680011238d2aa5 修复。

此问题于 2025 年 5 月 29 日公开。

影响:10.1.0-M1 至 10.1.40

2025-04-08 在 Apache Tomcat 10.1.40 中修复

低:重写规则绕过 CVE-2025-31651

对于一部分不太可能出现的重写规则配置,特制请求可能绕过某些重写规则。如果这些重写规则有效地强制执行安全约束,则这些约束可能被绕过。

此问题已通过提交 066bf6b6 修复。

此问题于 2025 年 4 月 28 日公开。

影响:10.1.0-M1 至 10.1.39

重要:通过无效 HTTP 优先级头部进行拒绝服务攻击 CVE-2025-31650

对某些无效 HTTP 优先级头部的错误处理不当,导致失败请求的清理不完整,从而产生内存泄漏。大量此类请求可能触发 OutOfMemoryException,导致拒绝服务。

此问题已通过提交 cba1a0fe1eef1dc48cc3b8fb 修复。

此问题于 2025 年 4 月 28 日公开。

影响:10.1.10 至 10.1.39

2025-02-10 在 Apache Tomcat 10.1.35 中修复

重要:通过启用写入的 Default Servlet 进行远程代码执行和/或信息泄露和/或将恶意内容添加到上传文件 - CVE-2025-24813

部分 PUT 的原始实现使用了一个临时文件,该文件基于用户提供的文件名和路径,其中路径分隔符被替换为“.”。

如果以下所有条件都为真,则恶意用户能够查看安全敏感文件和/或向这些文件注入内容:

  • 默认 servlet 启用写入(默认为禁用)
  • 支持部分 PUT(默认为启用)
  • 安全敏感上传的目标 URL 是公共上传目标 URL 的子目录
  • 攻击者知晓正在上传的安全敏感文件的名称
  • 安全敏感文件也通过部分 PUT 上传

如果以下所有条件都为真,则恶意用户能够执行远程代码:

  • 默认 servlet 启用写入(默认为禁用)
  • 支持部分 PUT(默认为启用)
  • 应用程序使用 Tomcat 基于文件的会话持久化,且使用默认存储位置
  • 应用程序包含一个可能被反序列化攻击利用的库

此问题已通过提交 f6c01d65 修复。

此问题于 2025 年 3 月 10 日公开。

影响:10.1.0-M1 至 10.1.34

2024-12-09 在 Apache Tomcat 10.1.34 中修复

重要:通过启用写入的 Default Servlet 进行远程代码执行。CVE-2024-50379 的缓解措施不完整 - CVE-2024-56337

针对 CVE-2024-50379 的先前缓解措施不完整。除了升级到 10.1.34 或更高版本外,在不区分大小写的文件系统上运行 Tomcat 且默认 servlet 启用写入的用户可能需要根据所使用的 Java 版本进行额外配置:

  • 在 Java 11 上运行:系统属性 sun.io.useCanonCaches 必须显式设置为 false(它默认为 true
  • 在 Java 17 上运行:系统属性 sun.io.useCanonCaches,如果设置,必须设置为 false(它默认为 false
  • 在 Java 21 及更高版本上运行:无需进一步配置(系统属性和有问题的缓存已被移除)

此问题于 2024 年 12 月 20 日公开。

影响:10.1.0-M1 至 10.1.33

低:示例 Web 应用程序中的 DoS 漏洞 CVE-2024-54677

示例 Web 应用程序中的许多示例未对上传数据设置限制,这可能触发 OutOfMemoryError,导致拒绝服务。

此问题已通过提交 f57a9d98aa5b4d00e8c16cdbdbec9278d63a10af54e56495bbd82e95 修复。

此问题于 2024 年 12 月 17 日公开。

影响:10.1.0-M1 至 10.1.33

重要:通过启用写入的 Default Servlet 进行远程代码执行 CVE-2024-50379

如果默认 servlet 在不区分大小写的文件系统上启用了写入(readonly 初始化参数设置为非默认值 false),则在负载下对同一文件的并发读取和上传可能绕过 Tomcat 的大小写敏感性检查,并导致上传的文件被视为 JSP,从而导致远程代码执行。

此问题已通过提交 8554f6b105ddeeaa 修复。

此问题于 2024 年 12 月 17 日公开。

影响:10.1.0-M1 至 10.1.33

2024-11-11 在 Apache Tomcat 10.1.33 中修复

注意:以下问题已在 Apache Tomcat 10.1.32 中修复,但 10.1.32 候选版本的发布投票未通过。因此,尽管用户必须下载 10.1.33 才能获得包含这些问题修复的版本,但版本 10.1.32 不包含在受影响版本列表中。

重要:生成 JSP 中的 XSS 漏洞 CVE-2024-52318

对改进 69333 的修复导致池化的 JSP 标签在使用后未被释放,这反过来可能导致某些标签的输出未按预期进行转义。这种未转义的输出可能导致 XSS。

此问题已通过提交 be8e3214 修复。

此问题于 2024 年 11 月 18 日公开。

影响:10.1.31

2024-10-09 在 Apache Tomcat 10.1.31 中修复

重要:请求和/或响应混淆 CVE-2024-52317

HTTP/2 请求使用的请求和响应的回收不正确可能导致用户之间的请求和/或响应混淆。

此问题已通过提交 146f94f8 修复。

此问题由 Tomcat 安全团队于 2024 年 10 月 1 日发现。此问题于 2024 年 11 月 18 日公开。

影响:10.1.27 至 10.1.30

低:身份验证绕过 CVE-2024-52316

如果 Tomcat 配置为使用自定义的 Jakarta 身份验证(前身为 JASPIC)ServerAuthContext 组件,该组件在身份验证过程中可能抛出异常而未显式设置 HTTP 状态以指示失败,则身份验证可能不会失败,从而允许用户绕过身份验证过程。目前没有已知以这种方式运行的 Jakarta 身份验证组件。

此问题已通过提交 acc2f013 修复。

此问题由 Tomcat 安全团队于 2024 年 9 月 19 日发现。此问题于 2024 年 11 月 18 日公开。

影响:10.1.0-M1 至 10.1.30

2024-06-19 在 Apache Tomcat 10.1.25 中修复

重要:拒绝服务漏洞 CVE-2024-34750

在处理 HTTP/2 流时,Tomcat 未正确处理某些过多的 HTTP 头部情况。这导致了对活动 HTTP/2 流的错误计数,进而导致使用了不正确的无限超时,使得本应关闭的连接保持开放。

此问题已通过提交 2afae300 修复。

此问题于 2024 年 5 月 4 日报告给 Tomcat 安全团队。此问题于 2024 年 7 月 3 日公开。

影响:10.1.0-M1 至 10.1.24

重要:拒绝服务漏洞 CVE-2024-38286

在任何平台上,Tomcat 在某些配置下,允许攻击者通过滥用 TLS 握手过程导致 OutOfMemoryError。

此问题已通过提交 3344c17c 修复。

此问题于 2024 年 6 月 4 日报告给 Tomcat 安全团队。此问题于 2024 年 9 月 23 日公开。

影响:10.1.0-M1 至 10.1.24

2024-02-19 在 Apache Tomcat 10.1.19 中修复

重要:拒绝服务漏洞 CVE-2024-23672

WebSocket 客户端可能保持 WebSocket 连接开放,导致资源消耗增加。

此问题已通过提交 0052b374 修复。

此问题由 Tomcat 安全团队于 2024 年 1 月 17 日发现。此问题于 2024 年 3 月 13 日公开。

影响:10.1.0-M1 至 10.1.18

重要:拒绝服务漏洞 CVE-2024-24549

在处理 HTTP/2 请求时,如果请求超出了任何配置的头部限制,相关的 HTTP/2 流直到所有头部处理完毕后才会被重置。

此问题已通过提交 d07c8219 修复。

此问题于 2024 年 1 月 24 日报告给 Tomcat 安全团队。此问题于 2024 年 3 月 13 日公开。

影响:10.1.0-M1 至 10.1.18

2023-11-14 在 Apache Tomcat 10.1.16 中修复

重要:请求走私 CVE-2023-46589

Tomcat 未正确解析 HTTP trailer 头部。特制的、超过头部大小限制的 trailer 头部可能导致 Tomcat 将单个请求视为多个请求,从而在反向代理后出现请求走私的可能性。

此问题已通过提交 b5776d76 修复。

此问题于 2023 年 10 月 20 日报告给 Tomcat 安全团队。此问题于 2023 年 11 月 28 日公开。

影响:10.1.0-M1 至 10.1.15

2023-10-10 在 Apache Tomcat 10.1.14 中修复

重要:请求走私 CVE-2023-45648

Tomcat 未正确解析 HTTP trailer 头部。特制的、无效的 trailer 头部可能导致 Tomcat 将单个请求视为多个请求,从而在反向代理后出现请求走私的可能性。

此问题已通过提交 8ecff306 修复。

此问题于 2023 年 9 月 12 日报告给 Tomcat 安全团队。此问题于 2023 年 10 月 10 日公开。

影响:10.1.0-M1 至 10.1.13

重要:拒绝服务漏洞 CVE-2023-44487

Tomcat 的 HTTP/2 实现容易受到快速重置攻击。拒绝服务通常表现为 OutOfMemoryError

此问题已通过提交 76bb4bfb 修复。

此问题于 2023 年 9 月 14 日报告给 Tomcat 安全团队。此问题于 2023 年 10 月 10 日公开。

影响:10.1.0-M1 至 10.1.13

重要:信息泄露 CVE-2023-42795

在将各种内部对象(包括请求和响应)回收以供下一个请求/响应重用之前,错误可能导致 Tomcat 跳过回收过程的某些部分,从而导致信息从当前请求/响应泄漏到下一个请求/响应。

此问题已通过提交 9375d671 修复。

此问题由 Tomcat 安全团队于 2023 年 9 月 13 日发现。此问题于 2023 年 10 月 10 日公开。

影响:10.1.0-M1 至 10.1.13

2023-08-25 在 Apache Tomcat 10.1.13 中修复

中度:开放重定向 CVE-2023-41080

如果 ROOT(默认)Web 应用程序配置为使用 FORM 身份验证,则特制的 URL 可能被用于触发重定向到攻击者选择的 URL。

此问题已通过提交 bb4624a9 修复。

此问题于 2023 年 8 月 17 日报告给 Tomcat 安全团队。此问题于 2023 年 8 月 22 日公开。

影响:10.1.0-M1 至 10.1.12

2023-05-19 在 Apache Tomcat 10.1.9 中修复

重要:信息泄露 CVE-2023-34981

对缺陷 66512 的修复引入了一个回归,该回归已作为缺陷 66591 修复。该回归意味着,如果响应未设置任何 HTTP 头部,则不会发送 AJP SEND_HEADERS 消息,这进而意味着至少一个基于 AJP 的代理 (mod_proxy_ajp) 会使用前一个请求的响应头部作为当前请求的响应头部,从而导致信息泄露。

此问题已通过提交 f0742f47 修复。

此问题于 2023 年 5 月 24 日报告给 Tomcat 安全团队。此问题于 2023 年 6 月 21 日公开。

影响:10.1.8

2023-04-19 在 Apache Tomcat 10.1.8 中修复

中度:Apache Tomcat 拒绝服务漏洞 CVE-2023-28709

CVE-2023-24998 的修复不完整。如果使用了非默认的 HTTP 连接器设置,使得可以通过查询字符串参数达到 maxParameterCount,并且提交了一个在查询字符串中精确提供 maxParameterCount 参数的请求,则可以绕过上传请求部分的限制,从而可能发生拒绝服务。

此问题已通过提交 ba848da7 修复。

此问题于 2023 年 3 月 13 日报告给 Tomcat 安全团队。此问题于 2023 年 5 月 22 日公开。

影响:10.1.5 至 10.1.7

2023-02-24 在 Apache Tomcat 10.1.6 中修复

重要:Apache Tomcat 信息泄露 CVE-2023-28708

当使用 RemoteIpFilter 处理从反向代理通过 HTTP 接收到且包含 X-Forwarded-Proto 头部设置为 https 的请求时,Tomcat 创建的会话 cookie 不包含安全属性。这可能导致用户代理通过不安全通道传输会话 cookie。

此问题已通过提交 f509bbf3 修复。

66471 于 2023 年 2 月 8 日公开报告。Tomcat 安全团队于 2023 年 2 月 9 日发现了其安全影响。此问题于 2023 年 3 月 22 日公开。

影响:10.1.0-M1 至 10.1.5

2023-01-13 在 Apache Tomcat 10.1.5 中修复

重要:Apache Tomcat 拒绝服务漏洞 CVE-2023-24998

Apache Tomcat 使用 Apache Commons FileUpload 的一个重命名副本,以提供 Jakarta Servlet 规范中定义的文件上传功能。因此,Apache Tomcat 也容易受到 Apache Commons FileUpload 漏洞 CVE-2023-24998 的影响,因为对处理的请求部分数量没有限制。这导致攻击者可能通过恶意上传或一系列上传来触发拒绝服务 (DoS)。

此问题已通过提交 8a2285f1 修复。

此问题于 2022 年 12 月 11 日报告给 Apache Tomcat 安全团队。此问题于 2023 年 2 月 20 日公开。

影响:10.1.0-M1 至 10.1.4

2022-11-14 在 Apache Tomcat 10.1.2 中修复

低:Apache Tomcat JsonErrorReportValve 注入漏洞 CVE-2022-45143

JsonErrorReportValve 未对 typemessagedescription 值进行转义。在某些情况下,这些值由用户提供的数据构成,因此用户可能提供导致 JSON 输出失效或被操纵的值。

此问题已通过提交 6a0ac6a4 修复。

此问题由 Apache Tomcat 安全团队于 2022 年 9 月 2 日发现。此问题于 2023 年 1 月 3 日公开。

影响:10.1.0-M1 至 10.1.1

2022-10-11 在 Apache Tomcat 10.1.1 中修复

低:Apache Tomcat 请求走私 CVE-2022-42252

如果 Tomcat 配置为通过将 rejectIllegalHeader 设置为 false(非默认值)来忽略无效 HTTP 头部,则 Tomcat 不会拒绝包含无效 Content-Length 头部 的请求。如果 Tomcat 位于也未能拒绝该无效头部请求的反向代理之后,则可能导致请求走私攻击。

此问题已通过提交 c9fe754e 修复。

此问题于 2022 年 9 月 29 日报告给 Apache Tomcat 安全团队。此问题于 2022 年 10 月 31 日公开。

影响:10.1.0-M1 至 10.1.0

2022-10-10 在 Apache Tomcat 10.0.27 中修复

低:Apache Tomcat 请求走私 CVE-2022-42252

如果 Tomcat 配置为通过将 rejectIllegalHeader 设置为 false(非默认值)来忽略无效 HTTP 头部,则 Tomcat 不会拒绝包含无效 Content-Length 头部 的请求。如果 Tomcat 位于也未能拒绝该无效头部请求的反向代理之后,则可能导致请求走私攻击。

此问题已通过提交 0d089a15 修复。

此问题于 2022 年 9 月 29 日报告给 Apache Tomcat 安全团队。此问题于 2022 年 10 月 31 日公开。

影响:10.0.0-M1 至 10.0.26

2022-07-26 在 Apache Tomcat 10.0.23 中修复

低:示例 Web 应用程序中的 Apache Tomcat XSS 漏洞 CVE-2022-34305

示例 Web 应用程序中的表单身份验证示例在未过滤的情况下显示了用户提供的数据,从而暴露了 XSS 漏洞。

此问题已通过提交 1a7e95d9 修复。

此问题于 2022 年 6 月 22 日报告给 Apache Tomcat 安全团队。此问题于 2022 年 6 月 23 日公开。

影响:10.0.0-M1 至 10.0.22

2022-07-20 在 Apache Tomcat 10.1.0-M17 中修复

低:示例 Web 应用程序中的 Apache Tomcat XSS 漏洞 CVE-2022-34305

示例 Web 应用程序中的表单身份验证示例在未过滤的情况下显示了用户提供的数据,从而暴露了 XSS 漏洞。

此问题已通过提交 d6251d1c 修复。

此问题于 2022 年 6 月 22 日报告给 Apache Tomcat 安全团队。此问题于 2022 年 6 月 23 日公开。

影响:10.1.0-M1 至 10.1.0-M16

2022-05-06 在 Apache Tomcat 10.0.21 中修复

低:Apache Tomcat EncryptInterceptor DoS 漏洞 CVE-2022-29885

EncryptInterceptor 的文档错误地声明它允许 Tomcat 集群在不受信任的网络上运行。这是不正确的。虽然 EncryptInterceptor 确实提供了保密性和完整性保护,但它不能防御所有与在任何不受信任网络上运行相关的风险,特别是 DoS 风险。

此问题已通过提交 36826ea6 修复。

此问题由 4ra1n 于 2022 年 4 月 17 日报告给 Apache Tomcat 安全团队。此问题于 2022 年 5 月 10 日公开。

影响:10.0.0-M1 至 10.0.20

2022 年 5 月 16 日 在 Apache Tomcat 10.1.0-M15 中修复

低:Apache Tomcat EncryptInterceptor DoS 漏洞 CVE-2022-29885

EncryptInterceptor 的文档错误地声明它允许 Tomcat 集群在不受信任的网络上运行。这是不正确的。虽然 EncryptInterceptor 确实提供了保密性和完整性保护,但它不能防御所有与在任何不受信任网络上运行相关的风险,特别是 DoS 风险。

此问题已通过提交 0fa7721f 修复。

此问题由 4ra1n 于 2022 年 4 月 17 日报告给 Apache Tomcat 安全团队。此问题于 2022 年 5 月 10 日公开。

影响:10.1.0-M1 至 10.1.0-M14

2022 年 4 月 1 日 在 Apache Tomcat 10.0.20 中修复

注意:以下问题已在 Apache Tomcat 10.0.19 中修复,但 10.0.19 候选版本的发布投票未通过。因此,尽管用户必须下载 10.0.20 才能获得包含这些问题修复的版本,但版本 10.0.19 不包含在受影响版本列表中。

高:信息泄露 CVE-2021-43980

Tomcat 10 中引入并回溯到 Tomcat 9.0.47 及更高版本的阻塞读写简化实现,暴露了一个长期存在的(但极难触发的)并发错误。该错误可能导致客户端连接共享 Http11Processor 实例,从而导致响应或部分响应被错误的客户端接收。

此问题已通过提交 17f177ee 修复。

此问题由 Adam Thomas、Richard Hernandez 和 Ryan Schmitt 于 2021 年 11 月 11 日报告给 Apache Tomcat 安全团队。此问题于 2022 年 9 月 28 日公开。

影响:10.0.0-M1 至 10.0.18

2022 年 4 月 1 日 在 Apache Tomcat 10.1.0-M14 中修复

注意:以下问题已在 Apache Tomcat 10.1.0-M13 中修复,但 10.1.0-M13 候选版本的发布投票未通过。因此,尽管用户必须下载 10.1.0-M14 才能获得包含这些问题修复的版本,但版本 10.1.0-M13 不包含在受影响版本列表中。

高:信息泄露 CVE-2021-43980

Tomcat 10 中引入并回溯到 Tomcat 9.0.47 及更高版本的阻塞读写简化实现,暴露了一个长期存在的(但极难触发的)并发错误。该错误可能导致客户端连接共享 Http11Processor 实例,从而导致响应或部分响应被错误的客户端接收。

此问题已通过提交 9651b83a 修复。

此问题由 Adam Thomas、Richard Hernandez 和 Ryan Schmitt 于 2021 年 11 月 11 日报告给 Apache Tomcat 安全团队。此问题于 2022 年 9 月 28 日公开。

影响:10.1.0-M1 至 10.1.0-M12

2022 年 1 月 20 日 在 Apache Tomcat 10.0.16 中修复

注意:以下问题已在 Apache Tomcat 10.0.15 中修复,但 10.0.15 候选版本的发布投票未通过。因此,尽管用户必须下载 10.0.16 才能获得包含这些问题修复的版本,但版本 10.0.15 不包含在受影响版本列表中。

低:本地权限提升 CVE-2022-23181

对缺陷 CVE-2020-9484 的修复引入了一个“检查时/使用时 (TOCTOU)”漏洞,允许本地攻击者以 Tomcat 进程所使用的用户权限执行操作。此问题仅在 Tomcat 配置为使用 FileStore 持久化会话时可被利用。

此问题已通过提交 094800b1 修复。

此问题由 Viettel Cyber Security 的 Trung Pham 于 2021 年 12 月 10 日报告给 Apache Tomcat 安全团队。此问题于 2022 年 1 月 26 日公开。

影响:10.0.0-M5 至 10.0.14

2022 年 1 月 20 日 在 Apache Tomcat 10.1.0-M10 中修复

注意:以下问题已在 Apache Tomcat 10.1.0-M9 中修复,但 10.1.0-M9 候选版本的发布投票未通过。因此,尽管用户必须下载 10.1.0-M10 才能获得包含这些问题修复的版本,但版本 10.1.0-M9 不包含在受影响版本列表中。

低:本地权限提升 CVE-2022-23181

对缺陷 CVE-2020-9484 的修复引入了一个“检查时/使用时 (TOCTOU)”漏洞,允许本地攻击者以 Tomcat 进程所使用的用户权限执行操作。此问题仅在 Tomcat 配置为使用 FileStore 持久化会话时可被利用。

此问题已通过提交 70da1aaa 修复。

此问题由 Viettel Cyber Security 的 Trung Pham 于 2021 年 12 月 10 日报告给 Apache Tomcat 安全团队。此问题于 2022 年 1 月 26 日公开。

影响:10.1.0-M1 至 10.1.0-M8

2021 年 10 月 1 日 在 Apache Tomcat 10.0.12 中修复

重要:拒绝服务漏洞 CVE-2021-42340

对缺陷 63362 的修复引入了内存泄漏。为收集 HTTP 升级连接指标而引入的对象在 WebSocket 连接关闭后未被释放。这导致内存泄漏,随着时间的推移,可能通过 OutOfMemoryError 导致拒绝服务。

此问题已通过提交 31d62426 修复。

此内存泄漏问题于 2021 年 9 月 23 日通过用户邮件列表公开报告。Tomcat 安全团队于同日发现了其安全影响。此问题于 2021 年 10 月 14 日公开。

影响:10.0.0-M10 至 10.0.11

2021 年 10 月 1 日 在 Apache Tomcat 10.1.0-M6 中修复

重要:拒绝服务漏洞 CVE-2021-42340

对缺陷 63362 的修复引入了内存泄漏。为收集 HTTP 升级连接指标而引入的对象在 WebSocket 连接关闭后未被释放。这导致内存泄漏,随着时间的推移,可能通过 OutOfMemoryError 导致拒绝服务。

此问题已通过提交 d5a6660c 修复。

此内存泄漏问题于 2021 年 9 月 23 日通过用户邮件列表公开报告。Tomcat 安全团队于同日发现了其安全影响。此问题于 2021 年 10 月 14 日公开。

影响:10.1.0-M1 至 10.1.0-M5

2021 年 6 月 15 日 在 Apache Tomcat 10.0.7 中修复

重要:请求走私 CVE-2021-33037

Apache Tomcat 在某些情况下未正确解析 HTTP transfer-encoding 请求头部,导致在使用反向代理时可能出现请求走私。具体来说:如果客户端声明只接受 HTTP/1.0 响应,Tomcat 会错误地忽略 transfer-encoding 头部;Tomcat 遵守 identify 编码;并且 Tomcat 未能确保,如果存在 chunked 编码,它就是最终编码。

此问题已通过提交 eee0d024506134f919d11556 修复。

此问题由 NEU seclab 的 Bahruz Jabiyev、Steven Sprecher 和 Kaan Onarlioglu 于 2021 年 5 月 7 日报告给 Apache Tomcat 安全团队。此问题于 2021 年 7 月 12 日公开。

影响:10.0.0-M1 至 10.0.6

2021 年 5 月 12 日 在 Apache Tomcat 10.0.6 中修复

低:身份验证弱点 CVE-2021-30640

JNDI Realm 执行的查询并非总能正确转义参数。参数值可能来源于用户提供的数据(例如用户名)以及管理员提供的配置数据。在有限的情况下,用户可能能够使用其用户名的变体进行身份验证,和/或绕过 LockOut Realm 提供的一些保护。

此问题已通过提交 f4d9bdef4e61e1d6d5303a50b930d0b317208c64bd4d1fbe81f16b0aeeb73512 修复。

此问题已作为 65224 公开报告。

影响:10.0.0-M1 至 10.0.5

2021 年 4 月 6 日 在 Apache Tomcat 10.0.5 中修复

重要:拒绝服务漏洞 CVE-2021-30639

作为改进非阻塞 I/O 期间错误处理的更改的一部分,引入了一个错误,导致与 Request 对象关联的错误标志在请求之间未被重置。这意味着一旦发生非阻塞 I/O 错误,由该请求对象处理的所有未来请求都将失败。用户能够触发非阻塞 I/O 错误,例如通过断开连接,从而可能触发拒绝服务。

不使用非阻塞 I/O 的应用程序不受此漏洞影响。

此问题已通过提交 b59099e4 修复。

此问题已作为 65203 公开报告。

影响:10.0.3 至 10.0.4

2021 年 3 月 10 日 在 Apache Tomcat 10.0.4 中修复

注意:以下问题已在 Apache Tomcat 10.0.3 中修复,但 10.0.3 候选版本的发布投票未通过。因此,尽管用户必须下载 10.0.4 才能获得包含这些问题修复的版本,但版本 10.0.3 不包含在受影响版本列表中。

重要:拒绝服务漏洞 CVE-2021-41079

当 Tomcat 配置为将 NIO+OpenSSL 或 NIO2+OpenSSL 用于 TLS 时,特制的数据包可能被用于触发无限循环,导致拒绝服务。

此问题已通过提交 34115fb3 修复。

此问题最初由 Thomas Wozenilek 于 2021 年 2 月 26 日报告给 Apache Tomcat 安全团队,但未能确认。一个推测性修复已于 2021 年 3 月 3 日应用。2021 年 9 月 14 日,Infinite Campus 的 David Frankson 独立报告了此问题并提供了测试用例。这使得问题和推测性修复都得到了验证。此问题于 2021 年 9 月 15 日公开。

影响:10.0.0-M1 至 10.0.2

2021 年 2 月 2 日 在 Apache Tomcat 10.0.2 中修复

注意:以下问题已在 Apache Tomcat 10.0.1 中修复,但 10.0.1 候选版本的发布投票未通过。因此,尽管用户必须下载 10.0.2 才能获得包含这些问题修复的版本,但版本 10.0.1 不包含在受影响版本列表中。

低:对 CVE-2020-9484 的修复不完整 CVE-2021-25329

CVE-2020-9484 的修复不完整。在使用极不可能的配置边缘情况下,Tomcat 实例仍然容易受到 CVE-2020-9484 的影响。请注意,此前发布的 CVE-2020-9484 的先决条件以及此前发布的非升级缓解措施也适用于此问题。

此问题已通过提交 6d66e99e 修复。

此问题由 Viettel Cyber Security 的 Trung Pham 于 2021 年 1 月 12 日报告给 Apache Tomcat 安全团队。此问题于 2021 年 3 月 1 日公开。

影响:10.0.0-M1 至 10.0.0

重要:h2c 请求混淆 CVE-2021-25122

在响应新的 h2c 连接请求时,Apache Tomcat 可能将一个请求的请求头部和少量请求体复制到另一个请求,这意味着用户 A 和用户 B 都可能看到用户 A 请求的结果。

此问题已通过提交 dd757c0a 修复。

此问题由 Apache Tomcat 安全团队于 2021 年 1 月 11 日发现。此问题于 2021 年 3 月 1 日公开。

影响:10.0.0-M1 至 10.0.0

2020 年 11 月 17 日 在 Apache Tomcat 10.0.0-M10 中修复

重要:信息泄露 CVE-2021-24122

当从使用 NTFS 文件系统的网络位置提供资源时,在某些配置中可能绕过安全约束和/或查看 JSP 的源代码。根本原因是 JRE API File.getCanonicalPath() 的意外行为,这又是由 Windows API (FindFirstFileW) 在某些情况下不一致的行为引起的。

此问题已通过提交 7f004ac4 修复。

此问题由 Ilja Brander 于 2020 年 10 月 26 日报告给 Apache Tomcat 安全团队。此问题于 2021 年 1 月 14 日公开。

影响:10.0.0-M1 至 10.0.0-M9

中度:HTTP/2 请求头部混淆 CVE-2020-17527

在调查问题 64830 时发现,Apache Tomcat 可能将 HTTP/2 连接上接收到的前一个流的 HTTP 请求头部值重用于后续流相关的请求。尽管这很可能导致错误并关闭 HTTP/2 连接,但仍可能导致请求之间信息泄露。

此问题已通过提交 8d2fe689 修复。

此问题由 Apache Tomcat 安全团队于 2020 年 11 月 10 日发现。此问题于 2020 年 12 月 3 日公开。

影响:10.0.0-M1 至 10.0.0-M9

2020 年 9 月 14 日 在 Apache Tomcat 10.0.0-M8 中修复

中度:HTTP/2 请求混淆 CVE-2020-13943

如果 HTTP/2 客户端超出了连接允许的最大并发流数量(违反 HTTP/2 协议),则在该连接上发出的后续请求可能包含来自先前请求的 HTTP 头部(包括 HTTP/2 伪头部),而非预期的头部。这可能导致用户看到非预期资源的响应。

此问题已通过提交 1bbc650c 修复。

此问题由 Apache Tomcat 安全团队于 2020 年 7 月 23 日发现。此问题于 2020 年 10 月 12 日公开。

影响:10.0.0-M1 至 10.0.0-M7

2020 年 7 月 5 日 在 Apache Tomcat 10.0.0-M7 中修复

重要:WebSocket DoS 漏洞 CVE-2020-13935

WebSocket 帧中的负载长度未正确验证。无效的负载长度可能触发无限循环。多个带有无效负载长度的请求可能导致拒绝服务。

此问题已通过提交 1c1c77b0 修复。

此问题于 2020 年 6 月 28 日通过 Apache Bugzilla 实例公开报告,其中提及 CPU 使用率高,但未具体提及拒绝服务。Apache Tomcat 安全团队于同日发现了相关的 DoS 风险。此问题于 2020 年 7 月 14 日公开。

影响:10.0.0-M1 至 10.0.0-M6

中度:HTTP/2 DoS 漏洞 CVE-2020-13934

h2c 直接连接在升级到 HTTP/2 后未释放 HTTP/1.1 处理器。如果发出足够数量的此类请求,可能发生 OutOfMemoryException,导致拒绝服务。

此问题已通过提交 c9167ae3 修复。

此问题于 2020 年 6 月 22 日通过 Apache Tomcat 用户邮件列表公开报告,但未提及潜在的 DoS 风险。经过进一步讨论以确定重现该问题的必要步骤后,Apache Tomcat 安全团队于 2020 年 6 月 26 日发现了该问题的根本原因和相关的 DoS 风险。此问题于 2020 年 7 月 14 日公开。

影响:10.0.0-M1 至 10.0.0-M6

2020 年 6 月 7 日 在 Apache Tomcat 10.0.0-M6 中修复

重要:HTTP/2 DoS 漏洞 CVE-2020-11996

特制的一系列 HTTP/2 请求可能导致 CPU 使用率在数秒内居高不下。如果并发的 HTTP/2 连接上发出足够数量的此类请求,服务器可能变得无响应。

此问题已通过提交 9434a44d 修复。

此问题于 2020 年 5 月 21 日通过 Apache Tomcat 用户邮件列表公开报告,但未提及潜在的 DoS 风险。Apache Tomcat 安全团队于同日发现了其 DoS 风险。此问题于 2020 年 6 月 25 日公开。

影响:10.0.0-M1 至 10.0.0-M5

2020 年 5 月 11 日 在 Apache Tomcat 10.0.0-M5 中修复

重要:通过会话持久化进行远程代码执行 CVE-2020-9484

如果

  • 攻击者能够控制服务器上文件的内容和名称;并且
  • 服务器配置为使用带有 FileStorePersistenceManager;并且
  • PersistenceManager 配置了 sessionAttributeValueClassNameFilter="null"(除非使用 SecurityManager,否则为默认值)或一个足够宽松的过滤器,以允许攻击者提供的对象被反序列化;并且
  • 攻击者知道从 FileStore 使用的存储位置到攻击者控制的文件的相对文件路径;

那么,使用特制请求,攻击者将能够通过反序列化其控制下的文件来触发远程代码执行。

注意:上述所有条件都必须为真,攻击才能成功。

作为升级到 10.0.0-M5 或更高版本的替代方案,用户可以为 PersistenceManager 配置一个适当的 sessionAttributeValueClassNameFilter 值,以确保只有应用程序提供的属性才会被序列化和反序列化。

此问题已通过提交 bb33048e 修复。

此问题由 pdd 安全研究的 jarvis threedr3am 于 2020 年 4 月 12 日报告给 Apache Tomcat 安全团队。此问题于 2020 年 5 月 20 日公开。

影响:10.0.0-M1 至 10.0.0-M4

非 Tomcat 漏洞

严重:通过 log4j 进行远程代码执行 CVE-2021-44228

Apache Tomcat 10.x 不依赖任何版本的 log4j。

部署在 Apache Tomcat 上的 Web 应用程序可能依赖于 log4j。在这种情况下,您应该寻求应用程序供应商的支持。

可以将 Apache Tomcat 10.x 配置为使用 log4j 2.x 进行 Tomcat 的内部日志记录。这需要显式配置并添加 log4j 2.x 库。任何将 Tomcat 内部日志记录切换到 log4j 2.x 的用户都可能需要解决此漏洞。

在大多数情况下,禁用有问题的功能将是最简单的解决方案。具体操作取决于所使用的 log4j 2.x 的确切版本。log4j 2.x 安全页面提供了详细信息。