
Spring 라이브러리의 새로운 취약점: 위험에 처해 있는지 확인하는 방법과 대처 방법
최근 자바 커뮤니티에서 가장 인기 있는 라이브러리 중 하나인 스프링 라이브러리가 원격 코드 실행 (RCE) 과 관련된 취약점 2개를 공개했습니다.취약점이 발생할 위험이 있는지, 어떤 조치를 취해야 하는지 쉽게 이해할 수 있도록 “Spring4Shell”과 “Spring Cloud Function”에 대한 알려진 세부 정보를 분류했습니다.
취약점 1 - “스프링4쉘” (CVE-2022-22965)
2022년 3월 29일, 커뮤니티는 Spring Core (SC) 를 대상으로 하는 익스플로잇의 개념 증명 스크린샷이 포함된 일련의 트윗을 발견했습니다. 이를 통해 가장 최근에 출시된 버전인 5.3.17을 포함하여 Spring Core의 모든 버전에서 원격 코드 실행이 가능합니다.
어떤 애플리케이션이 위험에 처해 있나요?
현재 Tomcat에서 호스팅되는 애플리케이션만 이 새로운 익스플로잇의 위험에 노출된 것으로 확인되었습니다.Embedded Tomcat Servlet Container나 Tomcat에서 호스팅하지 않는 다른 애플리케이션에 대한 공격이 성공한 것으로 입증되지는 않았지만, 그렇다고 해서 향후 이러한 프레임워크에 대한 위협이 성공할 가능성을 배제할 수는 없습니다.
스프링 공식 출시 성명서 취약성에 대한 현재 이해에 따르면 취약성이 되려면 다음 조건을 충족해야 함을 명확히 하는 취약점에 대해 설명합니다.
- JDK 9 이상
- 서블릿 컨테이너로서의 아파치 톰캣
- 기존 WAR로 패키징됨 (스프링 부트 실행 가능 jar과 대조)
- 스프링-webmvc 또는 스프링-웹플럭스 의존성
- 스프링 프레임워크 버전 5.3.0~5.3.17, 5.2.0~5.2.19 및 이전 버전
“Spring4Shell” 익스플로이트는 어떻게 작동하나요?
악용은 메서드 시그니처에서 일반 올드 자바 오브젝트 (POJO) 를 사용하는 요청에서 “데이터 바인딩" (org.SpringFramework.web.bind.WebDataBinder) 을 사용하는 데 의존합니다.

여기서 Foo 클래스는 POJO 클래스이며 다음과 같이 정의할 수 있습니다.참고로 실제 클래스는 클래스 로더에 의해 로드되는 한 중요하지 않습니다.

이와 같은 메서드로 요청을 처리할 때 클래스 로더는 클래스를 해결하는 데 사용됩니다.클래스 로더는 가능한 모든 유형을 먼저 메모리에 미리 로드할 필요 없이 런타임에 클래스를 로드하는 역할을 합니다.새 클래스를 사용할 때 로드할.jar 파일을 알아냅니다.
이 취약점에 대한 가장 최신의 심층적인 최신 정보는 Spring에서 직접 확인할 수 있습니다. 블로그 게시물(잠재적 수정 또는 해결 방법 포함)
취약점 2 - 스프링 클라우드 함수 (CVE-2022-22963)
2022년 3월 27일, 사이버 켄드라는 패치가 존재하지 않는 스프링 클라우드 함수의 0일 원격 코드 실행 (RCE) 취약점에 대한 세부 정보를 공개했습니다.이 취약점에는 ID가 할당되었습니다. CVE-2022-22963: 스프링 익스프레션 리소스 액세스 취약성.
어떤 애플리케이션이 위험에 처해 있나요?
이 취약점은 다음과 같은 조건에서 애플리케이션에 영향을 미쳤습니다.
- JDK 9 이상
- 스프링 클라우드 함수 버전 3.1.6 (또는 그 이하), 3.2.2 (또는 그 이하) 또는 지원되지 않는 버전
착취는 어떻게 이루어지나요?
스프링 클라우드 함수는 개발자가 일반적으로 구성 또는 코드를 통해 수행되는 spring.cloud.function.routing-expression 속성을 통해 라우팅이 처리되는 방식을 구성할 수 있는 기능을 제공합니다.이는 “스프링 표현식 언어" (SpEL) 를 받아들이는 강력한 기능입니다.이 0일 취약점을 통해 요청의 HTTP 헤더를 통해 이 속성을 설정할 수 있다는 사실을 알게 되었습니다. 즉, 공격자는 RoutingFunction 엔드포인트에 대한 HTTP 요청에 SeL 코드를 직접 임베드하여 임의의 코드를 실행할 수 있습니다.
위험을 완화하기 위해 사용자는 어떤 조치를 취해야 할까요?
스프링 하스 공개 버전 3.1.7 및 3.2.3에서는 HTTP 헤더를 통해 이 속성을 설정할 수 없도록 하여 취약성을 완화함으로써 이 문제를 해결합니다.두 버전 중 하나로 업그레이드한 후에는 추가 단계가 필요하지 않습니다.
개발자가 보다 안전한 코드를 작성할 수 있도록 지원하는 방법에 대해 자세히 알아보고 싶으신가요?데모 예약 또는 당사의 무료 보안 코딩 가이드라인을 살펴보세요 보안 코드 코치.
출처
- https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities/
- https://www.rapid7.com/blog/post/2022/03/30/spring4shell-zero-day-vulnerability-in-spring-framework/


