¡¾·ì϶¹«¸æ¡¿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