Oracle Coherence&WebLogic·´ÐòÁл¯Ô¶³Ì´úÂëÖ´Ðзì϶·çÏÕ¹«¸æ

°ä²¼¹¦·ò 2020-03-06

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


CVE±àºÅ£ºCVE-2020-2555£¬Î£ÏÕ¼¶±ð£ºÑϳÁ£¬CVSS·ÖÖµ£º9.8


Ó°Ïì°æ±¾


Oracle Coherence 3.7.1.17

Oracle Coherence 12.1.3.0.0

Oracle Coherence 12.2.1.3.0

Oracle Coherence 12.2.1.4.0


·ì϶¸ÅÊö


½üÈÕ£¬Ô̺¬ÔÚ1Ô·ÝOracle¹Ø¼ü²¹¶¡·¨Ê½¸üÐÂCPU£¨Critical Patch Update£©µÄ·ì϶£¬Oracle Coherence·´ÐòÁл¯Ô¶³Ì´úÂëÖ´Ðзì϶£¨CVE-2020-2555£©µÄϸ½ÚÒѱ»¹«¿ª ¡£


Oracle CoherenceΪOracleÈÚºÏÖÐÑë¼þÖеIJúÆ·£¬ÊÇÒµ½çµ±ÏȵÄÄÚ´æÊý¾ÝÍø¸ñ½â¾ö¹æ»®£¬ËüÄÜΪ¹«Ë¾ºÍ×éÖ¯Ìṩ¶Ô³£ÓÃÊý¾ÝµÄ¼±¾ç½Ó¼û ¡£ÔÚWebLogic 12c¼°ÒÔÉϰ汾ÖÐĬÈϼ¯³Éµ½WebLogic×°ÖðüÖÐ ¡£Oracle CoherenceÖеķ´ÐòÁл¯Ô¶³Ì´úÂëÖ´Ðзì϶ÔÊÐíδ¾­Éí·ÝÑéÖ¤µÄ¹¥»÷Õßͨ¹ý¾«ÐÄ»ú¹ØµÄT3ÍøÂçºÍ̸ҪÇó½øÐй¥»÷ ¡£³É¹¦ÀûÓø÷ì϶µÄ¹¥»÷ÕßÄܹ»ÔÚÖ¸±êÖ÷»úÉÏÖ´ÐÐËÁÒâ´úÂë ¡£


·ì϶ÑéÖ¤


·ì϶ϸ½ÚÏê¼û£ºhttps://www.zerodayinitiative.com/blog/2020/3/5/cve-2020-2555-rce-through-a-deserialization-bug-in-oracles-weblogic-server ¡£


ͨ¹ý²¹¶¡ÕÒµ½·ì϶ÀûÓõã


CVE-2020-2555·ì϶ÊÇÓÉÓÚ¹¥»÷ÕßÄܹ»´«Èë¿É¿Ø²ÎÊý²¢Å²ÓÃjava²½Öè ¡£ÔÚJavaÖУ¬ÀàÖеÄreadObject()»òreadExternal()²½ÖèÄܹ»±»×Ô¶¯Å²Óà ¡£ÕâÁ½ÖÖ²½ÖèÒÔ¼°´ÓËüÃÇÄÚ²¿¿É»ñµÃµÄÈÎºÎÆäËû²½Öè¶¼Äܹ»ÊÓΪ·´ÐòÁл¯gadgetµÄÆðÔ´ ¡£


CVE-2020-2555µÄ²¹¶¡Öиü¸ÄÁËLimitFilterÀàÖеÄtoString()²½Ö裬Èçͼ£º


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


²¹¶¡ÔÚtoString()ÖÐɾ³ýÁ˶Ôextract()²½ÖèµÄËùÓÐŲÓÃÓï¾ä£¬ÏÂÎĽ«½éÉÜextract()²½ÖèµÄ³ÁÒªÐÔ ¡£´Ë´¦Åú¸Ä³ö¸ñÓÐȤ£¬ÓÉÓÚÎÒÃÇÄܹ»Í¨¹ý¸÷Àà³ß¶ÈJREÀà(ÀýÈçBadAttributeValueExpException)µÄreadObject()²½Öè½Ó¼ûtoString()ÈçÉÏÃæµÄ´úÂëËùʾ£¬BadAttributeValueExpExceptionÀàµÄÐòÁл¯Ê·ýÄܹ»ÓÃÓÚŲÓÃËÁÒâÀàµÄtoString()²½Öè ¡£´Ë²½Öè¿ÉÓÃÓÚ½Ó¼ûÊܴ˲¹¶¡Ó°ÏìµÄLimitFilterÀàµÄtoString()²½Öè ¡£


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


ÓйØÊ¹ÓÃtoString()×÷ΪÈë¿ÚµãµÄgadgetµÄʾÀý£¬Çë°Ý¼ûysererialÏîÖ÷ÕÅCommonsCollections5 gadget  ¡£


SinkµãµÄѰÕÒ


SinkµãÖ¸µÄÊÇÓµÓи÷Àั×÷ÓõÄJava²½ÖèŲÓã¬ÕâÀั×÷ÓÃÔ̺¬£º      


-ͨ¹ýŲÓÃFileOutputStream.write()ËÁÒâ´´½¨Îļþ ¡£      

