内容

Apache Tomcat 5.x 漏洞

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

注意:非 Tomcat 漏洞但被错误报告为 Tomcat 漏洞或 Tomcat 提供了解决方法的情况,列在本页末尾。

请注意,Tomcat 5.0.x 和 5.5.x 不再受支持。5.0.x 和 5.5.x 分支中的进一步漏洞将不会被修复。用户应升级到 8.5.x 或更高版本以获取安全修复。Tomcat 5.5.26 及更高版本中修复的漏洞尚未评估以确定它们是否存在于 5.0.x 分支中。

请注意,从不提供二进制补丁。如果您需要应用源代码补丁,请使用您正在使用的 Apache Tomcat 版本的构建说明。对于 Tomcat 5.5,这些说明在文档(二进制发行版的 webapps/tomcat-docs 子目录)中的building.html 和源代码发行版中的 BUILDING.txt 文件中。

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

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

目录

发布于 2012 年 10 月 10 日 在 Apache Tomcat 5.5.36 中修复

中等:DIGEST 身份验证弱点 CVE-2012-3439

Tomcat 的 DIGEST 身份验证实现在识别和解决后发现存在三个弱点:

  1. Tomcat 跟踪客户端而非服务器的 nonces 和 nonce 计数。
  2. 当存在会话 ID 时,身份验证被绕过。
  3. 在指示 nonce 过期之前,未检查用户名和密码。

这些问题降低了 DIGEST 身份验证的安全性,导致在某些情况下可能发生重放攻击。

这在修订版 1392248 中修复。

第一个问题由 Tilmann Kuhn 于 2012 年 7 月 19 日报告给 Tomcat 安全团队。第二个和第三个问题是 Tomcat 安全团队在后续代码审查中发现的。所有这三个问题于 2012 年 11 月 5 日公开。

影响:5.5.0-5.5.35

发布于 2012 年 1 月 16 日 在 Apache Tomcat 5.5.35 中修复

重要:拒绝服务 CVE-2012-0022

对近期哈希冲突漏洞的分析发现了 Apache Tomcat 在处理大量参数和参数值时存在无关的低效率问题。这些低效率问题可能允许攻击者通过特制请求,导致大量 CPU 使用,从而造成拒绝服务。该问题已通过修改 Tomcat 参数处理代码来高效处理大量参数和参数值来解决。

这在修订版 122128212246401228191 中修复。

该问题由 Tomcat 安全团队于 2011 年 10 月 21 日发现,并于 2012 年 1 月 17 日公开。

影响:5.5.0-5.5.34

发布于 2011 年 9 月 22 日 在 Apache Tomcat 5.5.34 中修复

中等:HTTP DIGEST 身份验证中的多个弱点 CVE-2011-1184

注意:Mitre 选择将此问题分解为多个问题,并为其中部分问题分配了以下附加引用:CVE-2011-5062CVE-2011-5063CVE-2011-5064。Apache Tomcat 安全团队将继续使用引用 CVE-2011-1184 将其视为一个单一问题。

HTTP DIGEST 身份验证的实现被发现存在多个弱点:

  • 允许重放攻击
  • 未检查服务器 nonces
  • 未检查客户端 nonce 计数
  • 未检查 qop 值
  • 未检查 realm 值
  • 服务器秘密硬编码为一个已知字符串

这些弱点导致 DIGEST 身份验证的安全性仅与 BASIC 身份验证相同。

这在 修订版 1159309 中修复。

该问题由 Tomcat 安全团队于 2011 年 3 月 16 日发现,并于 2011 年 9 月 26 日公开。

影响:5.5.0-5.5.33

低:信息泄露 CVE-2011-2204

当使用 MemoryUserDatabase(基于 tomcat-users.xml)并通过 JMX 创建用户时,用户创建过程中的异常可能会在 JMX 客户端中触发包含用户密码的错误消息。此错误消息也会写入 Tomcat 日志。用户密码对具有 JMX 访问权限和/或对 tomcat-users.xml 文件具有读取权限的管理员可见。不具备这些权限但能够读取日志文件的用户可能能够发现用户密码。

这在 修订版 1140072 中修复。

该问题由 Polina Genova 于 2011 年 6 月 14 日发现,并于 2011 年 6 月 27 日公开。

影响:5.5.0-5.5.33

低:信息泄露 CVE-2011-2526

