¿ËÈÕ£¬Áú8¹ú¼Êµç×ÓÆ½Ì¨ÐÅÏ¢Çå¾²ÍþвÇ鱨ÖÐÐļà²âµ½Spring¹Ù·½Ðû²¼Ç徲ͨ¸æ£¬Åû¶ÁËÒ»¸öSpring¿ò¼ÜÎó²î(CVE-2022-22965)£¬µ±Java°æ±¾>=9ʱ¿ÉÔ¶³ÌʵÏÖ´úÂëÖ´ÐУ¬´ËÎó²îÓ°Ïì¹æÄ£ÆÕ±é£¬ÇÒÏÖÔÚÒÑ·ºÆðÏà¹ØÊ¹ÓôúÂ룬Σº¦½Ï´ó¡£ÏÖÔÚSpring¹Ù·½ÒÑÐû²¼Spring¿ò¼ÜÇå¾²°æ±¾£¬Áú8¹ú¼Êµç×ÓÆ½Ì¨ÐÅÏ¢Çå¾²Ó¦¼±ÖÐÐĽ¨ÒéÊÜÓ°Ï쵥λºÍÓû§Á¬Ã¦Éý¼¶ÖÁ×îа汾¡£
Ò»¡¢Îó²îÐÎò
Spring ÊÇÒ»¸öÖ§³Ö¿ìËÙ¿ª·¢µÄJ2EE Ó¦ÓóÌÐò¿ªÔ´¿ò¼Ü£¬ÊÇÏÖÔÚ½ÏΪʢÐÐµÄ Java ¿ª·¢¿ò¼Ü¡£ÓÉÓÚSpring¿ò¼Ü±£´æ´¦Öóͷ£Á÷³ÌȱÏÝ£¬µ¼Ö¿ÉÔ¶³Ì´úÂëÖ´ÐУ¬¹¥»÷Õß¿ÉÔÚδÊÚȨ»á¼ûÏ£¬Í¨¹ý½á¹¹¶ñÒâÇëÇó¿ÉÏòí§Òâ·¾¶ÏÂдÈëÎļþ¡£
Áú8¹ú¼Êµç×ÓÆ½Ì¨ÐÅÏ¢ÒÑÀֳɸ´ÏÖ´ËÎó²î£º
¶þ¡¢Ó°Ïì¹æÄ£
Spring Framework < 5.3.18
Spring Framework < 5.2.20
»òÕ߯äÑÜÉú¿ò¼ÜÇÒ Ä¿µÄÓ¦ÓÃÇéÐÎÖÐËùʹÓõÄjdk °æ±¾>=9
Èý¡¢Çå¾²Ìá·À½¨Òé
ÏÖÔÚSpring¹Ù·½ÒÑÐû²¼Çå¾²²¹¶¡£¬Áú8¹ú¼Êµç×ÓÆ½Ì¨ÐÅÏ¢ÌáÐѸ÷Ïà¹Øµ¥Î»ºÍÓû§ÒªÇ¿»¯Î£º¦Òâʶ£¬ÇÐʵÔöÇ¿Çå¾²Ìá·À£º
1¡¢ÏÖÔÚºÚ¶ÜÌ¬ÊÆ¸ÐÖª¡¢·À»ðǽ¡¢IPSµÈÇå¾²×°±¸¹æÔòÒÑÖ§³Ö¸ÃÎó²î¹¥»÷¼°Ïà¹ØÎó²îµÄ¼ì²â£¬ÇëÏà¹ØÓû§ÊµÊ±Éý¼¶×°±¸¹æÔò¿â£¬Ïà¹ØÌØÕ÷¿âÒÑÐû²¼µ½¹ÙÍø£ºhttp://www.si.net.cn/Technical/upgrade.html
2¡¢ÏÖÔÚSpring¹Ù·½ÒÑÐû²¼Çå¾²°æ±¾£º5.2.20.RELEASEÓë5.3.18°æ±¾¡£½¨ÒéÓû§¾¡¿ì×Բ飬¶ÔÊÜÓ°ÏìµÄ°æ±¾ÊµÊ±Éý¼¶ÖÁ×îа汾£ºhttps://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement
3¡¢ÔÝʱ½â¾ö¼Æ»®£º
a¡¢ÔÚWAF£¨webÓ¦Ó÷À»ðǽ£©µÈÍøÂç·À»¤×°±¸ÉÏ£¬Æ¾Ö¤ÏÖʵ°²ÅÅÓªÒµµÄÁ÷Á¿ÇéÐΣ¬¶ÔGET¡¢POSTÇëÇó·½·¨µÄÁ÷Á¿ÊµÏÖ¶Ô¡°*.class.*¡±¡¢¡°*.Class.*¡±µÈ×Ö·û´®ÌØÕ÷µÄ¹ýÂË£¬²¢ÔÚµ÷½â¹ýÂ˹æÔòºó£¬¶ÔÓªÒµÔËÐÐÇéÐξÙÐиú×Ù²âÊÔ£¬×èÖ¹¶ÔÓªÒµ±¬·¢Ó°Ïì¡£
b¡¢ÔÚÓ¦ÓÃϵͳµÄÏîÄ¿°üÏÂн¨ÒÔÏÂÈ«¾ÖÀ࣬²¢°ü¹ÜÈ«¾ÖÀà±»Spring ¼ÓÔØµ½(ÍÆ¼öÔÚController ËùÔڵİüÖÐÌí¼Ó)¡£Íê³ÉÀàÌí¼Óºó£¬Ðè¶ÔÏîÄ¿¾ÙÐÐÖØÐ±àÒë´ò°üºÍ¹¦Ð§ÑéÖ¤²âÊÔ¡£²¢ÖØÐÂÐû²¼ÏîÄ¿¡£
ËÄ¡¢×Բ鲽·¥
1¡¢Ê×ÏÈÉó²éËùʹÓõÄjava°æ±¾ÊÇ·ñÔÚÓ°Ïì¹æÄ£ÄÚ£¬¿ÉʹÓá°java -version¡±ÏÂÁîÉó²é£¬Èôjdk°æ±¾>=9£¬Ôò¿ÉÄÜÊÜ´ËÎó²îÓ°Ï죬Ðè½øÒ»²½ÅŲéÓ¦ÓÃÊÇ·ñʹÓÃSpring¿ò¼Ü¡£
ÏÂͼjdk°æ±¾Îª 8£¬Ôò²»ÊÜ´ËÎó²îÓ°Ï죺
2¡¢¼ì²éÓ¦ÓÃËùʹÓÃÖÐÐļþÊÇ·ñΪTomcat£¬Èô²»ÊÇ£¬ÔÝʱ²»ÊÜ´ËÎó²îÓ°Ï죬Èç½ÓÄÉTomcatÖÐÐļþ£¬½øÒ»²½È·ÈÏTomcatÊÇ·ñ¿ªÆôÁËaccessÈÕÖ¾¼Í¼¹¦Ð§£¬¿ÉÉó²éTomcatÉèÖÃÎļþconf/server.xml£¬ÈôÈçÏÂaccessÈÕÖ¾ÉèÖÃÒÑ×¢ÊÍ£¬ËµÃ÷먦ÆôaccessÈÕÖ¾¼Í¼¹¦Ð§£¬ÔòÔݲ»ÊÜ´ËÎó²îÓ°Ï죺
Áú8¹ú¼Êµç×ÓÆ½Ì¨ÐÅÏ¢ÒѶÔÏÖÔÚ¹ûÕæµÄ¹¥»÷´úÂëÆÊÎöÈ·ÈÏ£ºÈôTomcat²»¿ªÆô»á¼ûÈÕÖ¾¹¦Ð§£¬ÎÞ·¨Ê¹ÓÃAccessLogValveдÈëºóÃÅÎļþ¡£
3¡¢ÔÚÓ¦ÓÃĿ¼ÏÂËÑË÷ÊÇ·ñʹÓÃÁËspring-beans£¬ÈôÊDZ£´æ Spring¿ò¼ÜµÄÓ¦ÓÃ×é¼þspring-beans-*.jar£¬Ôò˵Ã÷ʹÓÃÁËSpring¿ò¼Ü£¬ÔòÓ¦ÓÃϵͳ¿ÉÄÜÊÜ´ËÓ°Ïì
4¡¢ÈôÔÚÓ¦ÓÃĿ¼ÖÐδËÑË÷µ½spring-beans-*.jar Îļþ£¬Ôò¶ÔÄ¿½ñÓ¦ÓÃËùÒýÓõÄÏà¹Øjar°ü¾ÙÐнâѹ£¬²¢ÔÚÿ¸öjar½âѹĿ¼¼°Ä¿½ñÓ¦ÓÃĿ¼ÏÂͬʱËÑË÷ÊÇ·ñ±£´æspring-beans-*.jarºÍCachedIntrospectionResults À࣬Èô±£´æ£¬ÔòӪҵϵͳ¿ÉÄÜÊÜ´ËÎó²îÓ°Ïì¡£
5¡¢¾È·ÈϸÃÎó²îʹÓÃÌõ¼þÖ®Ò»£ºÐèÒªSpringMVC¿ª·¢Àú³ÌÖнÓÄɰ󶨲ÎÊýµÄÊý¾Ý½á¹¹Ð´·¨£¬ÈôÏîÄ¿µÄ¿ª·¢´úÂëÖÐδʹÓòÎÊý°ó¶¨·½·¨£¬Ôò²»ÊܸÃÎó²îÓ°Ïì
¸½²Î¿¼Á´½Ó£º
https://www.cnvd.org.cn/webinfo/show/7541
https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement
·µ»Ø¶¥²¿