
Spring 라이브러리의 새로운 취약점: 위험에 노출되었는지 확인하는 방법과 대처 방안
최근 Java 커뮤니티에서 가장 인기 있는 라이브러리 중 하나인 Spring 라이브러리가 원격 코드 실행(RCE)과 관련된 두 가지 취약점을 공개했습니다. 어느 취약점에 노출되었는지, 그리고 어떤 조치를 취해야 하는지 명확히 이해하기 위해 'Spring4Shell'과 'Spring Cloud Function'의 알려진 세부 정보를 분류했습니다.
취약점 1-「Spring4Shell」(CVE-2022-22965)
2022년 3월 29일, 커뮤니티는 Spring Core(SC)를 표적으로 하는 익스플로잇 개념 증명 스크린샷을 포함한 일련의 트윗을 발견했습니다. 이로 인해 최근 출시된 버전 5.3.17을 포함한 모든 버전의 Spring Core에서 원격 코드 실행이 가능해집니다.
어떤 애플리케이션이 위험에 노출되어 있습니까?
현재 Tomcat에서 호스팅되는 애플리케이션만이 이 새로운 익스플로잇의 위험에 노출된 것으로 확인되었습니다. 임베디드 Tomcat 서블릿 컨테이너나 Tomcat 이외의 환경에서 호스팅되는 다른 애플리케이션에 대한 악용 성공 사례는 확인되지 않았으나, 이 위협이 향후 해당 프레임워크에서 성공할 가능성을 배제하지는 않습니다.
봄이 공식 발표 성명서 취약점에 대해. 이에 따라 취약점에 대한 현재의 이해에 따르면, 취약해지기 위해서는 아래 조건을 충족해야 함이 밝혀졌습니다.
- JDK 9 또는 그 이후 버전
- 서블릿 컨테이너로서의 Apache Tomcat
- 기존 WAR으로 패키징되어 있음 (Spring Boot 실행 가능 jar 파일과 대비됨)
- 스프링 웹 MVC 또는 스프링 웹 플럭스 종속성
- Spring Framework 버전 5.3.0부터 5.3.17, 5.2.0부터 5.2.19 및 그 이전 버전
「Spring4Shell」 익스플로잇은 어떻게 작동합니까?
이 악용은 메서드 시그니처에 평범한 오래된 Java 객체(POJO)를 사용하는 요청에서 '데이터 바인딩'(org.springFramework.web.bind.WebDataBinder)을 사용하는 것에 의존합니다.

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

이러한 메서드로 요청이 처리되면 클래스 로더를 사용하여 클래스가 해결됩니다. 클래스 로더는 실행 시점에 클래스를 로드하며, 가능한 모든 타입을 미리 메모리에 프리로드할 필요가 없습니다. 새로운 클래스가 사용될 때 어떤 .jar 파일을 읽을지 결정됩니다.
이 취약점에 대한 최신 및 상세한 정보는 Spring에서 직접 확인할 수 있습니다. 블로그 게시물에는잠재적인 수정 또는 해결 방법이 포함되어 있습니다.
취약점 2-스프링 클라우드 기능 (CVE-2022-22963)
2022년 3월 27일, 사이버 켄드라는 패치가 존재하지 않는 Spring Cloud Functions의 제로데이 원격 코드 실행(RCE) 취약점에 대한 세부 정보를 공개했습니다. 이 취약점에는 ID가 할당되었습니다. CVE-2022-22963: Spring Expression 서비스 리소스 접근 취약점.
어떤 애플리케이션이 위험에 노출되어 있습니까?
이 취약점은 아래 조건에서 애플리케이션에 영향을 미쳤습니다.
- JDK 9 또는 그 이후 버전
- Spring Cloud Functions 버전 3.1.6(또는 그 이전), 3.2.2(또는 그 이하), 또는 지원되지 않는 버전
착취의 구조는?
Spring Cloud Function에서는 개발자가 spring.cloud.function.routing-expression 속성을 사용하여 라우팅 처리 방식을 구성할 수 있습니다. 일반적으로 설정 또는 코드를 통해 이루어집니다.이는 'Spring 표현식 언어'(SpEL)를 수용하는 강력한 기능입니다. 이 0일 취약점을 통해 해당 속성이 요청의 HTTP 헤더를 통해 설정될 수 있다는 사실이 밝혀졌습니다. 즉, 공격자가 RoutingFunction 엔드포인트에 대한 HTTP 요청에 SpEL 코드를 직접 삽입하여 임의의 코드를 실행할 수 있다는 의미입니다.
사용자는 위험을 줄이기 위해 어떤 조치를 취해야 합니까?
봄에는 해제된 버전 3.1.7 및 3.2.3에서는 HTTP 헤더를 통해 이 속성을 설정할 수 없도록 하여 이 문제를 해결하고 취약점을 완화했습니다. 해당 버전 중 하나로 업그레이드한 후에는 추가 조치가 필요하지 않습니다.
개발자가 더 안전한 코드를 작성하도록 지원하는 방법에 대해 더 알고 싶으신가요?데모 예약 또는 무료 안전한 코딩 가이드라인을 확인하세요 . Secure Code Coach.
정보원
- 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/