Tomcat 支持使用 HTTP APR 连接器的 sendfile 功能。sendfile 会自动用于通过 DefaultServlet 提供的内容,并且部署的 Web 应用程序可以通过设置请求属性直接使用它。这些请求属性未经过验证。在安全管理器下运行时,这种缺乏验证的情况允许恶意 Web 应用程序执行以下一项或多项通常会被安全管理器阻止的操作:

  • 向安全管理器应阻止访问的用户返回文件
  • 终止(通过崩溃)JVM

此外,这些漏洞仅在满足以下所有条件时发生:

  • 正在使用不受信任的 Web 应用程序
  • 使用 SecurityManager 限制不受信任的 Web 应用程序
  • 使用 HTTP APR 连接器
  • 为连接器启用了 sendfile(这是默认设置)

这在 修订版 1158244 中修复。

该问题由 Tomcat 安全团队于 2011 年 7 月 7 日发现,并于 2011 年 7 月 13 日公开。

影响:5.5.0-5.5.33

重要:信息泄露 CVE-2011-2729

由于 capabilities 代码中的一个 bug,jsvc(Commons Daemon 项目的一部分,用于 Linux 的服务包装器)不会放弃 capabilities,从而允许应用程序访问超级用户拥有的文件和目录。此漏洞仅在满足以下所有条件时发生:

  • Tomcat 运行在 Linux 操作系统上
  • jsvc 使用 libcap 编译
  • 使用了 -user 参数

受影响的 Tomcat 版本附带的 jsvc 源文件中包含此漏洞。

这在 修订版 1159346 中修复。

该问题由 Wilfried Weissmann 于 2011 年 7 月 20 日发现,并于 2011 年 8 月 12 日公开。

影响:5.5.32-5.5.33

重要:身份验证绕过和信息泄露 CVE-2011-3190

Apache Tomcat 支持 AJP 协议,该协议用于反向代理,将请求和请求相关数据从反向代理传递到 Tomcat。AJP 协议的设计使得当请求包含请求体时,会向 Tomcat 发送一个非请求的 AJP 消息,其中包含请求体的第一部分(或可能全部)。在某些情况下,Tomcat 没有将此消息作为请求体处理,而是将其作为新请求处理。这允许攻击者完全控制 AJP 消息,从而实现身份验证绕过和信息泄露。此漏洞仅在满足以下所有条件时发生:

  • 未使用 org.apache.jk.server.JkCoyoteHandler AJP 连接器
  • 接受 POST 请求
  • 未处理请求体

这在 修订版 1162960 中修复。

该问题于 2011 年 8 月 20 日公开报告。

影响:5.5.0-5.5.33

缓解选项

  • 升级到 Tomcat 5.5.34。
  • 应用适当的补丁
  • 配置 Tomcat 和反向代理以使用共享密钥。
    (这是 AJP <Connector> 中的“request.secret”属性,mod_jk 的“worker.workername.secret”指令。mod_proxy_ajp 模块目前不支持共享密钥)。
  • 使用 org.apache.jk.server.JkCoyoteHandler (BIO) AJP 连接器实现。
    (如果您没有安装 Tomcat-Native 库,它会自动被选中。也可以显式选中:<Connector protocol="org.apache.jk.server.JkCoyoteHandler">)。

参考资料

发布于 2011 年 2 月 1 日 在 Apache Tomcat 5.5.32 中修复

低:跨站脚本 CVE-2011-0013

HTML Manager 接口在未过滤的情况下显示 Web 应用程序提供的数据,例如显示名称。恶意 Web 应用程序可能在管理员用户查看管理器页面时触发脚本执行。

这在 修订版 1057518 中修复。

该问题由 Tomcat 安全团队于 2010 年 11 月 12 日发现,并于 2011 年 2 月 5 日公开。

影响:5.5.0-5.5.31

发布于 2010 年 7 月 9 日 在 Apache Tomcat 5.5.30 中修复

低:SecurityManager 文件权限绕过 CVE-2010-3718

在 SecurityManager 下运行时,对文件系统的访问受到限制,但 Web 应用程序被授予对工作目录的读/写权限。此目录用于各种临时文件,例如将 JSP 编译为 Servlet 时生成的中间文件。工作目录的位置由 ServletContect 属性指定,该属性应为 Web 应用程序的只读属性。然而,由于编码错误,未应用只读设置。因此,恶意 Web 应用程序可能会在 Tomcat 应用文件权限之前修改该属性。这可用于授予对文件系统上任何区域的读/写权限,然后恶意 Web 应用程序可能会利用这些权限。此漏洞仅适用于托管来自不受信任来源(例如共享托管环境)的 Web 应用程序的情况。

