º»¹® ¹Ù·Î°¡±â
ÁÖ¸Þ´º ¹Ù·Î°¡±â
ÇÏ´ÜÁ¤º¸ ¹Ù·Î°¡±â

KT IDC ·Î°í


°í°´Áö¿ø : °í°´ÀÇ °æÀï·ÂÀ» °¡Àå ¼ÒÁßÇÏ°Ô »ý°¢ÇÕ´Ï´Ù.

olleh ±â¾÷°í»ö¼¾ÅÍ

TEL. 1588-0114

Àü±¹ ICC ÀüÈ­¹øÈ£ ¾È³»


¤ýHOME > °í°´¼¾ÅÍ > º¸¾È°øÁö

º¸¾È°øÁö

Spring Java ÇÁ·¹ÀÓ¿öÅ© º¸¾È ¾÷µ¥ÀÌÆ® ±Ç°í (Update, 2022.04.01)

  • µî·ÏÀÏ2022-04-01
  • Á¶È¸¼ö221
  • ÆÄÀÏ

2022.04.01: CVE-2022-22965(Spring4Shell) Ãë¾àÁ¡ º¸¾È ¾÷µ¥ÀÌÆ® Ãß°¡

¡à
°³¿ä
   o Spring
º¸¾ÈÆÀ¿¡¼­ Spring ÇÁ·¹ÀÓ¿öÅ© ¹× Spring Cloud Function °ü·Ã ¿ø°ÝÄÚµå ½ÇÇà Ãë¾àÁ¡À» ÇØ°áÇÑ ÀÓ½ÃÁ¶Ä¡ ¹æ¾È ¹× º¸¾È¾÷µ¥ÀÌÆ® ±Ç°í
   o
°ø°ÝÀÚ´Â ÇØ´ç Ãë¾àÁ¡À» ÀÌ¿ëÇÏ¿© Á¤»ó ¼­ºñ½º¿¡ ÇÇÇØ¸¦ ¹ß»ý½Ãų ¼ö ÀÖÀ¸¹Ç·Î, ÃֽйöÀüÀ¸·Î ¾÷µ¥ÀÌÆ® ±Ç°í
 
¡à
ÁÖ¿ä ³»¿ë
   o Spring Core
¿¡¼­ ¹ß»ýÇÏ´Â ¿ø°ÝÄÚµå½ÇÇà Ãë¾àÁ¡(CVE-2022-22965, Spring4Shell Ãë¾àÁ¡)[1]
   o Spring Cloud Function
¿¡¼­ ¹ß»ýÇÏ´Â ¿ø°ÝÄÚµå½ÇÇà Ãë¾àÁ¡ (CVE-2022-22963)[2]
 
¡à
¿µÇâÀ» ¹Þ´Â ¹öÀü
   o CVE-2022-22965 (Spring4Shell)
       - 1) JDK 9
ÀÌ»óÀÇ 2) Spring ÇÁ·¹ÀÓ¿öÅ© »ç¿ëÇÏ´Â °æ¿ì
       - Spring Framework 5.3.0 ~ 5.3.17, 5.2.0 ~ 5.2.19 ¹× ÀÌÀü ¹öÀü
     ¡Ø JDK 8 ÀÌÇÏÀÇ °æ¿ì Ãë¾àÁ¡ÀÇ ¿µÇâÀ» ¹ÞÁö ¾ÊÀ½

   o CVE-2022-22963
      - Spring Cloud Function 3.1.6 ~ 3.2.2
¹öÀü
    ¡Ø Ãë¾àÁ¡ÀÌ ÇØ°áµÈ ¹öÀü Á¦¿Ü(3.1.7, 3.2.3 ¾÷µ¥ÀÌÆ® ¹öÀü Á¦¿Ü)
 
¡à Spring4Shell
¹öÀü È®ÀÎ ¹æ¹ý
   o JDK
¹öÀü È®ÀÎ
      - ¡°java -version¡±
¸í·É ÀÔ·Â

   o Spring