최근 Java 커뮤니티에서 가장 인기 있는 라이브러리 중 하나인 Spring 라이브러리가 원격 코드 실행(RCE)과 관련된 두 가지 취약점을 공개했습니다. 'Spring4Shell'과 'Spring Cloud Function'의 알려진 세부 정보를 분류하여 위험에 노출되었는지 여부와 노출된 경우의 대응 방법을 쉽게 이해할 수 있도록 했습니다.

Secure Code Warrior는 소프트웨어 개발 라이프사이클 전반에 걸쳐 코드를 보호하고 사이버보안을 최우선으로 하는 문화를 구축하는 데 도움을 드립니다. 애플리케이션 보안 관리자, 개발자, CISO 또는 보안 담당자이든, 안전하지 않은 코드와 관련된 위험을 줄이는 데 도움을 드립니다.
데모 예약

최근 Java 커뮤니티에서 가장 인기 있는 라이브러리 중 하나인 Spring 라이브러리가 원격 코드 실행(RCE)과 관련된 두 가지 취약점을 공개했습니다. 어느 취약점에 노출되었는지, 그리고 어떤 조치를 취해야 하는지 명확히 이해하기 위해 'Spring4Shell'과 'Spring Cloud Function'의 알려진 세부 정보를 분류했습니다.
취약점 1-「Spring4Shell」(CVE-2022-22965)
2022년 3월 29일, 커뮤니티는 Spring Core(SC)를 표적으로 하는 익스플로잇 개념 증명 스크린샷을 포함한 일련의 트윗을 발견했습니다. 이로 인해 최근 출시된 버전 5.3.17을 포함한 모든 버전의 Spring Core에서 원격 코드 실행이 가능해집니다.
어떤 애플리케이션이 위험에 노출되어 있습니까?
현재 Tomcat에서 호스팅되는 애플리케이션만이 이 새로운 익스플로잇의 위험에 노출된 것으로 확인되었습니다. 임베디드 Tomcat 서블릿 컨테이너나 Tomcat 이외의 환경에서 호스팅되는 다른 애플리케이션에 대한 악용 성공 사례는 확인되지 않았으나, 이 위협이 향후 해당 프레임워크에서 성공할 가능성을 배제하지는 않습니다.
봄이 공식 발표 성명서 취약점에 대해. 이에 따라 취약점에 대한 현재의 이해에 따르면, 취약해지기 위해서는 아래 조건을 충족해야 함이 밝혀졌습니다.
- JDK 9 또는 그 이후 버전
- 서블릿 컨테이너로서의 Apache Tomcat
- 기존 WAR으로 패키징되어 있음 (Spring Boot 실행 가능 jar 파일과 대비됨)
- 스프링 웹 MVC 또는 스프링 웹 플럭스 종속성
- Spring Framework 버전 5.3.0부터 5.3.17, 5.2.0부터 5.2.19 및 그 이전 버전
「Spring4Shell」 익스플로잇은 어떻게 작동합니까?
이 악용은 메서드 시그니처에 평범한 오래된 Java 객체(POJO)를 사용하는 요청에서 '데이터 바인딩'(org.springFramework.web.bind.WebDataBinder)을 사용하는 것에 의존합니다.

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

