内容

Apache Tomcat 6.x 漏洞

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

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

请注意,Tomcat 6.0.x 已达到生命周期结束,不再受支持。6.0.x 分支中的进一步漏洞将不会得到修复。用户应升级到 8.5.x 或更高版本以获取安全修复。

请注意,我们从不提供二进制补丁。如果您需要应用源代码补丁,请使用您正在使用的 Apache Tomcat 版本的构建说明。对于 Tomcat 6.0,这些文件是building.htmlBUILDING.txt。这两个文件都可以在二进制分发包的webapps/docs子目录中找到。

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

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

目录

2017 年 4 月 7 日 在 Apache Tomcat 6.0.53 中修复

重要:信息泄露 CVE-2017-5647

在使用文件发送时,流水线请求处理中存在一个错误,导致当上一个请求的文件发送处理完成后,流水线请求丢失。这可能导致响应看起来是为错误的请求发送的。例如,发送请求 A、B 和 C 的用户代理可能会看到请求 A 的正确响应,请求 B 的响应是请求 C 的响应,而请求 C 没有响应。

此问题已在修订版 178902417891551789856 中修复。

此问题由 Apache Tomcat 安全团队于 2017 年 3 月 20 日发现,并于 2017 年 4 月 10 日公开。

影响版本:6.0.0 至 6.0.52

尚未发布 在 Apache Tomcat 6.0.50 中修复

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

重要:信息泄露 CVE-2016-8745

NIO HTTP 连接器发送文件代码的错误处理中存在一个错误,导致当前的 Processor 对象被多次添加到 Processor 缓存中。这反过来意味着同一个 Processor 可以用于并发请求。共享 Processor 可能导致请求之间信息泄露,包括但不限于会话 ID 和响应正文。

此问题已在修订版 1777472 中修复。

此问题由 Apache Tomcat 安全团队于 2016 年 1 月 3 日确定影响 6.0.x 版本,并于 2017 年 1 月 5 日公开。

影响版本:6.0.16 至 6.0.48

2016 年 11 月 15 日 在 Apache Tomcat 6.0.48 中修复

重要:远程代码执行 CVE-2016-8735

JmxRemoteLifecycleListener 未更新以考虑 Oracle 对 CVE-2016-3427 的修复。因此,使用此监听器的 Tomcat 安装仍然容易受到类似的远程代码执行漏洞的影响。此问题被评为重要而非关键,因为使用此监听器的安装数量很少,并且即使使用此监听器,JMX 端口也极不可能被攻击者访问。

此问题已在修订版 1767684 中修复。

此问题于 2016 年 10 月 19 日报告给 Apache Tomcat 安全团队,并于 2016 年 11 月 22 日公开。

影响版本:6.0.0 至 6.0.47

重要:信息泄露 CVE-2016-6816

解析 HTTP 请求行的代码允许使用无效字符。这可能与一个也允许无效字符但有不同解释的代理结合使用,从而将数据注入 HTTP 响应。通过操纵 HTTP 响应,攻击者可以污染网络缓存、执行 XSS 攻击和/或从非自身请求中获取敏感信息。

此问题已在修订版 1767683 中修复。

此问题于 2016 年 10 月 11 日报告给 Apache Tomcat 安全团队,并于 2016 年 11 月 22 日公开。

影响版本:6.0.0 至 6.0.47

2016 年 10 月 16 日 在 Apache Tomcat 6.0.47 中修复

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

低:对全局资源的无限制访问 CVE-2016-6797

ResourceLinkFactory 没有将 Web 应用程序对全局 JNDI 资源的访问限制为明确链接到 Web 应用程序的那些资源。因此,Web 应用程序可以访问任何全局 JNDI 资源,无论是否已配置明确的 ResourceLink。

此问题已在修订版 1757285 中修复。

此问题由 Apache Tomcat 安全团队于 2016 年 1 月 18 日发现,并于 2016 年 10 月 27 日公开。

影响版本:6.0.0 至 6.0.45

