¡¾·ì϶¹«¸æ¡¿Spring Data MongoDB SpEL±í°×ʽעÈë·ì϶£¨CVE-2022-22980£©
°ä²¼¹¦·ò 2022-06-21
0x00 ·ì϶¸ÅÊö
CVE ID | CVE-2022-22980 | ·¢ÏÖ¹¦·ò | 2022-06-21 |
Àà ÐÍ | SpEL ±í°×ʽעÈë | µÈ ¼¶ | ¸ßΣ |
Ô¶³ÌÀûÓà | ÊÇ | Ó°ÏìÁìÓò | |
¹¥»÷¸´ÔÓ¶È | ¸ß | Óû§½»»¥ | ÎÞ |
PoC/EXP | ÔÚÒ°ÀûÓÃ |
0x01 ·ì϶ÏêÇé
Spring Data for MongoDBÊÇ Spring Data ÏîÖ÷ÕÅÒ»²¿ÃÅ£¬¸ÃÏîĿּÔÚΪеÄÊý¾Ý´æ´¢ÌṩÊìϤºÍÒ»ÖµĻùÓÚSpringµÄ±à³ÌÄ£ÐÍ£¬Í¬Ê±±£Áô´æ´¢µÄÌØ¶¨ÌصãºÍÖ°ÄÜ¡£
6ÔÂ20ÈÕ£¬VMware°ä²¼°²È«²¼¸æ£¬½¨¸´ÁËSpring Data MongoDBÖеÄÒ»¸öSpEL ±í°×ʽעÈë·ì϶£¨CVE-2022-22980£©£¬¸Ã·ì϶µÄCVSSv3ÆÀ·ÖΪ8.2¡£
Spring Data MongoDBÀûÓ÷¨Ê½ÔÚ¶ÔÔ̺¬²éÎʲÎÊýռλ·ûµÄSpEL±í°×ʽʹÓÃ@Query»ò@Aggregation×¢½âµÄ²éÎʲ½Öè½øÐÐÖµ°ó°´Ê±£¬ÈôÊÇÊäÈëδ±»¹ýÂË£¬ÔòÈÝÒ×Êܵ½SpEL×¢Èë¹¥»÷¡£
Ó°ÏìÁìÓò
Spring Data MongoDB 3.4.0
Spring Data MongoDB 3.3.0 - 3.3.4
ÒÔ¼°ÆäËü¾ÉµÄ¡¢²»ÊÜÖ§³ÖµÄ°æ±¾¡£
0x02 °²È«½¨Òé
Ŀǰ´Ë·ì϶ÒѾ½¨¸´£¬ÊÜÓ°ÏìÓû§Äܹ»Éý¼¶µ½ÒÔϰ汾£º
Spring Data MongoDB 3.4.1»ò¸ü¸ß°æ±¾£»
Spring Data MongoDB 3.3.5»ò¸ü¸ß°æ±¾¡£
ÏÂÔØÁ´½Ó£º
https://github.com/spring-projects/spring-data-mongodb/tags
»º½â´ëÊ©£º
³Áдquery »òaggregationÉêÃ÷£¬ÔÚ±í°×ʽÖÐʹÓòÎÊýÒýÓã¨"[0]"¶ø²»ÊÇ"?0"£©£»
ÔÚŲÓòéÎʲ½Öèǰ¶Ô²ÎÊý½øÐйýÂË£»
ͨ¹ýÓµÓÐÊÜÏÞQueryMethodEvaluationContextProviderµÄBeanPostProcessor³ÁÐÂÅäÖÃrepository factory bean¡£
×¢£ºµ±Âú×ãÒÔÏÂÈÎһǰÌáʱ£¬Ôò²»ÊÜ´Ë·ì϶ӰÏ죺
l @Query»ò@Aggregation×¢½â²½Öè²»Ô̺¬±í°×ʽ£»
l @Query»ò@Aggregation×¢½â²½Ö費ʹÓñí°×ʽÖеIJÎÊýռλ·ûÓï·¨£»
l ¹ýÂËÁËÓû§ÌṩµÄÊäÈ룻
l ´æ´¢¿âÅäÖÃΪʹÓÃÏÞ¶ÈSpELʹÓõÄQueryMethodObservationContextProvider¡£
0x03 ²Î¿¼Á´½Ó
https://tanzu.vmware.com/security/cve-2022-22980
https://spring.io/blog/2022/06/20/spring-data-mongodb-spel-expression-injection-vulnerability-cve-2022-22980
0x04 °æ±¾ÐÅÏ¢
°æ±¾ | ÈÕÆÚ | Åú¸ÄÄÚÈÝ |
V1.0 | 2022-06-21 | ³õ´Î°ä²¼ |
0x05 ¸½Â¼
GA»Æ½ð¼×¼ò½é
GA»Æ½ð¼×³ÉÁ¢ÓÚ1996Ä꣬ÊÇÓÉÁôÃÀ²©Ê¿ÑÏÍû¼ÑŮʿ´´½¨µÄ¡¢Õ¼ÓÐÆëÈ«×ÔÖ÷֪ʶ²úȨµÄÐÅÏ¢°²È«¸ß¿Æ¼¼ÆóÒµ¡£ÊǹúÄÚ×î¾ßʵÁ¦µÄÐÅÏ¢°²È«²úÆ·¡¢°²È«·þÎñ½â¾ö¹æ»®µÄÁ캽ÆóÒµÖ®Ò»¡£
¹«Ë¾×ܲ¿Î»ÓÚ±±¾©ÊÐÖйشåÈí¼þÔ°GA»Æ½ð¼×´óÏ㬹«Ë¾Ô±¹¤½ü4000ÈË£¬Ñз¢ÍŶÓ1200ÓàÈË, ¼¼Êõ·þÎñÍŶÓ1300ÓàÈË¡£ÔÚÈ«¹ú¸÷Ê¡¡¢ÊÓ×¢×ÔÖÎÇøÉèÁ¢·ÖÖ§»ú¹¹ÁùÊ®¶à¸ö£¬Õ¼Óи²¸ÇÈ«¹úµÄÏúÊÛϵͳ¡¢Çþ·ϵͳºÍ¼¼ÊõÖ§³Öϵͳ¡£¹«Ë¾ÓÚ2010Äê6ÔÂ23ÈÕÔÚÉîÛÚÖÐÓ×°å¹ÒÅÆÉÏÊС££¨¹ÉƱ´úÂ룺002439£©
¶àÄêÀ´£¬GA»Æ½ð¼×ÖÂÁ¦ÓÚÌṩӵÓйú¼Ê¾ºÕùÁ¦µÄ×ÔÖ÷´´Ðµİ²È«²úÆ·ºÍ×î¼Ñʵ¼Ê·þÎñ£¬Ô®ÊÖ¿Í»§È«ÃæÌáÉýÆäIT»ù´¡ÉèÊ©µÄ°²È«ÐԺͳö²úЧÁ¦£¬Îª´òÔìºÍÌáÉý¹ú¼Ê»¯µÄÃñ×åÐÅÏ¢°²È«²úÒµÁì¾üÆ·ÅÆ¶ø²»Ð¸ÖÂÁ¦¡£
¹ØÓÚGA»Æ½ð¼×
GA»Æ½ð¼×°²È«Ó¦¼±ÏìÓ¦ÖÐÐÄÖØÒªÕë¶Ô³ÁÒª°²È«·ì϶µÄÔ¤¾¯¡¢¸ú×ٺͷÖÏíÈ«Çò×îеÄÍþвµý±¨ºÍ°²È«»ã±¨¡£
¹Ø×¢ÒÔϹ«¼ÒºÅ£¬»ñȡȫÇò×îа²È«×ÊѶ£º



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