¡¾Îó²îͨ¸æ¡¿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 ¸½Â¼
¿·¢k8¼ò½é
¿·¢k8½¨ÉèÓÚ1996Ä꣬£¬£¬£¬£¬£¬£¬£¬ÊÇÓÉÁôÃÀ²©Ê¿ÑÏÍû¼ÑŮʿ½¨ÉèµÄ¡¢ÓµÓÐÍêÈ«×ÔÖ÷֪ʶ²úȨµÄÐÅÏ¢Çå¾²¸ß¿Æ¼¼ÆóÒµ¡£¡£¡£¡£¡£ÊǺ£ÄÚ×î¾ßʵÁ¦µÄÐÅÏ¢Çå¾²²úÆ·¡¢Ç徲ЧÀͽâ¾ö¼Æ»®µÄÁ캽ÆóÒµÖ®Ò»¡£¡£¡£¡£¡£
¹«Ë¾×ܲ¿Î»ÓÚ±±¾©ÊÐÖйشåÈí¼þÔ°¿·¢k8´óÏ㬣¬£¬£¬£¬£¬£¬£¬¹«Ë¾Ô±¹¤½ü4000ÈË£¬£¬£¬£¬£¬£¬£¬£¬Ñз¢ÍŶÓ1200ÓàÈË, ÊÖÒÕЧÀÍÍŶÓ1300ÓàÈË¡£¡£¡£¡£¡£ÔÚÌìϸ÷Ê¡¡¢ÊС¢×ÔÖÎÇøÉèÁ¢·ÖÖ§»ú¹¹ÁùÊ®¶à¸ö£¬£¬£¬£¬£¬£¬£¬£¬ÓµÓÐÁýÕÖÌìϵÄÏúÊÛϵͳ¡¢ÇþµÀϵͳºÍÊÖÒÕÖ§³Öϵͳ¡£¡£¡£¡£¡£¹«Ë¾ÓÚ2010Äê6ÔÂ23ÈÕÔÚÉîÛÚÖÐС°å¹ÒÅÆÉÏÊС£¡£¡£¡£¡££¨¹ÉƱ´úÂ룺002439£©
¶àÄêÀ´£¬£¬£¬£¬£¬£¬£¬£¬¿·¢k8ÖÂÁ¦ÓÚÌṩ¾ßÓйú¼Ê¾ºÕùÁ¦µÄ×ÔÖ÷Á¢ÒìµÄÇå¾²²úÆ·ºÍ×î¼Ñʵ¼ùЧÀÍ£¬£¬£¬£¬£¬£¬£¬£¬×ÊÖú¿Í»§ÖÜÈ«ÌáÉýÆäIT»ù´¡ÉèÊ©µÄÇå¾²ÐÔºÍÉú²úЧÄÜ£¬£¬£¬£¬£¬£¬£¬£¬Îª´òÔìºÍÌáÉý¹ú¼Ê»¯µÄÃñ×åÐÅÏ¢Çå¾²¹¤ÒµÁì¾üÆ·ÅÆ¶ø²»Ð¸Æð¾¢¡£¡£¡£¡£¡£
¹ØÓÚ¿·¢k8
¿·¢k8Çå¾²Ó¦¼±ÏìÓ¦ÖÐÐÄÖ÷ÒªÕë¶ÔÖ÷ÒªÇå¾²Îó²îµÄÔ¤¾¯¡¢¸ú×ٺͷÖÏíÈ«Çò×îеÄÍþвÇ鱨ºÍÇå¾²±¨¸æ¡£¡£¡£¡£¡£
¹Ø×¢ÒÔϹ«Öںţ¬£¬£¬£¬£¬£¬£¬£¬»ñȡȫÇò×îÐÂÇå¾²×ÊѶ£º



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