低:安全管理器绕过 CVE-2016-6796

恶意 Web 应用程序能够通过操纵 JSP Servlet 的配置参数来绕过已配置的 SecurityManager。

此问题已在修订版 17584961763237 中修复。

此问题由 Apache Tomcat 安全团队于 2015 年 12 月 27 日发现,并于 2016 年 10 月 27 日公开。

影响版本:6.0.0 至 6.0.45

低:系统属性泄露 CVE-2016-6794

当配置了 SecurityManager 时,Web 应用程序读取系统属性的能力应由 SecurityManager 控制。Tomcat 用于配置文件中的系统属性替换功能可能被恶意 Web 应用程序用于绕过 SecurityManager 并读取不应可见的系统属性。

此问题已在修订版 1754733 中修复。

此问题由 Apache Tomcat 安全团队于 2015 年 12 月 27 日发现,并于 2016 年 10 月 27 日公开。

影响版本:6.0.0 至 6.0.45

低:安全管理器绕过 CVE-2016-5018

恶意 Web 应用程序能够通过 Web 应用程序可访问的 Tomcat 实用方法来绕过已配置的 SecurityManager。

此问题已在修订版 17549041761718 中修复。

此问题由 HP 企业安全团队的 Alvaro Munoz 和 Alexander Mirosh 发现,并于 2016 年 7 月 5 日报告给 Apache Tomcat 安全团队。它于 2016 年 10 月 27 日公开。

影响版本:6.0.0 至 6.0.45

低:计时攻击 CVE-2016-0762

如果提供的用户名不存在,Realm 实现不会处理提供的密码。这使得计时攻击可以确定有效的用户名。请注意,默认配置包括 LockOutRealm,这使得此漏洞的利用更加困难。

此问题已在修订版 1758506 中修复。

此问题由 Apache Tomcat 安全团队于 2016 年 1 月 1 日发现,并于 2016 年 10 月 27 日公开。

影响版本:6.0.0 至 6.0.45

2016 年 2 月 11 日 在 Apache Tomcat 6.0.45 中修复

低:有限目录遍历 CVE-2015-5174

此问题仅影响在安全管理器下运行不受信任的 Web 应用程序的用户。

通过 ServletContext 方法 getResource()getResourceAsStream()getResourcePaths() 访问资源时,路径应限制为当前 Web 应用程序。验证不正确,形式为 "/.." 的路径未被拒绝。请注意,以 "/../" 开头的路径已正确拒绝。此错误允许在安全管理器下运行的恶意 Web 应用程序获取部署 Web 应用程序的目录的目录列表。这在安全管理器下运行时不应可能。通常,会暴露的目录列表是 $CATALINA_BASE/webapps 的目录。

此问题已在修订版 1700900 中修复。

此问题由 Tomcat 安全团队于 2015 年 8 月 12 日发现,并于 2016 年 2 月 22 日公开。

影响版本:6.0.0 至 6.0.44

低:目录泄露 CVE-2015-5345

当访问受安全约束保护的目录时,如果 URL 未以斜杠结尾,Tomcat 会重定向到带斜杠的 URL,从而在处理安全约束之前确认目录的存在。因此,即使用户无权查看该目录,用户也可以确定目录是否存在。此问题也发生在 Web 应用程序的根目录,在这种情况下,即使用户没有访问权限,也会确认 Web 应用程序的存在。

解决方案是在 DefaultServlet 中实现重定向,以便在重定向之前处理任何安全约束和/或强制安全过滤器。Tomcat 团队认识到移动重定向可能导致回归,因此引入了两个新的 Context 配置选项(mapperContextRootRedirectEnabledmapperDirectoryRedirectEnabled)。最初默认两者都为 false,因为这更安全。然而,由于 Bug 58765 等回归问题,mapperContextRootRedirectEnabled 的默认值后来更改为 true,因为这被认为比能够确定 Web 应用程序是否部署在给定路径上的安全风险更严重。

此问题已在修订版 17152161717216 中修复。