这在 修订版 1027610 中修复。

该问题由 Tomcat 安全团队于 2010 年 10 月 12 日发现,并于 2011 年 2 月 5 日公开。

影响:5.5.0-5.5.29

重要:远程拒绝服务和信息泄露漏洞 CVE-2010-2227

在处理“Transfer-Encoding”头时发现了一些缺陷,这些缺陷阻止了缓冲区的回收。远程攻击者可以触发此缺陷,导致后续请求失败和/或信息在请求之间泄露。如果 Tomcat 位于反向代理(例如 Apache httpd 2.2)之后,此缺陷会得到缓解,因为代理应拒绝无效的传输编码头。

这在 修订版 959428 中修复。

该问题于 2010 年 6 月 14 日首次报告给 Tomcat 安全团队,并于 2010 年 7 月 9 日公开。

影响:5.5.0-5.5.29

低:身份验证头中的信息泄露 CVE-2010-1157

用于 BASIC 和 DIGEST 身份验证的 WWW-Authenticate HTTP 头包含一个 realm 名称。如果应用程序在 web.xml 中指定了 <realm-name> 元素,它将被使用。但是,如果未指定 <realm-name>,Tomcat 将使用代码片段 request.getServerName() + ":" + request.getServerPort() 生成 realm 名称。在某些情况下,这可能会暴露运行 Tomcat 的机器的本地主机名或 IP 地址。

这在 修订版 936541 中修复。

该问题于 2009 年 12 月 31 日首次报告给 Tomcat 安全团队,并于 2010 年 4 月 21 日公开。

影响:5.5.0-5.5.29

发布于 2010 年 4 月 20 日 在 Apache Tomcat 5.5.29 中修复

低:部署时任意文件删除和/或更改 CVE-2009-2693

部署 WAR 文件时,未检查 WAR 文件是否存在目录遍历尝试。这允许攻击者通过在 WAR 中包含诸如 ../../bin/catalina.sh 之类的条目来创建 Web 根目录之外的任意内容。

这在 修订版 902650 中修复。

该问题于 2009 年 7 月 30 日首次报告给 Tomcat 安全团队,并于 2010 年 3 月 1 日公开。

影响:5.5.0-5.5.28

低:卸载失败后的不安全部分部署 CVE-2009-2901

默认情况下,Tomcat 会自动部署放置在主机 appBase 中的任何目录。此行为由主机的 autoDeploy 属性控制,该属性默认为 true。卸载失败后,剩余文件将因自动部署过程而部署。根据具体情况,通常受一个或多个安全约束保护的文件可能会在没有这些安全约束的情况下部署,从而无需身份验证即可访问它们。此问题仅影响 Windows 平台。

这在 修订版 902650 中修复。

该问题于 2009 年 7 月 30 日首次报告给 Tomcat 安全团队,并于 2010 年 3 月 1 日公开。

影响:5.5.0-5.5.28(仅限 Windows)

低:工作目录中的意外文件删除 CVE-2009-2902

部署 WAR 文件时,未检查 WAR 文件名是否存在目录遍历尝试。例如,部署和卸载 ...war 允许攻击者导致删除主机工作目录的当前内容,这可能会给当前正在运行的应用程序带来问题。

这在 修订版 902650 中修复。

该问题于 2009 年 7 月 30 日首次报告给 Tomcat 安全团队,并于 2010 年 3 月 1 日公开。

影响:5.5.0-5.5.28

低:不安全的默认密码 CVE-2009-3548

Windows 安装程序默认为管理员用户设置空密码。如果在安装过程中未更改此设置,则默认情况下会创建一个名为 admin、角色为 admin 和 manager 且密码为空的用户。

影响:5.5.0-5.5.28

该问题于 2009 年 10 月 26 日首次报告给 Tomcat 安全团队,并于 2009 年 11 月 9 日公开。

这在 修订版 919006 中修复。

发布于 2009 年 9 月 4 日 在 Apache Tomcat 5.5.28 中修复

重要:信息泄露 CVE-2008-5515

当使用从请求中获取的 RequestDispatcher 时,目标路径在查询字符串被删除之前被规范化。包含特制请求参数的请求可用于访问本应受安全约束或位于 WEB-INF 目录下的内容。