이러한 메서드로 요청이 처리되면 클래스 로더를 사용하여 클래스가 해결됩니다. 클래스 로더는 실행 시점에 클래스를 로드하며, 가능한 모든 타입을 미리 메모리에 프리로드할 필요가 없습니다. 새로운 클래스가 사용될 때 어떤 .jar 파일을 읽을지 결정됩니다.
이 취약점에 대한 최신 및 상세한 정보는 Spring에서 직접 확인할 수 있습니다. 블로그 게시물에는잠재적인 수정 또는 해결 방법이 포함되어 있습니다.
취약점 2-스프링 클라우드 기능 (CVE-2022-22963)
2022년 3월 27일, 사이버 켄드라는 패치가 존재하지 않는 Spring Cloud Functions의 제로데이 원격 코드 실행(RCE) 취약점에 대한 세부 정보를 공개했습니다. 이 취약점에는 ID가 할당되었습니다. CVE-2022-22963: Spring Expression 서비스 리소스 접근 취약점.
어떤 애플리케이션이 위험에 노출되어 있습니까?
이 취약점은 아래 조건에서 애플리케이션에 영향을 미쳤습니다.
- JDK 9 또는 그 이후 버전
- Spring Cloud Functions 버전 3.1.6(또는 그 이전), 3.2.2(또는 그 이하), 또는 지원되지 않는 버전
착취의 구조는?
Spring Cloud Function에서는 개발자가 spring.cloud.function.routing-expression 속성을 사용하여 라우팅 처리 방식을 구성할 수 있습니다. 일반적으로 설정 또는 코드를 통해 이루어집니다.이는 'Spring 표현식 언어'(SpEL)를 수용하는 강력한 기능입니다. 이 0일 취약점을 통해 해당 속성이 요청의 HTTP 헤더를 통해 설정될 수 있다는 사실이 밝혀졌습니다. 즉, 공격자가 RoutingFunction 엔드포인트에 대한 HTTP 요청에 SpEL 코드를 직접 삽입하여 임의의 코드를 실행할 수 있다는 의미입니다.
사용자는 위험을 줄이기 위해 어떤 조치를 취해야 합니까?
봄에는 해제된 버전 3.1.7 및 3.2.3에서는 HTTP 헤더를 통해 이 속성을 설정할 수 없도록 하여 이 문제를 해결하고 취약점을 완화했습니다. 해당 버전 중 하나로 업그레이드한 후에는 추가 조치가 필요하지 않습니다.
개발자가 더 안전한 코드를 작성하도록 지원하는 방법에 대해 더 알고 싶으신가요?데모 예약 또는 무료 안전한 코딩 가이드라인을 확인하세요 . Secure Code Coach.
정보원
- 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/

최근 Java 커뮤니티에서 가장 인기 있는 라이브러리 중 하나인 Spring 라이브러리가 원격 코드 실행(RCE)과 관련된 두 가지 취약점을 공개했습니다. 어느 취약점에 노출되었는지, 그리고 어떤 조치를 취해야 하는지 명확히 이해하기 위해 'Spring4Shell'과 'Spring Cloud Function'의 알려진 세부 정보를 분류했습니다.
취약점 1-「Spring4Shell」(CVE-2022-22965)
2022년 3월 29일, 커뮤니티는 Spring Core(SC)를 표적으로 하는 익스플로잇 개념 증명 스크린샷을 포함한 일련의 트윗을 발견했습니다. 이로 인해 최근 출시된 버전 5.3.17을 포함한 모든 버전의 Spring Core에서 원격 코드 실행이 가능해집니다.
어떤 애플리케이션이 위험에 노출되어 있습니까?
현재 Tomcat에서 호스팅되는 애플리케이션만이 이 새로운 익스플로잇의 위험에 노출된 것으로 확인되었습니다. 임베디드 Tomcat 서블릿 컨테이너나 Tomcat 이외의 환경에서 호스팅되는 다른 애플리케이션에 대한 악용 성공 사례는 확인되지 않았으나, 이 위협이 향후 해당 프레임워크에서 성공할 가능성을 배제하지는 않습니다.
봄이 공식 발표 성명서 취약점에 대해. 이에 따라 취약점에 대한 현재의 이해에 따르면, 취약해지기 위해서는 아래 조건을 충족해야 함이 밝혀졌습니다.
- JDK 9 또는 그 이후 버전
- 서블릿 컨테이너로서의 Apache Tomcat
- 기존 WAR으로 패키징되어 있음 (Spring Boot 실행 가능 jar 파일과 대비됨)
- 스프링 웹 MVC 또는 스프링 웹 플럭스 종속성
- Spring Framework 버전 5.3.0부터 5.3.17, 5.2.0부터 5.2.19 및 그 이전 버전
「Spring4Shell」 익스플로잇은 어떻게 작동합니까?
이 악용은 메서드 시그니처에 평범한 오래된 Java 객체(POJO)를 사용하는 요청에서 '데이터 바인딩'(org.springFramework.web.bind.WebDataBinder)을 사용하는 것에 의존합니다.

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

