全部产品
Search
文档中心

【漏洞公告】CVE-2016-8735:Apache Tomcat远程代码执行漏洞

更新时间: 2018-05-10

2016年11月22日,Apache官方安全团队发布了关于Apache Tomcat存在远程代码执行漏洞的公告。该漏洞与Oracle之前修复的mxRemoteLifecycleListener反序列化漏洞(CVE-2016-3427)相关,是由于使用了JmxRemoteLifecycleListener功能导致。

漏洞详情见下文。


漏洞编号

CVE-2016-8735

漏洞描述

该漏洞的诱因存在于Oracle已经修复的JmxRemoteLifecycleListener反序列化漏洞(CVE-2016-3427)。因为Tomcat也使用了JmxRemoteLifecycleListener监听功能,但并没有及时升级,导致该远程代码执行漏洞。

漏洞危害

黑客通过利用漏洞可以实现远程命令执行,严重情况下可能会导致业务中断或数据泄露。

漏洞利用条件

需要外部开启JmxRemoteLifecycleListener监听端口,实现远程利用。

漏洞影响范围

  • Apache Tomcat 9.0.0.M1 to 9.0.0.M11
  • Apache Tomcat 8.5.0 to 8.5.6
  • Apache Tomcat 8.0.0.RC1 to 8.0.38
  • Apache Tomcat 7.0.0 to 7.0.72
  • Apache Tomcat 6.0.0 to 6.0.47

漏洞测试方案

您可以使用以下方式检测该漏洞:

  • 人工检查是否开启了10001和10002端口服务并发布在互联网上。

  • 检查Tomcat是否启用了JmxRemoteLifecycleListener功能。

  • 检查server.xml文件是否包含以下内容:

    1. <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"
    2. rmiRegistryPortPlatform="10001" rmiServerPortPlatform="10002" />

注意:不推荐使用PoC测试方式。

漏洞修复建议(或缓解措施)

  • 紧急措施:关闭JmxRemoteLifecycleListener功能,或者是对jmx JmxRemoteLifecycleListener远程端口进行网络访问控制。同时,增加严格的认证方式。

  • 推荐方案:官方已经发布了版本更新,建议您升级到最新版本。

    • Apache Tomcat 9.0.0.M13或更新版本(Apache Tomcat 9.0.0.M12也修复了此漏洞,但并未发布)
    • Apache Tomcat 8.5.8或更新版本(Apache Tomcat 8.5.7也修复了此漏洞,但并未发布)
    • Apache Tomcat 8.0.39或更新版本
    • Apache Tomcat 7.0.73或更新版本
    • Apache Tomcat 6.0.48或更新版本

情报来源

[1]. http://seclists.org/oss-sec/2016/q4/502
[2]. http://engineering.pivotal.io/post/java-deserialization-jmx/
[3]. http://svn.apache.org/viewvc?view=revision&revision=1767644http://tomcat.apache.org/security-9.html
[4]. http://tomcat.apache.org/security-8.html
[5]. http://tomcat.apache.org/security-7.html
[6]. http://tomcat.apache.org/security-6.html