这在修订版 782757783291 中修复。

该问题于 2008 年 12 月 11 日首次报告给 Tomcat 安全团队,并于 2009 年 6 月 8 日公开。

影响:5.5.0-5.5.27

重要:拒绝服务 CVE-2009-0033

如果 Tomcat 通过 Java AJP 连接器收到带有无效头的请求,它不会返回错误,而是关闭 AJP 连接。如果此连接器是 mod_jk 负载平衡工作器的成员,则此成员将进入错误状态,并被阻止使用大约一分钟。因此,此行为可用于使用精心制作的请求进行拒绝服务攻击。

这在 修订版 781362 中修复。

该问题于 2009 年 1 月 26 日首次报告给 Tomcat 安全团队,并于 2009 年 6 月 3 日公开。

影响:5.5.0-5.5.27

低:信息泄露 CVE-2009-0580

由于某些身份验证类中错误检查不足,Tomcat 允许通过提供非法 URL 编码密码来枚举(暴力测试)用户名。如果使用基于 FORM 的身份验证 (j_security_check) 和 MemoryRealm,则此攻击是可能的。请注意,在早期版本中,DataSourceRealm 和 JDBCRealm 也受到影响。

这在 修订版 781379 中修复。

该问题于 2009 年 2 月 25 日首次报告给 Tomcat 安全团队,并于 2009 年 6 月 3 日公开。

影响:5.5.0-5.5.27 (Memory Realm),5.5.0-5.5.5 (DataSource and JDBC Realms)

低:跨站脚本 CVE-2009-0781

示例 Web 应用程序中的日历应用程序由于 HTML 无效而存在 XSS 漏洞,这使得 XSS 过滤保护无效。

这在 修订版 750928 中修复。

该问题于 2009 年 3 月 5 日首次报告给 Tomcat 安全团队,并于 2009 年 3 月 6 日公开。

影响:5.5.0-5.5.27

低:信息泄露 CVE-2009-0783

Bug 2993645933 允许 Web 应用程序替换 Tomcat 用于处理 web.xml、context.xml 和 tld 文件的 XML 解析器。在有限的情况下,这些错误可能允许恶意 Web 应用程序查看和/或更改部署在 Tomcat 实例上的其他 Web 应用程序的 web.xml、context.xml 和 tld 文件。

这在修订版 681156781542 中修复。

该问题于 2009 年 3 月 2 日首次报告给 Tomcat 安全团队,并于 2009 年 6 月 4 日公开。

影响:5.5.0-5.5.27

发布于 2008 年 9 月 8 日 在 Apache Tomcat 5.5.27 中修复

低:跨站脚本 CVE-2008-1232

HttpServletResponse.sendError() 调用的 message 参数不仅显示在错误页面上,还用作 HTTP 响应的 reason-phrase。这可能包含在 HTTP 头中非法的字符。特制消息可能导致任意内容被注入到 HTTP 响应中。要成功进行 XSS 攻击,未经过滤的用户提供数据必须包含在 message 参数中。

这在 修订版 680947 中修复。

该问题于 2008 年 1 月 24 日首次报告给 Tomcat 安全团队,并于 2008 年 8 月 1 日公开。

影响:5.5.0-5.5.26

低:跨站脚本 CVE-2008-1947

Host Manager Web 应用程序在将用户提供的数据包含到输出中之前未进行转义。这导致了 XSS 攻击。此应用程序现在在使用数据之前对其进行过滤。此问题可通过在管理任务完成后注销(关闭浏览器)应用程序来缓解。

这在 修订版 662583 中修复。

该问题于 2008 年 5 月 15 日首次报告给 Tomcat 安全团队,并于 2008 年 5 月 28 日公开。

影响:5.5.9-5.5.26

重要:信息泄露 CVE-2008-2370

当使用 RequestDispatcher 时,目标路径在查询字符串被删除之前被规范化。包含特制请求参数的请求可用于访问本应受安全约束或位于 WEB-INF 目录下的内容。

这在 修订版 680949 中修复。

该问题于 2008 年 6 月 13 日首次报告给 Tomcat 安全团队,并于 2008 年 8 月 1 日公开。

影响:5.5.0-5.5.26

发布于 2008 年 2 月 5 日 在 Apache Tomcat 5.5.26 中修复

低:会话劫持 CVE-2007-5333

