近日,国家信息安全漏洞库(CNNVD)收到关于Apache Tomcat文件包含漏洞(CNNVD-202002-1052、CVE-2020-1938)情况的报送。成功利用漏洞的攻击者可以读取 Tomcat所有webapp目录下的任意文件。该漏洞影响包括Apache Tomcat 9.x、Apache Tomcat 8.x、Apache Tomcat 7.x 、Apache Tomcat 6.x等多个版本的Tomcat。目前,Apache官方已发布公告对修复该漏洞做出说明,建议用户及时确认是否受到漏洞影响,尽快采取修补措施。
一、漏洞介绍
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,是JAVA中间件服务器之一。Tomcat 中存在一个文件包含漏洞,攻击者利用漏洞可以读取 Tomcat所有 webapp目录下的任意文件。如果网站应用提供文件上传的功能,攻击者可以先向服务端上传一个含有恶意 JSP 脚本代码的文件,然后利用漏洞进行文件包含,从而实现代码执行。
在受漏洞影响Tomcat 版本中,若其开启了 AJP Connector ,且攻击者能够访问 AJP Connector 服务端口的情况下,就会存在被该漏洞利用的风险。Tomcat的AJP Connector 默认配置下即为开启状态,因此该漏洞被利用的风险极大。
二、危害影响
成功利用漏洞的攻击者可以读取 Tomcat所有 webapp目录下的任意文件。由于该漏洞影响全版本默认配置下的 Tomcat,因部分tomcat版本过于久远,因此该漏洞影响范围至少包含下列版本,但不排除其他版本的Tomcat。影响版本如下:
Apache Tomcat 9.x < 9.0.31
Apache Tomcat 8.x < 8.5.51
Apache Tomcat 7.x < 7.0.100
Apache Tomcat 6.x
三、修复建议
目前,Apache官方已发布公告对修复该漏洞做出说明,可升级至9.0.31、8.5.51及7.0.100版本对此漏洞进行修复,建议用户及时确认是否受到漏洞影响,尽快采取修补措施。官方链接如下:
http://tomcat.apache.org/tomcat-9.0-doc/changelog.html#Tomcat_9.0.31_(markt)
要正确修复此漏洞,首先需要确定服务器环境中是否有用到 Tomcat AJP 协议:
1、如果确定未使用 Tomcat AJP 协议,则可以直接将 Tomcat 升级到 9.0.31、8.5.51 或 7.0.100 版本进行漏洞修复。
2、对于确定未使用 Tomcat AJP 协议,但无法进行版本更新、或者是更老版本的用户,可以考虑直接关闭 AJP Connector,或将其监听地址改为仅监听在本机 localhost。具体步骤:
(1)编辑 <CATALINA_BASE>/conf/server.xml,找到如下行(<CATALINA_BASE> 为 Tomcat 的工作目录):
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
(2)将此行注释掉(或直接删掉此行):
<!--<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />-->
(3)更改完毕后,重启 Tomcat 即可。
本通报由CNNVD技术支撑单位——北京长亭科技有限公司提供支持。
CNNVD将继续跟踪上述漏洞的相关情况,及时发布相关信息。如有需要,可与CNNVD联系。
联系方式: cnnvd@itsec.gov.cn