최근 자바 커뮤니티에서 가장 인기 있는 라이브러리 중 하나인 스프링 라이브러리가 원격 코드 실행 (RCE) 과 관련된 취약점 2개를 공개했습니다.'Spring4Shell'과 'Spring Cloud Function'에 대한 알려진 세부 정보를 세분화하여 위험에 노출되었는지, 위험에 노출됐을 경우 어떻게 대처해야 하는지를 이해하는 데 도움이 됩니다.

Secure Code Warrior는 전체 소프트웨어 개발 라이프사이클에서 코드를 보호하고 사이버 보안을 최우선으로 생각하는 문화를 조성할 수 있도록 조직을 위해 여기 있습니다.AppSec 관리자, 개발자, CISO 또는 보안 관련 누구든 관계없이 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 도와드릴 수 있습니다.
데모 예약

최근 자바 커뮤니티에서 가장 인기 있는 라이브러리 중 하나인 스프링 라이브러리가 원격 코드 실행 (RCE) 과 관련된 취약점 2개를 공개했습니다.취약점이 발생할 위험이 있는지, 어떤 조치를 취해야 하는지 쉽게 이해할 수 있도록 “Spring4Shell”과 “Spring Cloud Function”에 대한 알려진 세부 정보를 분류했습니다.
취약점 1 - “스프링4쉘” (CVE-2022-22965)
2022년 3월 29일, 커뮤니티는 Spring Core (SC) 를 대상으로 하는 익스플로잇의 개념 증명 스크린샷이 포함된 일련의 트윗을 발견했습니다. 이를 통해 가장 최근에 출시된 버전인 5.3.17을 포함하여 Spring Core의 모든 버전에서 원격 코드 실행이 가능합니다.
어떤 애플리케이션이 위험에 처해 있나요?
현재 Tomcat에서 호스팅되는 애플리케이션만 이 새로운 익스플로잇의 위험에 노출된 것으로 확인되었습니다.Embedded Tomcat Servlet Container나 Tomcat에서 호스팅하지 않는 다른 애플리케이션에 대한 공격이 성공한 것으로 입증되지는 않았지만, 그렇다고 해서 향후 이러한 프레임워크에 대한 위협이 성공할 가능성을 배제할 수는 없습니다.
스프링 공식 출시 성명서 취약성에 대한 현재 이해에 따르면 취약성이 되려면 다음 조건을 충족해야 함을 명확히 하는 취약점에 대해 설명합니다.
- JDK 9 이상
- 서블릿 컨테이너로서의 아파치 톰캣
- 기존 WAR로 패키징됨 (스프링 부트 실행 가능 jar과 대조)
- 스프링-webmvc 또는 스프링-웹플럭스 의존성
- 스프링 프레임워크 버전 5.3.0~5.3.17, 5.2.0~5.2.19 및 이전 버전
“Spring4Shell” 익스플로이트는 어떻게 작동하나요?
악용은 메서드 시그니처에서 일반 올드 자바 오브젝트 (POJO) 를 사용하는 요청에서 “데이터 바인딩" (org.SpringFramework.web.bind.WebDataBinder) 을 사용하는 데 의존합니다.

여기서 Foo 클래스는 POJO 클래스이며 다음과 같이 정의할 수 있습니다.참고로 실제 클래스는 클래스 로더에 의해 로드되는 한 중요하지 않습니다.