-ͨ¹ýŲÓÃRuntime.exec()ËÁÒâÖ´ÐкÅÁî ¡£      

-ͨ¹ýŲÓÃMethod.invoke()µÄËÁÒâ²½ÖèŲÓà ¡£


¶ÔÓÚ´Ë·ì϶£¬GA»Æ½ð¼×³ÁµãÊǶÔMethod.invoke()µÄŲÓ㬴˲½ÖèµÄŲÓÃÄܹ»Í¨¹ý·´ÉäÀ´Å²ÓÃËÁÒâJava²½Öè ¡£Ïàʶ¸ÃÐÅÏ¢ºó£¬ÎÒÃÇÄܹ»²éÕÒËùÓдæÔÚextract()²½ÖèµÄÊ·ý£¬²¢ÇÒ×îÖÕ»áŲÓÃMethod.invoke() ¡£ÔÚCoherence¿âÖУ¬ËƺõÖ»ÓÐÕâÑùÒ»¸ö¿ÉÐòÁл¯ÀàµÄÊ·ý£¨ÊµÏÖSerializable»òExternalizable½Ó¿Ú£© ¡£


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


²é¿´ReflectionExtractorÀàºó£¬ÎÒÃÇÄܹ»È·ÈÏÇ°ÃæµÄ²Â²â£º


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


ReflectionExtractorÌṩΣÏÕµÄÔ­ÓÔÊÐí¹¥»÷ÕßŲÓÃËÁÒâ²½Ö裬²¢ÇÒ¹¥»÷ÕßÄܹ»½ÚÔìÆäÖеIJ½ÖèºÍ²ÎÊý ¡£


ʵÏÖRCE


ͨ³££¬ÀûÓÃÔ¶³Ì´úÂëÖ´Ðзì϶±ØÒª¶à¸ö²½ÖèŲÓà ¡£ÀýÈ磬ÔÚÊ¢ÐеÄApache Commons CollectionsµÄgadget£¬¹¥»÷Õß±ØÒªÊ¹ÓÃChainedTransformer½«ËÁÒâ²½ÖèŲÓô®½ÓÆðÀ´£¬´Ó¶øÊµÏÖRCE ¡£Óë´ËÀàËÆ£¬Coherence¿âÖÐÒ²ÌṩÁËÕâÑùÒ»¸öÀà(ChainedExtractor)£¬Äܹ»ÈÃÎÒÃÇ´®½Óextract()ŲÓãº


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


½«ÒÔÉÏÐÅÏ¢½áºÏÆðÀ´£¬ÎÒÃÇÄܹ»Ê¹ÓÃÈçÏÂŲÓÃÁ´£¬×îÖÕʵÏÖÔ¶³Ì´úÂëÖ´ÐУ¬ÈôÊÇÖ¸±ê»·¾³Ê¹ÓÃÁËCoherence¿â£¬²¢ÇÒ¹¥»÷ÕßÄܹ»Í¶µÝ¶ñÒâÐòÁл¯¶ÔÏó£¬ÄÇô¹¥»÷Õß¾ÍÄÜʵÏÖÔ¶³Ì´úÂëÖ´ÐÐ ¡£


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



½¨¸´½¨Òé


¹Ù·½ÒѾ­Õë¶Ô´Ë·ì϶°ä²¼²¹¶¡£¬ÇëÊÜÓ°ÏìµÄÓû§²Î¿¼ÒÔÏÂÁ´½Ó×°Öò¹¶¡¸üУºhttps://www.oracle.com/security-alerts/cpujan2020.html ¡£


һʱ½¨¸´½¨Òé


ÈôÓйØÓû§ÁÙʱÎÞ·¨×°Öý¨¸´²¹¶¡£¬¿Éͨ¹ý½ÚÔìT3ºÍ̸µÄ½Ó¼ûÀ´Ò»Ê±×è¶ÏÕë¶ÔÀûÓÃT3ºÍ̸·ì϶µÄ¹¥»÷ ¡£


1. ½øÈëweblogic½ÚÔį̀£¬ÔÚbase_domainµÄÅäÖÃÒ³ÃæÖУ¬½øÈë¡°°²È«¡±Ñ¡Ïî¿¨Ò³Ãæ£¬µã»÷¡°É¸Ñ¡Æ÷¡±£¬½øÈëÏνÓɸѡÆ÷ÅäÖà ¡£

2. ÔÚÏνÓɸѡÆ÷ÖÐÊäÈ룺weblogic.security.net.ConnectionFilterImpl£¬ÔÚÏνÓɸѡÆ÷¹æ¶¨ÖÐÊäÈë127.0.0.1 * * allow t3 t3s£¬0.0.0.0/0 * * deny t3 t3s(t3 ºÍt3s ºÍ̸µÄËùÓж˿ÚÖ»ÔÊÐí±¾µØ½Ó¼û) ¡£

3. ±£Áô²¢³ÁÆô·þÎñÆ÷¼´¿ÉÉúЧ ¡£


²Î¿¼Á´½Ó


https://www.zerodayinitiative.com/blog/2020/3/5/cve-2020-2555-rce-through-a-deserialization-bug-in-oracles-weblogic-server