先前针对 CVE-2007-3385 的修复不完整。它没有考虑在 cookie 值中使用引号或 %5C。

影响:5.5.0-5.5.25

低:权限提升 CVE-2007-5342

JULI 日志组件允许 Web 应用程序提供自己的日志配置。默认安全策略不限制此配置,并允许不受信任的 Web 应用程序在 Tomcat 进程具有必要文件权限的情况下添加文件或覆盖现有文件。

影响:5.5.9-5.5.25

重要:信息泄露 CVE-2007-5461

当 Tomcat 的 WebDAV servlet 被配置用于上下文并已启用写入时,某些指定带有 SYSTEM 标签的实体的 WebDAV 请求可能导致任意文件内容返回给客户端。

影响:5.5.0-5.5.25

重要:数据完整性 CVE-2007-6286

当使用原生(基于 APR)连接器时,通过 netcat 连接到 SSL 端口然后不发送任何数据就断开连接将导致 tomcat 处理一个最近请求的重复副本。

影响:5.5.11-5.5.25

发布于 2007 年 9 月 8 日 在 Apache Tomcat 5.5.25, 5.0.SVN 中修复

低:跨站脚本 CVE-2007-2449

示例 Web 应用程序中的 JSP 在将用户提供的数据包含到输出中之前未进行转义。这导致了 XSS 攻击。这些 JSP 现在在使用数据之前对其进行过滤。此问题可通过卸载示例 Web 应用程序来缓解。请注意,不建议在生产系统上安装示例 Web 应用程序。

影响:5.0.0-5.0.30, 5.5.0-5.5.24

低:跨站脚本 CVE-2007-2450

Manager 和 Host Manager Web 应用程序在将用户提供的数据包含到输出中之前未进行转义。这导致了 XSS 攻击。这些应用程序现在在使用数据之前对其进行过滤。此问题可通过在管理任务完成后注销(关闭浏览器)应用程序来缓解。

影响:5.0.0-5.0.30, 5.5.0-5.5.24

低:会话劫持 CVE-2007-3382

