¡¾Â©¶´Í¨¸æ¡¿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 ¸½Â¼

¶«É­Æ½Ì¨¼ò½é

¶«É­Æ½Ì¨½¨Á¢ÓÚ1996Ä꣬ÊÇÓÉÁôÃÀ²©Ê¿ÑÏÍû¼ÑŮʿ´´½¨µÄ¡¢ÓµÓÐÍêÈ«×ÔÖ÷֪ʶ²úȨµÄÐÅÏ¢Äþ¾²¸ß¿Æ¼¼ÆóÒµ¡£ÊǹúÄÚ×î¾ßʵÁ¦µÄÐÅÏ¢Äþ¾²²úÎï¡¢Äþ¾²·þÎñ½â¾ö·½°¸µÄÁ캽ÆóÒµÖ®Ò»¡£

¹«Ë¾×ܲ¿Î»ÓÚ±±¾©ÊÐÖйشåÈí¼þÔ°¶«É­Æ½Ì¨´óÏ㬹«Ë¾Ô±¹¤½ü4000ÈË£¬Ñз¢ÍŶÓ1200ÓàÈË, ¼¼Êõ·þÎñÍŶÓ1300ÓàÈË¡£ÔÚÈ«¹ú¸÷Ê¡¡¢ÊС¢×ÔÖÎÇøÉèÁ¢·ÖÖ§»ú¹¹ÁùÊ®¶à¸ö£¬ÓµÓÐÁýÕÖÈ«¹úµÄÏúÊÛÌåϵ¡¢ÇþµÀÌåϵºÍ¼¼ÊõÖ§³ÖÌåϵ¡£¹«Ë¾ÓÚ2010Äê6ÔÂ23ÈÕÔÚÉîÛÚÖÐС°å¹ÒÅÆÉÏÊС££¨¹ÉƱ´úÂ룺002439£©

¶àÄêÀ´£¬¶«É­Æ½Ì¨ÖÂÁ¦ÓÚÌṩ¾ßÓйú¼Ê¾ºÕùÁ¦µÄ×ÔÖ÷´´ÐµÄÄþ¾²²úÎïºÍ×î¼Ñʵ¼ù·þÎñ£¬×ÊÖú¿Í»§È«ÃæÌáÉýÆäIT»ù´¡ÉèÊ©µÄÄþ¾²ÐÔºÍÉú²úЧÄÜ£¬Îª´òÔìºÍÌáÉý¹ú¼Ê»¯µÄÃñ×åÐÅÏ¢Äþ¾²¹¤ÒµÁì¾üÆ·ÅÆ¶ø²»Ð¸Å¬Á¦¡£

 

¹ØÓÚ¶«É­Æ½Ì¨

¶«É­Æ½Ì¨Äþ¾²Ó¦¼±ÏìÓ¦ÖÐÐÄÖ÷ÒªÕë¶ÔÖØÒªÄþ¾²Â©¶´µÄÔ¤¾¯¡¢¸ú×ٺͷÖÏíÈ«Çò×îеÄÍþвÇ鱨ºÍÄþ¾²³ÂËß¡£

¹Ø×¢ÒÔϹ«Öںţ¬»ñȡȫÇò×îÐÂÄþ¾²×ÊѶ£º

image.png