Apache Solr Deserialization Ô¶³Ì´úÂëÖ´Ðзì϶°²È«¹«¸æ

°ä²¼¹¦·ò 2019-03-13

·ì϶±àºÅºÍ¼¶±ð


CVE±àºÅ£ºCVE-2019-0192 £¬Î£ÏÕ¼¶±ð£º¸ßΣ £¬ CVSS·ÖÖµ£º¹Ù·½Î´ÆÀ¶¨


Ó°ÏìÁìÓò


ÊÜÓ°Ïì°æ±¾£º 

Apache Solr 5.0.0 to 5.5.5

Apache Solr 6.0.0 to 6.6.5


·ì϶¸ÅÊö


Apache SolrÊÇÒ»¸ö¿ªÔ´µÄËÑË÷·þÎñÆ÷¡£ÓµÓи߶ȿ¿µÃס¡¢¿ÉÉìËõºÍÈÝ´íµÄ £¬Ìṩɢ²¼Ê½Ë÷Òý¡¢¸´ÔìºÍ¸ºÔØÆ½ºâ²éÎÊ¡¢×Ô¶¯¹ÊÕÏ×ªÒÆºÍ¸´Ô­¡¢¼¯ÖÐÅäÖõÈÖ°ÄÜ¡£


SolrΪÊÀ½çÉϺܶà×î´óµÄ»¥ÁªÍøÕ¾µãÌṩËÑË÷ºÍµ¼º½Ö°ÄÜ¡£Solr ʹÓà Java ˵»°¿ª·¢ £¬ÖØÒª»ùÓÚ HTTP ºÍ Apache Lucene ʵÏÖ¡£


Apache Solr Öд洢µÄ×ÊÔ´ÊÇÒÔ Document Ϊ¶ÔÏó½øÐд洢µÄ¡£Ã¿¸öÎĵµÓÉһϵÁÐµÄ Field ×é³É £¬Ã¿¸ö Field °µÊ¾×ÊÔ´µÄÒ»¸öÊôÐÔ¡£Solr ÖеÄÿ¸ö Document ±ØÒªÓÐÄÜΨһ±êʶÆä×ÔÉíµÄÊôÐÔ £¬Ä¬ÈÏÇé¿öÏÂÕâ¸öÊôÐÔµÄÃû×ÖÊÇ id £¬ÔÚ Schema ÅäÖÃÎļþÖÐʹÓãº<uniqueKey>id</uniqueKey>½øÐÐÃèÊö¡£


¸Ã·ì϶ÐÔÖÊÊÇConfigAPIÔÊÐíͨ¹ýHTTP POSTÒªÇóÅäÖÃSolrµÄJMX·þÎñÆ÷¡£¹¥»÷ÕßÄܹ»Í¨¹ýConfigAPI½«ÆäÅäÖÃÖ¸Ïò¶ñÒâRMI·þÎñÆ÷ £¬ÀûÓÃSolrµÄ²»°²È«·´ÐòÁл¯À´´¥·¢Solr¶ËÉϵÄÔ¶³Ì´úÂëÖ´ÐС£


Ŀǰ¾Ýͳ¼Æ £¬ÔÚÈ«ÇòÁìÓòÄÚ¶Ô»¥ÁªÍøÊ¢¿ªApache SolrµÄ×ʲúÊýÁ¿¶à´ï15Íǫ̀ £¬ÆäÖйéÊôÖйúµØÓòµÄÊÜÓ°Ïì×ʲúÊýÁ¿Îª2ÍòÒÔÉÏ¡£


·ì϶·ÖÎö


Apache SolrÖеÄConfigAPIÔÊÐíÉèÖÃÒ»¸öjmx.serviceUrl £¬Ëü½«´´½¨Ò»¸öеÄJMXConnectorServerFactory £¬²¢Í¨¹ý¡°°ó¶¨¡±²Ù×÷´¥·¢¶ÔÖ¸±êRMI/LDAP·þÎñÆ÷µÄŲÓ᣶ñÒâµÄRMI·þÎñÆ÷Äܹ»ÏìÓ¦ËÁÒâµÄ¶ÔÏó £¬ÕâЩ¶ÔÏó½«ÔÚSolr¶ËʹÓÃjavaµÄObjectInputStream·´ÐòÁл¯ £¬Õâ±»ÒÔΪÊDz»°²È«µÄ¡£ÕâÖÖÀàÐ͵ķì϶Äܹ»ÀûÓÃysoserial¹¤¾ß¡£Æ¾¾ÝÖ¸±êÀàõè¾¶ £¬¹¥»÷ÕßÄܹ»Ê¹ÓÃÆäÖÐÒ»¸ö¡°gadget chain¡±À´´¥·¢Solr¶ËÉϵÄÔ¶³Ì´úÂëÖ´ÐС£


