¡¾Îó²îͨ¸æ¡¿Spring FrameworkÔ¶³Ì´úÂëÖ´ÐÐÎó²î(CVE-2022-22965)
Ðû²¼Ê±¼ä 2022-03-310x00 Îó²î¸ÅÊö
CVE ID | CVE-2022-22965 | ʱ ¼ä | 2022-03-31 |
Àà ÐÍ | RCE | µÈ ¼¶ | ÑÏÖØ |
Ô¶³ÌʹÓà | ÊÇ | Ó°Ïì¹æÄ£ | |
¹¥»÷ÖØÆ¯ºó | µÍ | Óû§½»»¥ | ÎÞ |
PoC/EXP | ÒѹûÕæ | ÔÚҰʹÓà |
0x01 Îó²îÏêÇé
Spring Framework ÊÇÒ»¸ö¿ªÔ´µÄÇáÁ¿¼¶J2EEÓ¦ÓóÌÐò¿ª·¢¿ò¼Ü¡£¡£¡£¡£¡£¡£¡£¡£
3ÔÂ31ÈÕ£¬£¬£¬£¬£¬£¬£¬VMwareÐû²¼Ç徲ͨ¸æ£¬£¬£¬£¬£¬£¬£¬ÐÞ¸´ÁËSpring FrameworkÖеÄÔ¶³Ì´úÂëÖ´ÐÐÎó²î£¨CVE-2022-22965£©¡£¡£¡£¡£¡£¡£¡£¡£ÔÚ JDK 9 ¼°ÒÔÉϰ汾ÇéÐÎÏ£¬£¬£¬£¬£¬£¬£¬¿ÉÒÔʹÓôËÎó²îÔÚδÊÚȨµÄÇéÐÎÏÂÔÚÄ¿µÄϵͳÉÏдÈë¶ñÒâ³ÌÐò´Ó¶øÔ¶³ÌÖ´ÐÐí§Òâ´úÂë¡£¡£¡£¡£¡£¡£¡£¡£
¸ÃÎó²îÓ°ÏìÁËÔÚJDK 9+ÉÏÔËÐеÄSpring¿ò¼Ü»òÆäÑÜÉú¿ò¼Ü¹¹½¨µÄÍøÕ¾»òÓ¦Ó㬣¬£¬£¬£¬£¬£¬ÏÖÔÚ¹Ù·½ÒÑÔÚSpring Framework 5.3.18+ºÍ5.2.20+ÖÐÐÞ¸´ÁË´ËÎó²î¡£¡£¡£¡£¡£¡£¡£¡£¼øÓÚ´ËÎó²îµÄPoC/EXPÒѹûÕæ£¬£¬£¬£¬£¬£¬£¬½¨ÒéÏà¹ØÓû§¾¡¿ìÅŲéÐÞ¸´¡£¡£¡£¡£¡£¡£¡£¡£
Ó°Ïì¹æÄ£
ÔËÐÐÇéÐÎΪJDK9¼°ÒÔÉϰ汾µÄ£º
Spring Framework 5.3.0 -5.3.17
Spring Framework 5.2.0 - 5.2.19
ÒÔ¼°ÆäËü¾É°æµÄ¡¢²»ÊÜÖ§³ÖµÄ°æ±¾¡£¡£¡£¡£¡£¡£¡£¡£
0x02 Çå¾²½¨Òé
ͨÓÃÐÞ¸´
ÏÖÔÚ¹Ù·½ÒѾÐÞ¸´ÁË´ËÎó²î£¬£¬£¬£¬£¬£¬£¬ÊÜÓ°ÏìÓû§¿ÉÒÔÉý¼¶¸üе½Spring Framework 5.3.18»ò5.2.20¡£¡£¡£¡£¡£¡£¡£¡£
ÏÂÔØÁ´½Ó£º
https://github.com/spring-projects/spring-framework/tags
Îó²îÅŲé
µ±Í¬Ê±Öª×ãÒÔÏÂÌõ¼þʱ£¬£¬£¬£¬£¬£¬£¬Åú×¢¿ÉÄÜÊÜ´ËÎó²îÓ°Ï죺
l JDK°æ±¾ >= 9£»£»£»
l ʹÓÃSpring¿ò¼Ü»òÑÜÉú¿ò¼Ü£¬£¬£¬£¬£¬£¬£¬Ä¿½ñʹÓÃÁËTomcatÖÐÐļþ£¨ÏÖÔÚ¹ûÕæµÄÎó²îʹÓôúÂëÖ»Õë¶ÔTomcatÖÐÐļþ£¬£¬£¬£¬£¬£¬£¬µ«²»É¨³ý±£´æÆäËüΣº¦£©¡£¡£¡£¡£¡£¡£¡£¡£
ÅŲéÒªÁì
l JDK°æ±¾ºÅÅŲé
Ö´ÐС°java -version"ÏÂÁîÉó²éJDK°æ±¾£¬£¬£¬£¬£¬£¬£¬ÈôÊǰ汾ºÅСÓÚ¼´ÊÇ8£¬£¬£¬£¬£¬£¬£¬Ôò²»ÊÜ´ËÎó²îÓ°Ïì¡£¡£¡£¡£¡£¡£¡£¡£
l Spring¿ò¼ÜʹÓÃÇéÐÎÅÅ–Ë
1.ÈôÊÇӪҵϵͳÏîÄ¿ÒÔwar°üÐÎʽ°²ÅÅ£¬£¬£¬£¬£¬£¬£¬Æ¾Ö¤Èçϵİ취¾ÙÐÐÅжϣº
½âѹwar°ü£º½«warÎļþµÄºó¼¶ÐÞ¸Ä³É .zipÎļþ£»£»£»
ÔÚ½âѹËõĿ¼ÏÂËÑË÷ÊÇ·ñ±£´æspring-beans-*.jarÃûÌõÄÎļþ£¨ÀýÈçspring-beans-5.3.16.jar£©£¬£¬£¬£¬£¬£¬£¬Èç±£´æÔò˵Ã÷ӪҵϵͳʹÓÃÁË Spring¿ò¼Ü¾ÙÐпª·¢£»£»£»
ÈôÊÇspring-beans-*.jarÎļþ²»±£´æ£¬£¬£¬£¬£¬£¬£¬ÔòÔÚ½âѹËõĿ¼ÏÂËÑË÷CachedlntrospectionResults.classÎļþÊÇ·ñ±£´æ£¬£¬£¬£¬£¬£¬£¬Èç±£´æÔò˵Ã÷ӪҵϵͳʹÓÃÁË Spring¿ò¼Ü¾ÙÐпª·¢¡£¡£¡£¡£¡£¡£¡£¡£
2. ÈôÊÇӪҵϵͳÏîÄ¿ÒÔjar°üÐÎʽ×ÔÁ¦ÔËÐУ¬£¬£¬£¬£¬£¬£¬Æ¾Ö¤Èçϵİ취¾ÙÐÐÅжϣº
½âѹjar°ü£º½«jarÎļþµÄºó׺Ð޸ijÉzip£¬£¬£¬£¬£¬£¬£¬½âѹzip Îļþ£»£»£»
ÔÚ½âѹËõĿ¼ÏÂËÑË÷ÊÇ·ñ±£´æspring-beans-*.jarÃûÌõÄjarÎļþ£¨ÀýÈçspring-beans-5.3.16.jar£©£¬£¬£¬£¬£¬£¬£¬Èç±£´æÔò˵Ã÷ӪҵϵͳʹÓÃÁË Spring¿ò¼Ü¾ÙÐпª·¢£»£»£»
ÈôÊÇspring-beans-*.jarÎļþ²»±£´æ£¬£¬£¬£¬£¬£¬£¬ÔòÔÚ½âѹËõĿ¼ÏÂËÑË÷CachedIntrospectionResults.classÎļþÊÇ·ñ±£´æ£¬£¬£¬£¬£¬£¬£¬ÈôÊDZ£´æÔò˵Ã÷ӪҵϵͳʹÓÃÁË Spring¿ò¼Ü¾ÙÐпª·¢¡£¡£¡£¡£¡£¡£¡£¡£
ÔÝʱ²½·¥
Ðèͬʱ°´ÒÔÏÂÁ½¸ö°ì·¨¾ÙÐÐÎó²îµÄÔÝʱÐÞ¸´:
1¡¢ÔÚÓ¦ÓÃÖÐÈ«¾ÖËÑË÷@InitBinder×¢½â£¬£¬£¬£¬£¬£¬£¬¿´¿´ÒªÁìÌåÄÚÊÇ·ñŲÓÃdataBinder.setDisallowedFieldsÒªÁ죬£¬£¬£¬£¬£¬£¬ÈôÊÇ·¢Ã÷´Ë´úÂëÆ¬¶ÏµÄÒýÈë,ÔòÔÚÔÀ´µÄºÚÃûµ¥ÖУ¬£¬£¬£¬£¬£¬£¬Ìí¼Ó{"class.*","Class.*","*.class.*","*.Class.*"}¡£¡£¡£¡£¡£¡£¡£¡£×¢:ÈôÊÇ´Ë´úÂëÆ¬¶ÏʹÓý϶࣬£¬£¬£¬£¬£¬£¬ÐèҪÿ¸öµØ·½¶¼×·¼Ó¡£¡£¡£¡£¡£¡£¡£¡£
2¡¢ÔÚÓÃϵͳµÄÏîÄ¿°üÏÂн¨ÒÔÏÂÈ«¾ÖÀ࣬£¬£¬£¬£¬£¬£¬²¢°ü¹ÜÕâ¸öÀà±»Spring ¼ÓÔØµ½(ÍÆ¼öÔÚControllerËùÔڵİüÖÐÌí¼Ó)¡£¡£¡£¡£¡£¡£¡£¡£Íê³ÉÀàÌí¼Óºó£¬£¬£¬£¬£¬£¬£¬Ðè¶ÔÏîÄ¿¾ÙÐÐÖØÐ±àÒë´ò°üºÍ¹¦Ð§ÑéÖ¤²âÊÔ£¬£¬£¬£¬£¬£¬£¬²¢ÖØÐÂÐû²¼ÏîÄ¿¡£¡£¡£¡£¡£¡£¡£¡£
import org.springframework.core.annotation.Order;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.InitBinder;
@ControllerAdvice
@Order(10000)
public class GlobalControllerAdvicc{
@InitBinder
public void setAllowedFields(webdataBinder dataBinder){
String[]abd=new string[]{"class.*","Class.*","*.class.*","*.Class.*"}; dataBinder.setDisallowedFields(abd);
}
}
0x03 ²Î¿¼Á´½Ó
https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement
https://tanzu.vmware.com/security/cve-2022-22965
https://github.com/spring-projects/spring-framework/
0x04 °æ±¾ÐÅÏ¢
°æ±¾ | ÈÕÆÚ | ÐÞ¸ÄÄÚÈÝ |
V1.0 | 2022-03-31 | Ê×´ÎÐû²¼ |
0x05 ¸½Â¼
ÍòÀû¹ú¼Ê¹ÙÍø¼ò½é
ÍòÀû¹ú¼Ê¹ÙÍø¹«Ë¾½¨ÉèÓÚ1996Ä꣬£¬£¬£¬£¬£¬£¬²¢ÓÚ2010Äê6ÔÂ23ÈÕÔÚÉî½»ËùÖÐС°åÕýʽ¹ÒÅÆÉÏÊУ¬£¬£¬£¬£¬£¬£¬ÊǺ£ÄÚ¼«¾ßʵÁ¦µÄ¡¢ÓµÓÐÍêÈ«×ÔÖ÷֪ʶ²úȨµÄÍøÂçÇå¾²²úÆ·¡¢¿ÉÐÅÇå¾²ÖÎÀíÆ½Ì¨¡¢Ç徲ЧÀÍÓë½â¾ö¼Æ»®µÄ×ÛºÏÌṩÉÌ¡£¡£¡£¡£¡£¡£¡£¡£
¹«Ë¾×ܲ¿Î»ÓÚ±±¾©ÊÐÖйشåÈí¼þÔ°£¬£¬£¬£¬£¬£¬£¬ÔÚÌìϸ÷Ê¡¡¢ÊС¢×ÔÖÎÇøÉèÓзÖÖ§»ú¹¹£¬£¬£¬£¬£¬£¬£¬ÓµÓÐÁýÕÖÌìϵÄÇþµÀϵͳºÍÊÖÒÕÖ§³ÖÖÐÐÄ£¬£¬£¬£¬£¬£¬£¬²¢ÔÚ±±¾©¡¢ÉϺ£¡¢³É¶¼¡¢¹ãÖÝ¡¢³¤É³¡¢º¼ÖÝµÈ¶àµØÉèÓÐÑз¢ÖÐÐÄ¡£¡£¡£¡£¡£¡£¡£¡£
¶àÄêÀ´£¬£¬£¬£¬£¬£¬£¬ÍòÀû¹ú¼Ê¹ÙÍøÖÂÁ¦ÓÚÌṩ¾ßÓйú¼Ê¾ºÕùÁ¦µÄ×ÔÖ÷Á¢ÒìµÄÇå¾²²úÆ·ºÍ×î¼Ñʵ¼ùЧÀÍ£¬£¬£¬£¬£¬£¬£¬×ÊÖú¿Í»§ÖÜÈ«ÌáÉýÆäIT»ù´¡ÉèÊ©µÄÇå¾²ÐÔºÍÉú²úЧÄÜ£¬£¬£¬£¬£¬£¬£¬Îª´òÔìºÍÌáÉý¹ú¼Ê»¯µÄÃñ×åÐÅÏ¢Çå¾²¹¤ÒµÁì¾üÆ·ÅÆ¶ø²»Ð¸Æð¾¢¡£¡£¡£¡£¡£¡£¡£¡£
¹ØÓÚÍòÀû¹ú¼Ê¹ÙÍø
ÍòÀû¹ú¼Ê¹ÙÍøÇå¾²Ó¦¼±ÏìÓ¦ÖÐÐÄÖ÷ÒªÕë¶ÔÖ÷ÒªÇå¾²Îó²îµÄÔ¤¾¯¡¢¸ú×ٺͷÖÏíÈ«Çò×îеÄÍþвÇ鱨ºÍÇå¾²±¨¸æ¡£¡£¡£¡£¡£¡£¡£¡£
¹Ø×¢ÒÔϹ«Öںţ¬£¬£¬£¬£¬£¬£¬»ñȡȫÇò×îÐÂÇå¾²×ÊѶ£º



¾©¹«Íø°²±¸11010802024551ºÅ