此问题由 QCSec 的 Mark Koek 于 2015 年 10 月 12 日发现,并于 2016 年 2 月 22 日公开。

影响版本:6.0.0 至 6.0.44

低:安全管理器绕过 CVE-2016-0706

此问题仅影响在安全管理器下运行不受信任的 Web 应用程序的用户。

当配置了安全管理器时,内部的 StatusManagerServlet 可能被恶意 Web 应用程序加载。此 Servlet 随后可以向恶意 Web 应用程序提供所有已部署应用程序的列表以及所有当前正在处理的 HTTP 请求行的列表。这可能将其他 Web 应用程序的敏感信息(例如会话 ID)暴露给该 Web 应用程序。

此问题已在修订版 1722802 中修复。

此问题由 Tomcat 安全团队于 2015 年 12 月 27 日发现,并于 2016 年 2 月 22 日公开。

影响版本:6.0.0 至 6.0.44

中:安全管理器绕过 CVE-2016-0714

此问题仅影响在安全管理器下运行不受信任的 Web 应用程序的用户。

Tomcat 提供了多种会话持久化机制。StandardManager 在重启后保持会话。PersistentManager 能够将会话持久化到文件、数据库或自定义 Store。集群实现将会话持久化到集群中的一个或多个额外节点。所有这些机制都可能被利用来绕过安全管理器。会话持久化由具有 Tomcat 内部代码权限的 Tomcat 代码执行。通过将会话中放置精心制作的对象,恶意 Web 应用程序可以触发任意代码的执行。

此问题已在修订版 17271661727182 中修复。

此问题由 Tomcat 安全团队于 2015 年 11 月 12 日发现,并于 2016 年 2 月 22 日公开。

影响版本:6.0.0 至 6.0.44

2015 年 5 月 12 日 在 Apache Tomcat 6.0.44 中修复

低:拒绝服务 CVE-2014-0230

当包含请求正文的请求的响应在请求正文完全读取之前返回给用户代理时,Tomcat 默认会吞噬剩余的请求正文,以便处理连接上的下一个请求。Tomcat 吞噬的请求正文大小没有限制。这导致了有限的拒绝服务,因为 Tomcat 永远不会关闭连接,并且一个处理线程将一直分配给该连接。

此问题已在修订版 1659537 中修复。

此问题由百度安全团队的 AntBean@secdig 于 2014 年 6 月 4 日向 Tomcat 安全团队披露,并于 2015 年 4 月 9 日公开。

影响版本:6.0.0 至 6.0.43

中:安全管理器绕过 CVE-2014-7810

恶意 Web 应用程序可以利用表达式语言绕过 Security Manager 的保护,因为表达式在特权代码区段内进行评估。

此问题已在修订版 16453661659538 中修复。

此问题由 Tomcat 安全团队于 2014 年 11 月 2 日发现,并于 2015 年 5 月 14 日公开。

影响版本:6.0.0 至 6.0.43

2014 年 11 月 22 日 在 Apache Tomcat 6.0.43 中修复

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

重要:请求走私 CVE-2014-0227

可以构造一个格式错误的块作为分块请求的一部分,导致 Tomcat 将请求正文的一部分读取为新请求。

此问题已在修订版 1603628 中修复。

此问题由 Tomcat 安全团队于 2014 年 5 月 30 日发现,并于 2015 年 2 月 9 日公开。

影响版本:6.0.0 至 6.0.41

2014 年 5 月 23 日发布 在 Apache Tomcat 6.0.41 中修复

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

重要:拒绝服务 CVE-2014-0075

可以构造一个格式错误的块大小作为分块请求的一部分,从而允许无限量的数据流式传输到服务器,绕过对请求施加的各种大小限制。这使得拒绝服务攻击成为可能。

此问题已在修订版 1579262 中修复。

此问题由红帽安全响应团队的 David Jorm 于 2014 年 2 月 28 日报告给 Tomcat 安全团队,并于 2014 年 5 月 27 日公开。