이러한 메서드로 요청이 처리되면 클래스 로더를 사용하여 클래스가 해결됩니다. 클래스 로더는 실행 시점에 클래스를 로드하며, 가능한 모든 타입을 미리 메모리에 프리로드할 필요가 없습니다. 새로운 클래스가 사용될 때 어떤 .jar 파일을 읽을지 결정됩니다.
이 취약점에 대한 최신 및 상세한 정보는 Spring에서 직접 확인할 수 있습니다. 블로그 게시물에는잠재적인 수정 또는 해결 방법이 포함되어 있습니다.
취약점 2-스프링 클라우드 기능 (CVE-2022-22963)
2022년 3월 27일, 사이버 켄드라는 패치가 존재하지 않는 Spring Cloud Functions의 제로데이 원격 코드 실행(RCE) 취약점에 대한 세부 정보를 공개했습니다. 이 취약점에는 ID가 할당되었습니다. CVE-2022-22963: Spring Expression 서비스 리소스 접근 취약점.
어떤 애플리케이션이 위험에 노출되어 있습니까?
이 취약점은 아래 조건에서 애플리케이션에 영향을 미쳤습니다.
- JDK 9 또는 그 이후 버전
- Spring Cloud Functions 버전 3.1.6(또는 그 이전), 3.2.2(또는 그 이하), 또는 지원되지 않는 버전
착취의 구조는?
Spring Cloud Function에서는 개발자가 spring.cloud.function.routing-expression 속성을 사용하여 라우팅 처리 방식을 구성할 수 있습니다. 일반적으로 설정 또는 코드를 통해 이루어집니다.이는 'Spring 표현식 언어'(SpEL)를 수용하는 강력한 기능입니다. 이 0일 취약점을 통해 해당 속성이 요청의 HTTP 헤더를 통해 설정될 수 있다는 사실이 밝혀졌습니다. 즉, 공격자가 RoutingFunction 엔드포인트에 대한 HTTP 요청에 SpEL 코드를 직접 삽입하여 임의의 코드를 실행할 수 있다는 의미입니다.
사용자는 위험을 줄이기 위해 어떤 조치를 취해야 합니까?
봄에는 해제된 버전 3.1.7 및 3.2.3에서는 HTTP 헤더를 통해 이 속성을 설정할 수 없도록 하여 이 문제를 해결하고 취약점을 완화했습니다. 해당 버전 중 하나로 업그레이드한 후에는 추가 조치가 필요하지 않습니다.
개발자가 더 안전한 코드를 작성하도록 지원하는 방법에 대해 더 알고 싶으신가요?데모 예약 또는 무료 안전한 코딩 가이드라인을 확인하세요 . Secure Code Coach.
정보원
- 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/
최근 Java 커뮤니티에서 가장 인기 있는 라이브러리 중 하나인 Spring 라이브러리가 원격 코드 실행(RCE)과 관련된 두 가지 취약점을 공개했습니다. 어느 취약점에 노출되었는지, 그리고 어떤 조치를 취해야 하는지 명확히 이해하기 위해 'Spring4Shell'과 'Spring Cloud Function'의 알려진 세부 정보를 분류했습니다.
취약점 1-「Spring4Shell」(CVE-2022-22965)
2022년 3월 29일, 커뮤니티는 Spring Core(SC)를 표적으로 하는 익스플로잇 개념 증명 스크린샷을 포함한 일련의 트윗을 발견했습니다. 이로 인해 최근 출시된 버전 5.3.17을 포함한 모든 버전의 Spring Core에서 원격 코드 실행이 가능해집니다.
어떤 애플리케이션이 위험에 노출되어 있습니까?
현재 Tomcat에서 호스팅되는 애플리케이션만이 이 새로운 익스플로잇의 위험에 노출된 것으로 확인되었습니다. 임베디드 Tomcat 서블릿 컨테이너나 Tomcat 이외의 환경에서 호스팅되는 다른 애플리케이션에 대한 악용 성공 사례는 확인되지 않았으나, 이 위협이 향후 해당 프레임워크에서 성공할 가능성을 배제하지는 않습니다.
봄이 공식 발표 성명서 취약점에 대해. 이에 따라 취약점에 대한 현재의 이해에 따르면, 취약해지기 위해서는 아래 조건을 충족해야 함이 밝혀졌습니다.
- JDK 9 또는 그 이후 버전
- 서블릿 컨테이너로서의 Apache Tomcat
- 기존 WAR으로 패키징되어 있음 (Spring Boot 실행 가능 jar 파일과 대비됨)
- 스프링 웹 MVC 또는 스프링 웹 플럭스 종속성
- Spring Framework 버전 5.3.0부터 5.3.17, 5.2.0부터 5.2.19 및 그 이전 버전
「Spring4Shell」 익스플로잇은 어떻게 작동합니까?
이 악용은 메서드 시그니처에 평범한 오래된 Java 객체(POJO)를 사용하는 요청에서 '데이터 바인딩'(org.springFramework.web.bind.WebDataBinder)을 사용하는 것에 의존합니다.

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