이와 같은 메서드로 요청을 처리할 때 클래스 로더는 클래스를 해결하는 데 사용됩니다.클래스 로더는 가능한 모든 유형을 먼저 메모리에 미리 로드할 필요 없이 런타임에 클래스를 로드하는 역할을 합니다.새 클래스를 사용할 때 로드할.jar 파일을 알아냅니다.
이 취약점에 대한 가장 최신의 심층적인 최신 정보는 Spring에서 직접 확인할 수 있습니다. 블로그 게시물(잠재적 수정 또는 해결 방법 포함)
취약점 2 - 스프링 클라우드 함수 (CVE-2022-22963)
2022년 3월 27일, 사이버 켄드라는 패치가 존재하지 않는 스프링 클라우드 함수의 0일 원격 코드 실행 (RCE) 취약점에 대한 세부 정보를 공개했습니다.이 취약점에는 ID가 할당되었습니다. CVE-2022-22963: 스프링 익스프레션 리소스 액세스 취약성.
어떤 애플리케이션이 위험에 처해 있나요?
이 취약점은 다음과 같은 조건에서 애플리케이션에 영향을 미쳤습니다.
- JDK 9 이상
- 스프링 클라우드 함수 버전 3.1.6 (또는 그 이하), 3.2.2 (또는 그 이하) 또는 지원되지 않는 버전
착취는 어떻게 이루어지나요?
스프링 클라우드 함수는 개발자가 일반적으로 구성 또는 코드를 통해 수행되는 spring.cloud.function.routing-expression 속성을 통해 라우팅이 처리되는 방식을 구성할 수 있는 기능을 제공합니다.이는 “스프링 표현식 언어" (SpEL) 를 받아들이는 강력한 기능입니다.이 0일 취약점을 통해 요청의 HTTP 헤더를 통해 이 속성을 설정할 수 있다는 사실을 알게 되었습니다. 즉, 공격자는 RoutingFunction 엔드포인트에 대한 HTTP 요청에 SeL 코드를 직접 임베드하여 임의의 코드를 실행할 수 있습니다.
위험을 완화하기 위해 사용자는 어떤 조치를 취해야 할까요?
스프링 하스 공개 버전 3.1.7 및 3.2.3에서는 HTTP 헤더를 통해 이 속성을 설정할 수 없도록 하여 취약성을 완화함으로써 이 문제를 해결합니다.두 버전 중 하나로 업그레이드한 후에는 추가 단계가 필요하지 않습니다.
개발자가 보다 안전한 코드를 작성할 수 있도록 지원하는 방법에 대해 자세히 알아보고 싶으신가요?데모 예약 또는 당사의 무료 보안 코딩 가이드라인을 살펴보세요 보안 코드 코치.
출처
- https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities/
- https://www.rapid7.com/blog/post/2022/03/30/spring4shell-zero-day-vulnerability-in-spring-framework/

최근 자바 커뮤니티에서 가장 인기 있는 라이브러리 중 하나인 스프링 라이브러리가 원격 코드 실행 (RCE) 과 관련된 취약점 2개를 공개했습니다.취약점이 발생할 위험이 있는지, 어떤 조치를 취해야 하는지 쉽게 이해할 수 있도록 “Spring4Shell”과 “Spring Cloud Function”에 대한 알려진 세부 정보를 분류했습니다.
취약점 1 - “스프링4쉘” (CVE-2022-22965)
2022년 3월 29일, 커뮤니티는 Spring Core (SC) 를 대상으로 하는 익스플로잇의 개념 증명 스크린샷이 포함된 일련의 트윗을 발견했습니다. 이를 통해 가장 최근에 출시된 버전인 5.3.17을 포함하여 Spring Core의 모든 버전에서 원격 코드 실행이 가능합니다.
어떤 애플리케이션이 위험에 처해 있나요?
현재 Tomcat에서 호스팅되는 애플리케이션만 이 새로운 익스플로잇의 위험에 노출된 것으로 확인되었습니다.Embedded Tomcat Servlet Container나 Tomcat에서 호스팅하지 않는 다른 애플리케이션에 대한 공격이 성공한 것으로 입증되지는 않았지만, 그렇다고 해서 향후 이러한 프레임워크에 대한 위협이 성공할 가능성을 배제할 수는 없습니다.
스프링 공식 출시 성명서 취약성에 대한 현재 이해에 따르면 취약성이 되려면 다음 조건을 충족해야 함을 명확히 하는 취약점에 대해 설명합니다.
- JDK 9 이상
- 서블릿 컨테이너로서의 아파치 톰캣
- 기존 WAR로 패키징됨 (스프링 부트 실행 가능 jar과 대조)
- 스프링-webmvc 또는 스프링-웹플럭스 의존성
- 스프링 프레임워크 버전 5.3.0~5.3.17, 5.2.0~5.2.19 및 이전 버전
“Spring4Shell” 익스플로이트는 어떻게 작동하나요?
악용은 메서드 시그니처에서 일반 올드 자바 오브젝트 (POJO) 를 사용하는 요청에서 “데이터 바인딩" (org.SpringFramework.web.bind.WebDataBinder) 을 사용하는 데 의존합니다.