影响版本:6.0.0-6.0.39

重要:信息泄露 CVE-2014-0096

默认的 servlet 允许 Web 应用程序(在多个级别)定义用于格式化目录列表的 XSLT。在安全管理器下运行时,这些处理不受与 Web 应用程序相同的约束。这使得恶意 Web 应用程序能够通过使用外部 XML 实体来绕过安全管理器施加的文件访问约束。

此问题已在修订版 1585853 中修复。

此问题由 Tomcat 安全团队于 2014 年 2 月 27 日发现,并于 2014 年 5 月 27 日公开。

影响版本:6.0.0-6.0.39

重要:信息泄露 CVE-2014-0099

用于解析请求内容长度标头的代码未检查结果中的溢出。当 Tomcat 位于正确处理内容长度标头的反向代理后方时,这暴露了一个请求走私漏洞。

此问题已在修订版 1580473 中修复。

一个演示该解析错误的测试用例于 2014 年 3 月 13 日发送给 Tomcat 安全团队,但未提供任何上下文。Tomcat 安全团队在收到报告当天就识别了其安全影响,并于 2014 年 5 月 27 日公开。

影响版本:6.0.0-6.0.39

低:信息泄露 CVE-2014-0119

在有限的情况下,恶意 Web 应用程序可以替换 Tomcat 用于处理默认 servlet 的 XSLT、JSP 文档、标签库描述符 (TLD) 和标签插件配置文件的 XML 解析器。注入的 XML 解析器随后可以绕过对 XML 外部实体施加的限制,和/或查看部署在同一 Tomcat 实例上的其他 Web 应用程序处理的 XML 文件。

此问题已在修订版 158964015938151593821 中修复。

此问题由 Tomcat 安全团队于 2014 年 4 月 12 日发现,并于 2014 年 5 月 27 日公开。

影响版本:6.0.0-6.0.39

2014 年 1 月 31 日发布 在 Apache Tomcat 6.0.39 中修复

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

低:文档 Javadoc 中的框架注入 CVE-2013-1571

Tomcat 6 是用 Java 5 构建的,已知 Java 5 生成的 Javadoc 存在框架注入漏洞。

Apache Tomcat 网站上已发布的 Javadoc 在此问题宣布当天已修复。发布版本的 Javadoc 生成已在修订版 1557724 中修复。

此问题由 Oracle 于 2013 年 6 月 18 日公开。

影响版本:6.0.0-6.0.37

重要:信息泄露 CVE-2013-4286

对 CVE-2005-2090 的修复不完整。它没有涵盖以下情况:

  • 任何 HTTP 连接器上的带有分块编码的 content-length 标头
  • 任何 AJP 连接器上的多个 content-length 标头

包含多个 content-length 标头或在使用分块编码时包含 content-length 标头的请求应被拒绝为无效。当多个组件(防火墙、缓存、代理和 Tomcat)处理一系列请求时,如果其中一个或多个请求包含多个 content-length 标头或在使用分块编码时包含 content-length 标头,并且多个组件不拒绝请求并对使用哪个 content-length 标头做出不同决策,攻击者可以污染 Web 缓存、执行 XSS 攻击并从非自身请求中获取敏感信息。Tomcat 现在拒绝包含多个 content-length 标头或在使用分块编码时包含 content-length 标头的请求。

此问题已在修订版 1552565 中修复。

此问题由 Apache Tomcat 安全团队于 2013 年 8 月 15 日发现,并于 2014 年 2 月 25 日公开。

影响版本:6.0.0 至 6.0.37

重要:拒绝服务 CVE-2013-4322

对 CVE-2012-3544 的修复不完整。它没有涵盖以下情况:

  • 块扩展未受限制
  • 尾部标头中 : 后的空白未受限制

此问题已在修订版 1556540 中修复。

此问题的第一部分由 Apache Tomcat 安全团队于 2013 年 8 月 27 日发现,第二部分由 TELUS 安全实验室的 Saran Neti 于 2013 年 11 月 5 日发现。它于 2014 年 2 月 25 日公开。