이러한 메서드로 요청이 처리되면 클래스 로더를 사용하여 클래스가 해결됩니다. 클래스 로더는 실행 시점에 클래스를 로드하며, 가능한 모든 타입을 미리 메모리에 프리로드할 필요가 없습니다. 새로운 클래스가 사용될 때 어떤 .jar 파일을 읽을지 결정됩니다.
이 취약점에 대한 최신 및 상세한 정보는 Spring에서 직접 확인할 수 있습니다. 블로그 게시물에는잠재적인 수정 또는 해결 방법이 포함되어 있습니다.
취약점 2-스프링 클라우드 기능 (CVE-2022-22963)
2022년 3월 27일, 사이버 켄드라는 패치가 존재하지 않는 Spring Cloud Functions의 제로데이 원격 코드 실행(RCE) 취약점에 대한 세부 정보를 공개했습니다. 이 취약점에는 ID가 할당되었습니다. CVE-2022-22963: Spring Expression 서비스 리소스 접근 취약점.
어떤 애플리케이션이 위험에 노출되어 있습니까?
이 취약점은 아래 조건에서 애플리케이션에 영향을 미쳤습니다.
- JDK 9 또는 그 이후 버전
- Spring Cloud Functions 버전 3.1.6(또는 그 이전), 3.2.2(또는 그 이하), 또는 지원되지 않는 버전
착취의 구조는?
Spring Cloud Function에서는 개발자가 spring.cloud.function.routing-expression 속성을 사용하여 라우팅 처리 방식을 구성할 수 있습니다. 일반적으로 설정 또는 코드를 통해 이루어집니다.이는 'Spring 표현식 언어'(SpEL)를 수용하는 강력한 기능입니다. 이 0일 취약점을 통해 해당 속성이 요청의 HTTP 헤더를 통해 설정될 수 있다는 사실이 밝혀졌습니다. 즉, 공격자가 RoutingFunction 엔드포인트에 대한 HTTP 요청에 SpEL 코드를 직접 삽입하여 임의의 코드를 실행할 수 있다는 의미입니다.
사용자는 위험을 줄이기 위해 어떤 조치를 취해야 합니까?
봄에는 해제된 버전 3.1.7 및 3.2.3에서는 HTTP 헤더를 통해 이 속성을 설정할 수 없도록 하여 이 문제를 해결하고 취약점을 완화했습니다. 해당 버전 중 하나로 업그레이드한 후에는 추가 조치가 필요하지 않습니다.
개발자가 더 안전한 코드를 작성하도록 지원하는 방법에 대해 더 알고 싶으신가요?데모 예약 또는 무료 안전한 코딩 가이드라인을 확인하세요 . Secure Code Coach.
정보원
- 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/




%20(1).avif)
.avif)