ÇÁ·¹ÀÓ¿öÅ© »ç¿ë À¯¹« È®ÀÎ
      -
ÇÁ·ÎÁ§Æ®°¡ jar, war ÆÐŰÁö·Î µÅ ÀÖ´Â °æ¿ì zip È®ÀåÀÚ·Î º¯°æÇÏ¿© ¾ÐÃàÇ®±â
      ÀÌÈÄ ¾Æ·¡¿Í °°ÀÌ ¡°spring-beans-.jar¡±, ¡°spring.jar¡±, ¡°CachedIntrospectionResuLts.class¡± ·Î °Ë»ö
 

find . -name spring-beans*.jar

 
¡à
´ëÀÀ¹æ¾È
   ¤· Á¦Á¶»ç ȨÆäÀÌÁö¸¦ ÅëÇØ ÃֽŹöÀüÀ¸·Î ¾÷µ¥ÀÌÆ® Àû¿ë
   ¡Ø Á¦Á¶»ç ȨÆäÀÌÁö¿¡ ½Å±Ô¹öÀüÀÌ °è¼Ó ¾÷µ¥ÀÌÆ®µÇ°í ÀÖ¾î È®ÀÎ ÈÄ ¾÷µ¥ÀÌÆ® Àû¿ë ÇÊ¿ä

   o CVE-2022-22965 (Spring4Shell)
      - Spring Framework 5.3.18, 5.2.2 ¹öÀüÀ¸·Î ¾÷µ¥ÀÌÆ®[4]

  o CVE-2022-22963
      - Spring Cloud Function 3.1.7, 3.2.3 ¹öÀüÀ¸·Î ¾÷µ¥ÀÌÆ®[3]

  ¤· ½Å±Ô ¾÷µ¥ÀÌÆ®°¡ ºÒ°¡´ÉÇÒ °æ¿ì ¾Æ·¡¿Í °°ÀÌ Á¶Ä¡ Àû¿ë
      -  CVE-2022-22965 (Spring4Shell)
      -
ÇÁ·ÎÁ§Æ® ÆÐŰÁö ¾Æ·¡ ÇØ´ç Àü¿ª Ŭ·¡½º »ý¼º ÈÄ ÀçÄÄÆÄÀÏ(Å×½ºÆ® ÇÊ¿ä)

import org.springwork.core.Ordered;
import org.springwork.core.annotation.Order;
import org.springwork.web.bind.WebDataBinder;
import org.springwork.web.bind.annotation.ControllerAdvice;
import org.springwork.web.bind.annotation.InitBinder;
 
@ControllerAdvice
@Order(10000)
public class BinderControllerAdvice {
@InitBinder
public setAllowedFields(WebDataBinder dataBinder) {
String[] denylist = new String[]{"class.*", "Class.*", "*.class.*", "*.Class.*"};
dataBinder.setDisallowedFields(denylist);
}
}

 
¡à
±âŸ ¹®ÀÇ»çÇ×
   o
Çѱ¹ÀÎÅͳÝÁøÈï¿ø »çÀ̹ö¹Î¿ø¼¾ÅÍ: ±¹¹ø¾øÀÌ 118
 
Âü°í»çÀÌÆ®
[1]
Ãë¾àÁ¡ Á¤º¸https://www.rapid7.com/blog/post/2022/03/30/spring4shell-zero-day-vulnerability-in-spring-work/
[2]
Ãë¾àÁ¡ Á¤º¸https://tanzu.vmware.com/security/cve-2022-22963
[3] ½Å±Ô¹öÀü ´Ù¿î·Îµåhttps://repo.maven.apache.org/maven2/org/springwork/cloud/spring-cloud-function-context/
[4] 
Ãë¾àÁ¡ ¾÷µ¥ÀÌÆ® Á¤º¸ : https://spring.io/blog/2022/03/31/spring-framwork-rce-early-annoucement/

¸ñ·Ï
ÀÌÀü±Û ÀÌÀü±ÛÀÌ ¾ø½À´Ï´Ù.

ÇÏ´Ü Á¤º¸