一. 漏洞概述
- 2月20日,国家信息安全漏洞共享平台(CNVD)发布了Apache Tomcat文件包含漏洞(CNVD-2020-10487/CVE-2020-1938)。该漏洞是由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件。若目标服务器同时存在文件上传功能,攻击者可进一步实现远程代码执行。目前,厂商已发布新版本完成漏洞修复。
-
Tomcat是Apache软件基金会中的一个重要项目,性能稳定且免费,是目前较为流行的Web应用服务器。由于Tomcat应用范围较广,该漏洞影响全版本默认配置下的Tomcat 9/8/7/6,因此本次通告的漏洞影响范围较大。
Tomcat AJP默认监听端口为0.0.0.0:8009
参考链接:
https://www.cnvd.org.cn/webinfo/show/5415
二、影响范围
受影响版本
• Apache Tomcat 6
• Apache Tomcat 7 < 7.0.100
• Apache Tomcat 8 < 8.5.51
• Apache Tomcat 9 < 9.0.31
不受影响版本
• Apache Tomcat = 7.0.100
• Apache Tomcat = 8.5.51
• Apache Tomcat = 9.0.31
三、漏洞防护
要正确修复此漏洞,首先需要确定服务器环境中是否有用到Tomcat AJP
协议:
如果未使用集群或反向代理,则基本上可以确定没有用到AJP
如使用了集群或反向代理,则需要看集群或反向代理服务器是否与tomcat服务器AJP进行通信
3.1 官方更新
如确定未使用Tomcat AJP协议,则可以直接讲Tomcat
升级至9.0.3
1、8.5.51
或7.0.100
版本进行漏洞修复。
官方下载链接:
版本号 | 下载地址 |
---|---|
Apache Tomcat 7.0.100 | http://tomcat.apache.org/download-70.cgi |
Apache Tomcat 8.5.51 | http://tomcat.apache.org/download-80.cgi |
Apache Tomcat 9.0.31 | http://tomcat.apache.org/download-90.cgi |
3.2其他防护措施
如果相关用户暂时无法进行版本升级,可根据自身情况采用下列防护措施。
1、若不需要使用Tomcat AJP
协议,可直接关闭AJP Connector
,或将其监听地址改为仅监听本机localhost
。
具体操作:
(1)编辑<CATALINA_BASE>/conf/server.xml
,找到如下行
(<CATALINA_BASE> 为 Tomcat 的工作目录):
<Connector port="8009"protocol="AJP/1.3" redirectPort="8443" />
(2)将此行注释掉(也可删掉该行):
<!--<Connectorport="8009" protocol="AJP/1.3"redirectPort="8443" />-->
(3)保存后需重新启动Tomcat,规则方可生效。
2、若需使用Tomcat AJP协议,可根据使用版本配置协议属性设置认证凭证。
使用Tomcat 7
和Tomcat 9
的用户可为AJP Connector
配置secret
来设置AJP
协议的认证凭证。例如(注意必须将YOUR_TOMCAT_AJP_SECRET更改为一个安全性高、无法被轻易猜解的值):
<Connector port="8009"protocol="AJP/1.3" redirectPort="8443"address="YOUR_TOMCAT_IP_ADDRESS" secret="YOUR_TOMCAT_AJP_SECRET"/>
使用Tomcat 8
的用户可为AJP Connecto
r配置requiredSecret
来设置AJP
协议的认证凭证。例如(注意必须将YOUR_TOMCAT_AJP_SECRET
更改为一个安全性高、无法被轻易猜解的值):
<Connector port="8009"protocol="AJP/1.3" redirectPort="8443"address="YOUR_TOMCAT_IP_ADDRESS"requiredSecret="YOUR_TOMCAT_AJP_SECRET" />