影响版本:6.0.0 至 6.0.37

低:信息泄露 CVE-2013-4590

应用程序提供的 XML 文件,例如 web.xml、context.xml、*.tld、*.tagx 和 *.jspx,允许 XXE,这可能被用于向攻击者暴露 Tomcat 内部信息。此漏洞仅在 Tomcat 运行来自不受信任来源(例如共享主机环境)的 Web 应用程序时发生。

此问题已在修订版 1558828 中修复。

此问题由 Apache Tomcat 安全团队于 2013 年 10 月 29 日发现,并于 2014 年 2 月 25 日公开。

影响版本:6.0.0 至 6.0.37

低:会话固定 CVE-2014-0033

之前对路径参数处理的修复(1149220)引入了一个回归,这意味着即使将 disableURLRewriting 配置为 true,URL 中提供的会话 ID 也会被考虑。请注意,会话仅用于该单个请求。

此问题已在修订版 1558822 中修复。

此问题由 Apache Tomcat 安全团队于 2013 年 12 月 1 日发现,并于 2014 年 2 月 25 日公开。

影响版本:6.0.33 至 6.0.37

2013 年 5 月 3 日发布 在 Apache Tomcat 6.0.37 中修复

重要:会话固定 CVE-2013-2067

FORM 身份验证将最近需要身份验证的请求与当前会话关联。通过在受害者完成登录表单时重复发送对已认证资源的请求,攻击者可以注入一个将使用受害者凭据执行的请求。

请注意,在 Tomcat 6.0.21 中添加了在身份验证时更改会话 ID 的选项。在早期 6.0.x 版本中,防止会话固定是应用程序的责任。此漏洞代表了 Tomcat 6.0.21 中添加的会话固定保护中的一个错误。因此,只有 6.0.21 及更高版本被列为易受攻击的版本。

此问题已在修订版 1417891 中修复。

此问题由 Tomcat 安全团队于 2012 年 10 月 15 日发现,并于 2013 年 5 月 10 日公开。

影响版本:6.0.21-6.0.36

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

当处理使用分块传输编码提交的请求时,Tomcat 忽略但未限制包含的任何扩展。这允许客户端通过向服务器流式传输无限量数据来执行有限的 DOS。

此问题已在修订版 1476592 中修复。

此问题于 2011 年 11 月 10 日报告给 Tomcat 安全团队,并于 2013 年 5 月 10 日公开。

影响版本:6.0.0-6.0.36

2012 年 10 月 19 日发布 在 Apache Tomcat 6.0.36 中修复

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

对于 HTTP NIO 连接器,限制请求头允许大小的检查在请求解析过程中实现得太晚。这使得恶意用户可以通过发送一个带有超大头的请求来触发 OutOfMemoryError。

此问题已在修订版 1356208 中修复。

此问题由 Josh Spiewak 于 2012 年 6 月 4 日报告给 Tomcat 安全团队,并于 2012 年 11 月 5 日公开。

影响版本:6.0.0-6.0.35

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

Tomcat 的 DIGEST 身份验证实现中发现了三个弱点并已解决:

  1. 允许重放攻击
  2. 当会话 ID 存在时,身份验证被绕过。
  3. 在指示随机数过期之前,未检查用户名和密码。

这些问题降低了 DIGEST 身份验证的安全性,使得在某些情况下可能进行重放攻击。

此问题已在修订版 1380829 中修复。

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

影响版本:6.0.0-6.0.35

重要:绕过安全约束 CVE-2012-3546

当使用 FORM 身份验证时,如果其他组件(例如单点登录阀)在调用 FormAuthenticator#authenticate() 之前调用了 request.setUserPrincipal(),则可以通过在 URL 末尾附加 /j_security_check 来绕过 FORM 身份验证器中的安全约束检查。

此问题已在修订版 1381035 中修复。

