一、漏洞公告
2020年2月4日,Apache Tomcat官方發布了新的版本,該版本修復了一個影響所有版本(7.*、8.*、9.*)的文件包含漏洞,但官方暫未發布安全公告,2020年2月20日,CNVD發布了漏洞公告,對應漏洞編號:CNVD-2020-10487,漏洞公告鏈接:https://www.cnvd.org.cn/flaw/show/CNVD-2020-10487
根據公告,Apache Tomcat存在的文件包含漏洞能導致配置文件或源碼等敏感文件被讀取,建議盡快升級到漏洞修復的版本或采取臨時緩解措施加固系統。
Apache Tomcat歷史安全公告請參考:
http://tomcat.apache.org/security-7.html
http://tomcat.apache.org/security-8.html
http://tomcat.apache.org/security-9.html
二、影響范圍
該文件包含漏洞影響以下版本:
7.*分支7.0.100之前版本,建議更新到7.0.100版本;
8.*分支8.5.51之前版本,建議更新到8.5.51版本;
9.*分支9.0.31之前版本,建議更新到9.0.31版本。
官方下載地址:
https://tomcat.apache.org/download-70.cgi
https://tomcat.apache.org/download-80.cgi
https://tomcat.apache.org/download-90.cgi
或Github下載:
https://github.com/apache/tomcat/releases
三、漏洞描述
根據分析,Apache Tomcat AJP協議不安全權限控制可通過AJP Connector直接操作內部數據從而觸發文件包含漏洞,惡意攻擊者可以通過該協議端口(默認8009)提交攻擊代碼,成功利用漏洞能獲取目標系統敏感文件,或在控制可上傳文件的情況下執行惡意代碼獲取管理權限。
四、處置建議
目前,Apache官方已發布9.0.31、8.5.51及7.0.100版本對此漏洞進行修復,建議用戶盡快升級新版本或采取臨時緩解措施:
1.如未使用Tomcat AJP協議:
如未使用 Tomcat AJP 協議,可以直接將 Tomcat 升級到 9.0.31、8.5.51或 7.0.100 版本進行漏洞修復。
如無法立即進行版本更新、或者是更老版本的用戶,建議直接關閉AJPConnector,或將其監聽地址改為僅監聽本機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)保存后需重新啟動,規則方可生效。
2.如果使用了Tomcat AJP協議:
建議將Tomcat立即升級到9.0.31、8.5.51或7.0.100版本進行修復,同時為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"/>
如無法立即進行版本更新、或者是更老版本的用戶,建議為AJPConnector配置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" />