2016.11.22日,Apache 官方安全团队发布了关于Apache tomcat存在远程代码执行漏洞,该漏洞于Oracle之前修复的mxRemoteLifecycleListener反序列化漏洞(CVE-2016-3427)相关,该漏洞由于使用了
JmxRemoteLifecycleListener功能导致,具体漏洞详情如下:
漏洞编号:CVE-2016-8735
漏洞描述:
该漏洞诱因主要存在于Oracle已经修复JmxRemoteLifecycleListener反序列化漏洞(CVE-2016-3427)。 Tomcat同时也使用了JmxRemoteLifecycleListener这个监听功能,但是Tomcat并没有及时升级,从而导致该远程代码执行漏洞。
漏洞危害:
黑客通过利用漏洞可以实现远程命令执行,严重情况下可能会导致业务中断或数据泄露。
漏洞利用条件:
可以实现远程利用。
漏洞影响范围:
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
漏洞测试方案:
1.您可以人工检查是否开启了10001和10002端口服务发布到互联网上
2.检查tomcat是否启用了
JmxRemoteLifecycleListener功能
[font=arial, "]查看tomcat包目录下面的conf/server.xml的配置:
[font=arial, "]
<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="10001" rmiServerPortPlatform="10002" />
注:
不推荐使用POC测试方式
漏洞修复建议(或缓解措施):
1.紧急措施:
关闭JmxRemoteLifecycleListener功能,或者是对jmx JmxRemoteLifecycleListener 远程端口进行网络访问控制
增加严格的认证方式
2.
推荐方案:官方已经发布了版本更新,建议用户升级到最新版本:
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