此问题由 Tomcat 安全团队于 2012 年 7 月 13 日发现,并于 2012 年 12 月 4 日公开。

影响版本:6.0.0-6.0.35

重要:绕过 CSRF 防御过滤器 CVE-2012-4431

如果请求在没有会话标识符的情况下发送到受保护的资源,则可以绕过 CSRF 防御过滤器。

此问题已在修订版 1394456 中修复。

此问题由 Tomcat 安全团队于 2012 年 9 月 8 日发现,并于 2012 年 12 月 4 日公开。

影响版本:6.0.30-6.0.35

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

当使用启用了 sendfile 和 HTTPS 的 NIO 连接器时,如果客户端在读取响应时中断连接,则会进入无限循环,导致拒绝服务。此问题最初作为 bug 52858 报告。

此问题已在修订版 1372035 中修复。

此错误的安全性影响由红帽安全响应团队的 Arun Neelicattu 于 2012 年 10 月 3 日报告给 Tomcat 安全团队,并于 2012 年 12 月 4 日公开。

影响版本:6.0.0-6.0.35

2011 年 12 月 5 日发布 在 Apache Tomcat 6.0.35 中修复

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

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

出于性能原因,从请求解析的信息通常缓存在两个地方:内部请求对象和内部处理器对象。这些对象并非同时回收。当某些需要添加到访问日志的错误发生时,访问日志记录过程会在请求对象被回收后触发其重新填充。然而,请求对象在用于下一个请求之前未被回收。这导致信息从上一个请求泄露(例如远程 IP 地址、HTTP 标头)到下一个请求。通过确保请求和响应对象在重新填充后被回收以生成必要的访问日志条目,此问题得以解决。

此问题已在 修订版 1185998 中修复。

此问题由 Tomcat 安全团队于 2011 年 9 月 22 日发现,并于 2012 年 1 月 17 日公开。

影响版本:6.0.30-6.0.33

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

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

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

此问题已在 修订版 1162959 中修复。

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

影响版本:6.0.0-6.0.33

缓解选项

  • 升级到 Tomcat 6.0.35。
  • 应用相应的补丁
  • 配置 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">)。

参考

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

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

此问题已在修订版 120060112063241229027 中修复。

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

影响版本:6.0.0-6.0.33

2011 年 8 月 18 日发布 在 Apache Tomcat 6.0.33 中修复

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

注意:Mitre 选择将此问题分解为多个子问题,并为这些子问题分配了以下附加参考:CVE-2011-5062CVE-2011-5063CVE-2011-5064。Apache Tomcat 安全团队将继续将此作为单个问题处理,使用参考 CVE-2011-1184

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

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

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

此问题已在 修订版 1158180 中修复。

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

影响版本:6.0.0-6.0.32

低:信息泄露 CVE-2011-2204

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

此问题已在 修订版 1140071 中修复。

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

影响版本:6.0.0-6.0.32

低:信息泄露 CVE-2011-2526

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

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

此外,这些漏洞仅在以下所有条件都为真时发生:

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

此问题已在 修订版 1146703 中修复。

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

影响版本:6.0.0-6.0.32

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

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

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

受影响的 Tomcat 版本随附的 jsvc 源代码文件包含此漏洞。

此问题已在 修订版 1153824 中修复。

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

影响版本:6.0.30-6.0.32

2011 年 2 月 3 日发布 在 Apache Tomcat 6.0.32 中修复

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

重要:远程拒绝服务 CVE-2011-0534

NIO 连接器在请求行处理过程中会无限扩展其缓冲区。此行为可被用于通过精心构造的请求进行拒绝服务攻击。

此问题已在 修订版 1066313 中修复。

此问题由 Tomcat 安全团队于 2011 年 1 月 27 日发现,并于 2011 年 2 月 5 日公开。

影响版本:6.0.0-6.0.30

2011 年 1 月 13 日发布 在 Apache Tomcat 6.0.30 中修复

低:跨站脚本 CVE-2011-0013