여기서 Foo 클래스는 POJO 클래스이며 다음과 같이 정의할 수 있습니다.참고로 실제 클래스는 클래스 로더에 의해 로드되는 한 중요하지 않습니다.

이와 같은 메서드로 요청을 처리할 때 클래스 로더는 클래스를 해결하는 데 사용됩니다.클래스 로더는 가능한 모든 유형을 먼저 메모리에 미리 로드할 필요 없이 런타임에 클래스를 로드하는 역할을 합니다.새 클래스를 사용할 때 로드할.jar 파일을 알아냅니다.
이 취약점에 대한 가장 최신의 심층적인 최신 정보는 Spring에서 직접 확인할 수 있습니다. 블로그 게시물(잠재적 수정 또는 해결 방법 포함)
취약점 2 - 스프링 클라우드 함수 (CVE-2022-22963)
2022년 3월 27일, 사이버 켄드라는 패치가 존재하지 않는 스프링 클라우드 함수의 0일 원격 코드 실행 (RCE) 취약점에 대한 세부 정보를 공개했습니다.이 취약점에는 ID가 할당되었습니다. CVE-2022-22963: 스프링 익스프레션 리소스 액세스 취약성.
어떤 애플리케이션이 위험에 처해 있나요?
이 취약점은 다음과 같은 조건에서 애플리케이션에 영향을 미쳤습니다.
- JDK 9 이상
- 스프링 클라우드 함수 버전 3.1.6 (또는 그 이하), 3.2.2 (또는 그 이하) 또는 지원되지 않는 버전
착취는 어떻게 이루어지나요?
스프링 클라우드 함수는 개발자가 일반적으로 구성 또는 코드를 통해 수행되는 spring.cloud.function.routing-expression 속성을 통해 라우팅이 처리되는 방식을 구성할 수 있는 기능을 제공합니다.이는 “스프링 표현식 언어" (SpEL) 를 받아들이는 강력한 기능입니다.이 0일 취약점을 통해 요청의 HTTP 헤더를 통해 이 속성을 설정할 수 있다는 사실을 알게 되었습니다. 즉, 공격자는 RoutingFunction 엔드포인트에 대한 HTTP 요청에 SeL 코드를 직접 임베드하여 임의의 코드를 실행할 수 있습니다.
위험을 완화하기 위해 사용자는 어떤 조치를 취해야 할까요?
스프링 하스 공개 버전 3.1.7 및 3.2.3에서는 HTTP 헤더를 통해 이 속성을 설정할 수 없도록 하여 취약성을 완화함으로써 이 문제를 해결합니다.두 버전 중 하나로 업그레이드한 후에는 추가 단계가 필요하지 않습니다.
개발자가 보다 안전한 코드를 작성할 수 있도록 지원하는 방법에 대해 자세히 알아보고 싶으신가요?데모 예약 또는 당사의 무료 보안 코딩 가이드라인을 살펴보세요 보안 코드 코치.
출처
- https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities/
- https://www.rapid7.com/blog/post/2022/03/30/spring4shell-zero-day-vulnerability-in-spring-framework/
최근 자바 커뮤니티에서 가장 인기 있는 라이브러리 중 하나인 스프링 라이브러리가 원격 코드 실행 (RCE) 과 관련된 취약점 2개를 공개했습니다.취약점이 발생할 위험이 있는지, 어떤 조치를 취해야 하는지 쉽게 이해할 수 있도록 “Spring4Shell”과 “Spring Cloud Function”에 대한 알려진 세부 정보를 분류했습니다.
취약점 1 - “스프링4쉘” (CVE-2022-22965)
2022년 3월 29일, 커뮤니티는 Spring Core (SC) 를 대상으로 하는 익스플로잇의 개념 증명 스크린샷이 포함된 일련의 트윗을 발견했습니다. 이를 통해 가장 최근에 출시된 버전인 5.3.17을 포함하여 Spring Core의 모든 버전에서 원격 코드 실행이 가능합니다.
어떤 애플리케이션이 위험에 처해 있나요?
현재 Tomcat에서 호스팅되는 애플리케이션만 이 새로운 익스플로잇의 위험에 노출된 것으로 확인되었습니다.Embedded Tomcat Servlet Container나 Tomcat에서 호스팅하지 않는 다른 애플리케이션에 대한 공격이 성공한 것으로 입증되지는 않았지만, 그렇다고 해서 향후 이러한 프레임워크에 대한 위협이 성공할 가능성을 배제할 수는 없습니다.
스프링 공식 출시 성명서 취약성에 대한 현재 이해에 따르면 취약성이 되려면 다음 조건을 충족해야 함을 명확히 하는 취약점에 대해 설명합니다.
- JDK 9 이상
- 서블릿 컨테이너로서의 아파치 톰캣
- 기존 WAR로 패키징됨 (스프링 부트 실행 가능 jar과 대조)
- 스프링-webmvc 또는 스프링-웹플럭스 의존성
- 스프링 프레임워크 버전 5.3.0~5.3.17, 5.2.0~5.2.19 및 이전 버전
“Spring4Shell” 익스플로이트는 어떻게 작동하나요?
악용은 메서드 시그니처에서 일반 올드 자바 오브젝트 (POJO) 를 사용하는 요청에서 “데이터 바인딩" (org.SpringFramework.web.bind.WebDataBinder) 을 사용하는 데 의존합니다.