Tomcat 错误地将 cookie 值中的单引号字符 (') 视为分隔符。在某些情况下,这导致会话 ID 等信息泄露给攻击者。

影响:5.0.0-5.0.30, 5.5.0-5.5.24

低:会话劫持 CVE-2007-3385

Tomcat 错误地处理了 cookie 值中的字符序列 \"。在某些情况下,这导致会话 ID 等信息泄露给攻击者。

影响:5.0.0-5.0.30, 5.5.0-5.5.24

低:跨站脚本 CVE-2007-3386

Host Manager Servlet 在显示用户提供的数据之前未进行过滤。这导致了 XSS 攻击。

影响:5.5.0-5.5.24

未发布 在 Apache Tomcat 5.5.24, 5.0.SVN 中修复

中等:跨站脚本 CVE-2007-1355

Tomcat 文档 Web 应用程序中示例应用程序中包含的 JSP 和 Servlet 在将用户提供的数据包含到输出中之前未进行转义。这导致了 XSS 攻击。这些页面已简化,不再在输出中使用任何用户提供的数据。

影响:5.0.0-5.0.30, 5.5.0-5.5.23

发布于 2007 年 3 月 9 日 在 Apache Tomcat 5.5.23, 5.0.SVN 中修复

重要:信息泄露 CVE-2005-2090

具有多个 content-length 头的请求应被拒绝为无效。当多个组件(防火墙、缓存、代理和 Tomcat)处理一系列请求,其中一个或多个请求包含多个 content-length 头,并且几个组件不拒绝请求并对使用哪个 content-length 头做出不同决定时,攻击者可以毒害 Web 缓存,执行 XSS 攻击并从除其自身请求之外的请求中获取敏感信息。Tomcat 现在对具有多个 content-length 头的请求返回 400。

影响:5.0.0-5.0.30, 5.5.0-5.5.22

未发布 在 Apache Tomcat 5.5.22, 5.0.SVN 中修复

重要:目录遍历 CVE-2007-0450

此问题的修复不足。还需要在 httpd 的 JK 连接器模块中进行修复。有关更多信息,请参阅CVE-2007-1860

Tomcat 允许将 '\'、'%2F' 和 '%5C' 作为路径分隔符。当 Tomcat 在代理(包括但不限于带有 mod_proxy 和 mod_jk 的 Apache HTTP 服务器)后面使用时,并且代理配置为仅代理某些上下文,则包含类似“/\../”字符串的 HTTP 请求可能允许攻击者绕过代理的上下文限制,并访问未代理的上下文。

Tomcat 中已添加以下 Java 系统属性,以提供对 URL 中路径分隔符处理的额外控制(两个选项默认为 false):

  • org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH: true|false
  • org.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH: true|false

由于无法保证所有 URL 在 Tomcat 中的处理方式与在代理服务器中相同,因此 Tomcat 应始终像没有使用限制上下文访问的代理一样进行安全保护。

影响:5.0.0-5.0.30, 5.5.0-5.5.21

未发布 在 Apache Tomcat 5.5.21, 5.0.SVN 中修复

低:跨站脚本 CVE-2007-1358

显示客户端发送的 Accept-Language 头值的网页,如果它们假设 Accept-Language 头值符合 RFC 2616,则容易受到跨站脚本攻击。在正常情况下,这不可能被利用,但是旧版本的 Flash 播放器已知允许精心制作的恶意 Flash 文件发出带有此类自定义头的请求。在为 getLocale()getLocales() 生成响应时,Tomcat 现在忽略不符合 RFC 2616 的 Accept-Language 头值。直接使用原始头值的应用程序不应假设这些头符合 RFC 2616,并且应适当地过滤这些值。

影响:5.0.0-5.0.30, 5.5.0-5.5.20

未发布 在 Apache Tomcat 5.5.21 中修复

中等:会话劫持 CVE-2008-0128

当通过 HTTPS 使用 SingleSignOn Valve 时,Cookie JSESSIONIDSSO 在没有“secure”属性的情况下传输,导致它被传输到从同一服务器通过 HTTP 请求的任何内容(无论是出于目的还是错误)。

影响:5.0.0-5.0.SVN, 5.5.0-5.5.20

低:信息泄露 CVE-2008-4308

Bug 40771 可能导致泄露先前请求的 POST 内容。要存在漏洞,必须在发生 ArrayIndexOutOfBoundsException 之前(这将停止请求处理)披露从输入流读取的内容,例如通过将其写入响应并提交响应。

影响:5.5.10-5.5.20 (5.0.x 未知)

未发布 在 Apache Tomcat 5.5.18, 5.0.SVN 中修复

中等:跨站脚本 CVE-2006-7195

示例 Web 应用程序中的 implicit-objects.jsp 显示了许多未过滤的头值。这导致了 XSS 攻击。现在这些值已被过滤。

影响:5.0.0-5.0.30, 5.5.0-5.5.17

发布于 2006 年 4 月 27 日 在 Apache Tomcat 5.5.17, 5.0.SVN 中修复

重要:信息泄露 CVE-2007-1858

默认的 SSL 配置允许使用不安全的密码套件,包括匿名密码套件。默认配置不再允许使用不安全的密码套件。

影响:5.0.0-5.0.30, 5.5.0-5.5.16

发布于 2006 年 3 月 15 日 在 Apache Tomcat 5.5.16, 5.0.SVN 中修复

低:跨站脚本 CVE-2006-7196

作为 JSP 示例一部分包含的日历应用程序容易受到跨站脚本攻击,因为它在将用户提供的数据包含到返回页面之前未进行转义。

影响:5.0.0-5.0.30, 5.5.0-5.5.15

在 Apache Tomcat 5.5.13, 5.0.SVN 中修复

低:目录列表 CVE-2006-3835

当启用目录列表时,这是预期行为。分号 (;) 是路径参数的分隔符,因此在文件名之前插入一个分号会将请求更改为带有路径参数的目录请求。如果启用了目录列表,则将显示目录列表。作为对此及其他目录列表问题的响应,目录列表默认被禁用。

影响:5.0.0-5.0.30, 5.5.0-5.5.12

重要:拒绝服务 CVE-2005-3510

根本原因是生成目录列表内容所需的相对昂贵的调用。如果启用了目录列表,则每个目录中的文件数应保持在最小。针对此问题,目录列表默认被禁用。此外,已提出一个补丁,该补丁将通过缓存目录列表来提高性能,特别是对于大型目录。

影响:5.0.0-5.0.30, 5.5.0-5.5.12

在 Apache Tomcat 5.5.7, 5.0.SVN 中修复

低:跨站脚本 CVE-2005-4838

作为 JSP 示例和 Tomcat Manager 一部分包含的各种 JSP 容易受到跨站脚本攻击,因为它们在将用户提供的数据包含到返回页面之前未进行转义。

影响:5.0.0-5.0.30, 5.5.0-5.5.6

在 Apache Tomcat 5.5.1 中修复

低:信息泄露 CVE-2008-3271

Bug 25835 在极少数情况下(这仅在使用调试器强制特定处理序列的两个线程重现)可能导致来自非允许 IP 地址的用户获得对受扩展 RequestFilterValve 的 valve 保护的上下文的访问权限。这包括标准的 RemoteAddrValve 和 RemoteHostValve 实现。

影响:5.5.0 (5.0.x 未知)

非 Tomcat 漏洞

重要:远程拒绝服务 CVE-2010-4476

一个 JVM bug 可能导致 Double 转换挂起 JVM,当访问基于表单的安全受限页面或任何调用 javax.servlet.ServletRequest.getLocale() 或 javax.servlet.ServletRequest.getLocales() 的页面时。特制请求可用于触发拒绝服务。

修订版 1066318 中提供了此 JVM bug 的解决方法。此解决方法包含在 Tomcat 5.5.33 及更高版本中。

该问题于 2011 年 2 月 1 日首次报告给 Tomcat 安全团队,并于 2011 年 1 月 31 日公开。

影响:5.5.0-5.5.32

中等:TLS SSL 中间人 CVE-2009-3555

TLS 协议中存在一个漏洞,允许攻击者在重新协商期间将任意请求注入 TLS 流。

Tomcat 使用的 TLS 实现因连接器而异。阻塞 IO (BIO) 和非阻塞 (NIO) 连接器使用 JVM 提供的 JSSE 实现。APR/native 连接器使用 OpenSSL。

如果使用的 JSSE 版本存在漏洞,则 BIO 连接器容易受到攻击。为了解决此问题,直到 JSSE 中提供修复为止,已向 BIO 连接器添加了一个新的连接器属性 allowUnsafeLegacyRenegotiation。应将其设置为 false(默认值)以防止此漏洞。

NIO 连接器不容易受到攻击,因为它不支持重新协商。

APR/native 解决办法详见APR/native 连接器安全页面

用户应注意,禁用重新协商的影响因应用程序和客户端而异。在某些情况下,禁用重新协商可能导致某些客户端无法访问应用程序。

修订版 904851 中实现了一个解决方法,该方法提供了新的 allowUnsafeLegacyRenegotiation 属性。此解决方法包含在 Tomcat 5.5.29 及更高版本中。

支持新的 TLS 重新协商协议 (RFC 5746),该协议没有此安全问题:

  • 对于使用 JVM 提供的 JSSE 实现的连接器:在 Tomcat 5.5.33 中添加。
    需要支持 RFC 5746 的 JRE。对于 Oracle JRE,已知为 6u22 或更高版本。
  • 对于使用 APR 和 OpenSSL 的连接器:
    待定。请参阅APR/native 连接器安全页面

重要:目录遍历 CVE-2008-2938

最初报告为 Tomcat 漏洞,此问题的根本原因是 JVM 未正确将 UTF-8 编码的 URL 解码为 UTF-8。当连接器使用 URIEncoding="UTF-8" 时,这暴露了一个目录遍历漏洞。此目录遍历仅限于 Web 应用程序的 docBase。

如果上下文配置为 allowLinking="true",则目录遍历漏洞将扩展到主机服务器的整个文件系统。

还应注意,当处理使用 UTF-8 编码请求体的请求时,设置 useBodyEncodingForURI="true" 与设置 URIEncoding="UTF-8" 具有相同的效果。

尽管根本原因很快被确定为 JVM 问题,并且它影响了来自多个供应商的多个 JVM,但决定将其作为 Tomcat 漏洞报告,直到 JVM 供应商提供更新来解决此问题。有关您的 JVM 的此问题状态的更多信息,请联系您的 JVM 供应商。

修订版 681029 中实现了一个解决方法,该方法可以防御此问题以及 JVM 中可能仍然存在的任何类似字符编码问题。此解决方法包含在 Tomcat 5.5.27 及更高版本中。

JavaMail 信息泄露 CVE-2005-1754

所描述的漏洞存在于部署在 Tomcat 上的 Web 应用程序中,而非 Tomcat 本身。

JavaMail 信息泄露 CVE-2005-1753

所描述的漏洞存在于部署在 Tomcat 上的 Web 应用程序中,而非 Tomcat 本身。