HTML Manager 界面显示了 Web 应用程序提供的数据,例如显示名称,而未进行过滤。恶意 Web 应用程序可以在管理员用户查看管理器页面时触发脚本执行。

此问题已在 修订版 1057270 中修复。

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

影响版本:6.0.0-6.0.29

中:跨站脚本 CVE-2010-4172

Manager 应用程序直接使用了用户提供的参数 sort 和 orderBy 而未进行过滤,从而允许跨站脚本攻击。

此问题已在 修订版 1037779 中修复。

此问题于 2010 年 11 月 15 日首次报告给 Tomcat 安全团队,并于 2010 年 11 月 22 日公开。

影响版本:6.0.12-6.0.29

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

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

此问题已在 修订版 1022560 中修复。

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

影响版本:6.0.0-6.0.29

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

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

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

此问题已在 修订版 958977 中修复。

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

影响版本:6.0.0-6.0.27

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

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

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

此问题已在 修订版 936540 中修复。

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

影响版本:6.0.0-6.0.26

2010 年 1 月 21 日发布 在 Apache Tomcat 6.0.24 中修复

注意:这些问题已在 Apache Tomcat 6.0.21 中修复,但 6.0.21、6.0.22 和 6.0.23 发布候选版本的投票未通过。因此,尽管用户必须下载 6.0.24 才能获得包含这些问题修复的版本,但 6.0.21 及更高版本未包含在受影响版本列表中。

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

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

此问题已在 修订版 892815 中修复。

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

影响版本:6.0.0-6.0.20

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

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

此问题已在 修订版 892815 中修复。

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

影响版本:6.0.0-6.0.20 (仅限 Windows)

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

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

此问题已在 修订版 892815 中修复。

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

影响版本:6.0.0-6.0.20

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

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

此问题已在 修订版 881771 中修复。

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

影响版本:6.0.0-6.0.20

2009 年 6 月 3 日发布 在 Apache Tomcat 6.0.20 中修复

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

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

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

此问题已在 修订版 734734 中修复。

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

影响版本:6.0.0-6.0.18

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

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

此问题已在 修订版 742915 中修复。

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

影响版本:6.0.0-6.0.18

低:信息泄露 CVE-2009-0580

由于某些身份验证类中错误检查不足,Tomcat 允许通过提供非法 URL 编码的密码来枚举(暴力测试)用户名。如果将基于 FORM 的身份验证 (j_security_check) 与 MemoryRealm 一起使用,则可能发生攻击。

此问题已在 修订版 747840 中修复。

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

影响版本:6.0.0-6.0.18

低:跨站脚本 CVE-2009-0781

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

此问题已在 修订版 750924 中修复。

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

影响版本:6.0.0-6.0.18

低:信息泄露 CVE-2009-0783

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

此问题已在修订版 652592739522 中修复。

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

影响版本:6.0.0-6.0.18

2008 年 7 月 31 日发布 在 Apache Tomcat 6.0.18 中修复

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

低:跨站脚本 CVE-2008-1232

HttpServletResponse.sendError() 调用的 message 参数不仅显示在错误页面上,还用于 HTTP 响应的原因短语。这可能包含 HTTP 标头中非法的字符。特制的 संदेश 可能会导致任意内容被注入 HTTP 响应。要成功进行 XSS 攻击,未经筛选的用户提供数据必须包含在 message 参数中。

此问题已在 修订版 673834 中修复。

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

影响版本:6.0.0-6.0.16

低:跨站脚本 CVE-2008-1947

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

此问题已在 修订版 662585 中修复。

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

影响版本:6.0.0-6.0.16

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

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

此问题已在 修订版 673839 中修复。

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

影响版本:6.0.0-6.0.16

2008 年 2 月 8 日发布 在 Apache Tomcat 6.0.16 中修复

低:会话劫持 CVE-2007-5333

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

影响版本:6.0.0-6.0.14

低:权限提升 CVE-2007-5342

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

影响版本:6.0.0-6.0.15

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

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