여기서 Foo 클래스는 POJO 클래스이며 다음과 같이 정의할 수 있습니다.참고로 실제 클래스는 클래스 로더에 의해 로드되는 한 중요하지 않습니다.

이와 같은 메서드로 요청을 처리할 때 클래스 로더는 클래스를 해결하는 데 사용됩니다.클래스 로더는 가능한 모든 유형을 먼저 메모리에 미리 로드할 필요 없이 런타임에 클래스를 로드하는 역할을 합니다.새 클래스를 사용할 때 로드할.jar 파일을 알아냅니다.
이 취약점에 대한 가장 최신의 심층적인 최신 정보는 Spring에서 직접 확인할 수 있습니다. 블로그 게시물(잠재적 수정 또는 해결 방법 포함)
취약점 2 - 스프링 클라우드 함수 (CVE-2022-22963)
2022년 3월 27일, 사이버 켄드라는 패치가 존재하지 않는 스프링 클라우드 함수의 0일 원격 코드 실행 (RCE) 취약점에 대한 세부 정보를 공개했습니다.이 취약점에는 ID가 할당되었습니다. CVE-2022-22963: 스프링 익스프레션 리소스 액세스 취약성.
어떤 애플리케이션이 위험에 처해 있나요?
이 취약점은 다음과 같은 조건에서 애플리케이션에 영향을 미쳤습니다.
- JDK 9 이상
- 스프링 클라우드 함수 버전 3.1.6 (또는 그 이하), 3.2.2 (또는 그 이하) 또는 지원되지 않는 버전
착취는 어떻게 이루어지나요?
스프링 클라우드 함수는 개발자가 일반적으로 구성 또는 코드를 통해 수행되는 spring.cloud.function.routing-expression 속성을 통해 라우팅이 처리되는 방식을 구성할 수 있는 기능을 제공합니다.이는 “스프링 표현식 언어" (SpEL) 를 받아들이는 강력한 기능입니다.이 0일 취약점을 통해 요청의 HTTP 헤더를 통해 이 속성을 설정할 수 있다는 사실을 알게 되었습니다. 즉, 공격자는 RoutingFunction 엔드포인트에 대한 HTTP 요청에 SeL 코드를 직접 임베드하여 임의의 코드를 실행할 수 있습니다.
위험을 완화하기 위해 사용자는 어떤 조치를 취해야 할까요?
스프링 하스 공개 버전 3.1.7 및 3.2.3에서는 HTTP 헤더를 통해 이 속성을 설정할 수 없도록 하여 취약성을 완화함으로써 이 문제를 해결합니다.두 버전 중 하나로 업그레이드한 후에는 추가 단계가 필요하지 않습니다.
개발자가 보다 안전한 코드를 작성할 수 있도록 지원하는 방법에 대해 자세히 알아보고 싶으신가요?데모 예약 또는 당사의 무료 보안 코딩 가이드라인을 살펴보세요 보안 코드 코치.
출처
- https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities/
- https://www.rapid7.com/blog/post/2022/03/30/spring4shell-zero-day-vulnerability-in-spring-framework/
시작하는 데 도움이 되는 리소스
Threat Modeling with AI: Turning Every Developer into a Threat Modeler
Walk away better equipped to help developers combine threat modeling ideas and techniques with the AI tools they're already using to strengthen security, improve collaboration, and build more resilient software from the start.




%20(1).avif)
.avif)
