¡¾Îó²îͨ¸æ¡¿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