影响版本:6.0.0-6.0.14

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

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

影响版本:6.0.0-6.0.15

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

如果在处理参数期间发生异常(例如客户端断开连接),则该请求提交的参数可能会被错误地作为后续请求的一部分进行处理。

影响版本:6.0.5-6.0.15

2007 年 8 月 13 日发布 在 Apache Tomcat 6.0.14 中修复

低:跨站脚本 CVE-2007-2449

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

影响版本:6.0.0-6.0.13

低:跨站脚本 CVE-2007-2450

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

影响版本:6.0.0-6.0.13

低:会话劫持 CVE-2007-3382

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

影响版本:6.0.0-6.0.13

低:会话劫持 CVE-2007-3385

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

影响版本:6.0.0-6.0.13

低:跨站脚本 CVE-2007-3386

Host Manager Servlet 在显示用户提供的数据之前未进行过滤。这使得 XSS 攻击成为可能。

影响版本:6.0.0-6.0.13

未发布 在 Apache Tomcat 6.0.11 中修复

中:跨站脚本 CVE-2007-1355

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

影响版本:6.0.0-6.0.10

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

包含多个Content-Length请求头的请求应被视为无效并拒绝。当多个组件(防火墙、缓存、代理和Tomcat)处理一系列请求时,如果其中一个或多个请求包含多个Content-Length请求头,且部分组件未拒绝该请求并对使用哪个Content-Length请求头做出不同决定,攻击者就可能污染网络缓存、执行XSS攻击并从非其自身的请求中获取敏感信息。现在,对于包含多个Content-Length请求头的请求,Tomcat将返回400错误。

影响版本:6.0.0-6.0.10

发布日期:2007年2月28日 在Apache Tomcat 6.0.10中修复

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

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

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

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

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

影响版本:6.0.0-6.0.9

发布日期:2007年2月8日 在Apache Tomcat 6.0.9中修复

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

当通过HTTPS使用SingleSignOn Valve时,Cookie JSESSIONIDSSO在传输时不包含“secure”属性,导致它会被传输到任何通过HTTP(无论是故意还是错误)从同一服务器请求的内容。

影响版本:6.0.0-6.0.8

发布日期:2006年12月18日 在Apache Tomcat 6.0.6中修复

低:跨站脚本 CVE-2007-1358

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

影响版本:6.0.0-6.0.5

不是 Tomcat 中的漏洞

低:拒绝服务 CVE-2012-5568

如果使用BIO或APR/native HTTP连接器,每次发送1字节的HTTP请求将消耗连接池中的一个线程,直到请求被完全处理。多个此类请求可能用于耗尽连接池中的所有线程,从而造成拒绝服务。

由于客户端资源和服务器端资源之间的关系是线性的,Tomcat安全团队不认为此问题是一个漏洞。这是一个普遍的DoS问题,没有神奇的解决方案。此问题已在Tomcat邮件列表中多次讨论。查看这些讨论的最佳起点是bug 54236的报告。

此问题于2009年6月19日首次在Tomcat公共用户邮件列表中讨论。

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

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

针对此JVM错误的解决方法已在修订版本1066315中提供。此解决方法包含在Tomcat 6.0.32及更高版本中。

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

影响版本:6.0.0-6.0.31

中等: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连接器安全页面上已有详细说明。

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

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

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

  • 对于使用JVM提供的JSSE实现的连接器:已在Tomcat 6.0.32中添加。
    需要支持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供应商。

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

重要:远程内存读取 CVE-2014-0160(又名“心血漏洞”)

某些版本的OpenSSL中存在一个错误,可能允许未经身份验证的远程用户读取服务器内存中的某些内容。tcnative 1.1.24 - 1.1.29的二进制版本包含此易受攻击的OpenSSL版本。tcnative 1.1.30及更高版本附带已打补丁的OpenSSL版本。

此问题于2014年4月7日首次公布。

影响版本:OpenSSL 1.0.1-1.0.1f, tcnative 1.1.24-1.1.29