Ê×ÏȱØÒªÏàʶһÏÂconfigAPI £¬ËûÖØÒªÖ°ÄÜÊǼìË÷»òÅú¸ÄÅäÖᣠGETÕÆ¹Ü¼ìË÷ £¬POSTÕÆ¹ÜÖ´ÐкÅÁͨ¹ý´«Èëset-propertyÊôÐÔ £¬»ú¹Ø¶ñÒâµÄÊý¾Ý £¬´«ÈëÖ¸Ïò¶ñÒâµÄrmi·þÎñÆ÷µÄÁ´½Ó £¬¸²¸Ç֮ǰ·þÎñÆ÷µÄÔ­ÉèÖà £¬Ê¹µÃÖ¸±ê·þÎñÆ÷Óë¹¥»÷ÕߵĶñÒârmi·þÎñÆ÷ÏàÁ¬ £¬¹¥»÷ÕßÄܹ»Ê¹ÓÃysoserial¹¤¾ß £¬Í¨¹ýrmi·þÎñÆ÷ÏòÔ¶¶ËÖ¸±ê·þÎñÆ÷·¢ËͺÅÁî £¬²¢ÔÚÖ¸±ê·þÎñÆ÷ÉÏÖ´ÐÐ £¬ÊµÏÖÔ¶³ÌºÅÁîÖ´ÐС£


·ì϶´¥·¢µãÔÚJmxMonitoredMap.classÖеÄnewJMXConnectorServerº¯ÊýÖÐ £¬´Ëº¯ÊýÄܹ»È÷þÎñÆ÷ÓëеÄrmi·þÎñÆ÷ÏàÏνÓ £¬²¢ÇÒÿ´ÎŲÓô˺¯Êý³ÇÊвúÉúÒ»¸ö·ÖÆçµÄ¶ÔÏó¡£ËùÒÔµ±¹¥»÷Õßͨ¹ý¸²¸Ç´«Èë×Ô¼ºµÄrmi·þÎñÆ÷µØÖ· £¬Ö¸±ê·þÎñÆ÷¾Í»áÓëÖ®ÏàÁ¬ £¬Ö´ÐÐÄÚ²¿µÄºÅÁî¡£


´úÂëÈçÏ£º


±¦ÔËÀ³¡¤(ÖйúÇø)×îйٷ½ÍøÕ¾


¸´ÏÖÈçÏ£º

ÏÂÔØApache Solr 5.5.3°æ±¾×÷Ϊ°Ð»ú£¨°ÑÎÈ £¬¿Ï¶¨ÒªÊ¹ÓÃjre7u25ÒÔÏÂjre£© £¬Ö´ÐÐsolr -e techproducts -Dcom.sun.management.jmxremoteÖ¸ÁÆô·þÎñ¡£


ʹÓÃysoserial¹¤¾ß £¬Ö´ÐÐJava -cp ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.JRMPListener 12363 Jdk7u21 "calc"Ö¸Áî £¬¼àÌý12363¶Ë¿Ú¡£¶øºó´«ÈëÒÔÏÂÊý¾Ý£º


±¦ÔËÀ³¡¤(ÖйúÇø)×îйٷ½ÍøÕ¾


³É¹¦µ¯³öÍÆËãÆ÷ £¬Èçͼ£º


±¦ÔËÀ³¡¤(ÖйúÇø)×îйٷ½ÍøÕ¾


½¨¸´½¨Òé


Apache Solr¹Ù·½ÒѾ­ÔÚApache Solr 7.0 ¼°Ö®ºó°æ±¾½¨¸´Á˸÷ì϶ £¬Óû§Äܹ»¸üÐÂÖÁApache Solr 7.0 ¼°Ö®ºó°æ±¾£ºhttp://mirror.bit.edu.cn/apache/lucene/solr/¡£


Apache Solr¹Ù·½ÒѾ­°ä²¼ÁËSOLR-13301.patch ²¹¶¡ £¬Óû§±ØÒª×°Öò¹¶¡ºó³ÁбàÒëSolr £¬²¹¶¡µØÖ·£ºhttps://issues.apache.org/jira/secure/attachment/12961503/SOLR-13301.patch¡£


²Î¿¼Á´½Ó

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