SCW 아이콘
영웅 배경, 구분선 없음
블로그

Spring 라이브러리의 새로운 취약점: 위험에 처해 있는지 확인하는 방법과 취해야 할 조치

찰리 에릭슨
게시됨 Apr 01, 2022
마지막 업데이트: 2026년 3월 9일

최근 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와는 반대)
  • Spring-webmvc 또는 spring-webflux 의존성
  • Spring Framework 버전 5.3.0부터 5.3.17, 5.2.0부터 5.2.19 및 이전 버전

"Spring4Shell" 취약점은 어떻게 작동하는가?

이 취약점은 메서드 서명에서 일반적인 오래된 Java 객체(POJO)를 사용하는 요청에서 "데이터 바인딩"(org.springframework.web.bind.Web.bind.WebDataBinder)을 사용하는 것에 의존합니다:

Foo 클래스는 POJO 클래스로, 다음과 같이 정의할 수 있습니다. 실제 클래스는 중요하지 않으며, 클래스 로더에 의해 로드되기만 하면 됩니다.

이러한 방식으로 요청이 처리될 때, 클래스 로더는 해당 클래스를 파싱하는 데 사용됩니다. 클래스 로더는 실행 시점에 클래스를 로드하는 역할을 하며, 모든 가능한 유형을 미리 메모리에 로드할 필요가 없습니다. 새로운 클래스를 사용할 때 로드해야 할 .jar 파일을 계산합니다.

이 취약점에 대한 최신 및 심층 정보는 Spring 블로그 게시물에서직접 확인하실 수 있으며, 여기에는 잠재적인 수정 방법이나 우회 방법이 포함됩니다.

취약점 2-Spring Cloud 함수 (CVE-2022-22963)

2022년 3월 27일, Cyber Kendra는 Spring Cloud Functions의 패치되지 않은 0일 원격 코드 실행(RCE) 취약점에 대한 세부 정보를 공개했습니다. 이 취약점은 CVE-2022-22963: Spring 표현식 리소스 접근 취약점으로지정되었습니다.

어떤 애플리케이션이 위험에 노출되어 있나요?

이 취약점은 다음 조건에서 실행되는 애플리케이션에 영향을 미칩니다:

  • 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 헤더를 통해 이 속성을 설정하는 것을 허용하지 않음으로써 이 문제를 해결하고 취약점을 완화했습니다. 해당 버전 중 하나로 업그레이드한 후에는 추가 조치가 필요하지 않습니다.

개발자가 더 안전한 코드를 작성하도록 지원하는 방법에 대해 자세히 알아보고 싶으신가요?데모 예약하거나 무료 보안 코딩 가이드인 '안전한 코드 코치'를 살펴보세요.

자료 출처

리소스 보기
리소스 보기

최근, Java 커뮤니티에서 가장 인기 있는 라이브러리 중 하나인 Spring 라이브러리가 원격 코드 실행(RCE)과 관련된 두 가지 취약점을 공개했습니다. 우리는 "Spring4Shell"과 "Spring Cloud Function"에 대해 알려진 세부 사항을 분석하여 여러분이 위험에 처해 있는지, 그리고 위험이 존재할 경우 어떻게 해야 하는지 이해하는 데 도움을 드리고자 합니다.

더 많은 것에 관심이 있으신가요?

더 알아보세요

Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

데모 예약
공유하기:
링크드인 브랜드사회적x 로고
저자
찰리 에릭슨
게시일: Apr 01, 2022

공유하기:
링크드인 브랜드사회적x 로고

최근 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와는 반대)
  • Spring-webmvc 또는 spring-webflux 의존성
  • Spring Framework 버전 5.3.0부터 5.3.17, 5.2.0부터 5.2.19 및 이전 버전

"Spring4Shell" 취약점은 어떻게 작동하는가?

이 취약점은 메서드 서명에서 일반적인 오래된 Java 객체(POJO)를 사용하는 요청에서 "데이터 바인딩"(org.springframework.web.bind.Web.bind.WebDataBinder)을 사용하는 것에 의존합니다:

Foo 클래스는 POJO 클래스로, 다음과 같이 정의할 수 있습니다. 실제 클래스는 중요하지 않으며, 클래스 로더에 의해 로드되기만 하면 됩니다.

이러한 방식으로 요청이 처리될 때, 클래스 로더는 해당 클래스를 파싱하는 데 사용됩니다. 클래스 로더는 실행 시점에 클래스를 로드하는 역할을 하며, 모든 가능한 유형을 미리 메모리에 로드할 필요가 없습니다. 새로운 클래스를 사용할 때 로드해야 할 .jar 파일을 계산합니다.

이 취약점에 대한 최신 및 심층 정보는 Spring 블로그 게시물에서직접 확인하실 수 있으며, 여기에는 잠재적인 수정 방법이나 우회 방법이 포함됩니다.

취약점 2-Spring Cloud 함수 (CVE-2022-22963)

2022년 3월 27일, Cyber Kendra는 Spring Cloud Functions의 패치되지 않은 0일 원격 코드 실행(RCE) 취약점에 대한 세부 정보를 공개했습니다. 이 취약점은 CVE-2022-22963: Spring 표현식 리소스 접근 취약점으로지정되었습니다.

어떤 애플리케이션이 위험에 노출되어 있나요?

이 취약점은 다음 조건에서 실행되는 애플리케이션에 영향을 미칩니다:

  • 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 헤더를 통해 이 속성을 설정하는 것을 허용하지 않음으로써 이 문제를 해결하고 취약점을 완화했습니다. 해당 버전 중 하나로 업그레이드한 후에는 추가 조치가 필요하지 않습니다.

개발자가 더 안전한 코드를 작성하도록 지원하는 방법에 대해 자세히 알아보고 싶으신가요?데모 예약하거나 무료 보안 코딩 가이드인 '안전한 코드 코치'를 살펴보세요.

자료 출처

리소스 보기
리소스 보기

아래 양식을 작성하여 보고서를 다운로드하세요

귀하의 허락을 받아 저희 제품 및/또는 관련 보안 코딩 주제에 관한 정보를 보내드리고자 합니다. 귀하의 개인정보는 항상 매우 신중하게 취급되며, 마케팅 목적으로 타사에 판매하지 않을 것을 약속드립니다.

제출
scw 성공 아이콘
scw 오류 아이콘
양식을 제출하려면 "분석" 쿠키를 활성화하십시오. 완료 후에는 원할 때 다시 비활성화할 수 있습니다.

최근 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와는 반대)
  • Spring-webmvc 또는 spring-webflux 의존성
  • Spring Framework 버전 5.3.0부터 5.3.17, 5.2.0부터 5.2.19 및 이전 버전

"Spring4Shell" 취약점은 어떻게 작동하는가?

이 취약점은 메서드 서명에서 일반적인 오래된 Java 객체(POJO)를 사용하는 요청에서 "데이터 바인딩"(org.springframework.web.bind.Web.bind.WebDataBinder)을 사용하는 것에 의존합니다:

Foo 클래스는 POJO 클래스로, 다음과 같이 정의할 수 있습니다. 실제 클래스는 중요하지 않으며, 클래스 로더에 의해 로드되기만 하면 됩니다.

이러한 방식으로 요청이 처리될 때, 클래스 로더는 해당 클래스를 파싱하는 데 사용됩니다. 클래스 로더는 실행 시점에 클래스를 로드하는 역할을 하며, 모든 가능한 유형을 미리 메모리에 로드할 필요가 없습니다. 새로운 클래스를 사용할 때 로드해야 할 .jar 파일을 계산합니다.

이 취약점에 대한 최신 및 심층 정보는 Spring 블로그 게시물에서직접 확인하실 수 있으며, 여기에는 잠재적인 수정 방법이나 우회 방법이 포함됩니다.

취약점 2-Spring Cloud 함수 (CVE-2022-22963)

2022년 3월 27일, Cyber Kendra는 Spring Cloud Functions의 패치되지 않은 0일 원격 코드 실행(RCE) 취약점에 대한 세부 정보를 공개했습니다. 이 취약점은 CVE-2022-22963: Spring 표현식 리소스 접근 취약점으로지정되었습니다.

어떤 애플리케이션이 위험에 노출되어 있나요?

이 취약점은 다음 조건에서 실행되는 애플리케이션에 영향을 미칩니다:

  • 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 헤더를 통해 이 속성을 설정하는 것을 허용하지 않음으로써 이 문제를 해결하고 취약점을 완화했습니다. 해당 버전 중 하나로 업그레이드한 후에는 추가 조치가 필요하지 않습니다.

개발자가 더 안전한 코드를 작성하도록 지원하는 방법에 대해 자세히 알아보고 싶으신가요?데모 예약하거나 무료 보안 코딩 가이드인 '안전한 코드 코치'를 살펴보세요.

자료 출처

웹 세미나 시청
시작하자
더 알아보세요

아래 링크를 클릭하고 이 자료의 PDF를 다운로드하세요.

Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

보고서 보기데모 예약
리소스 보기
공유하기:
링크드인 브랜드사회적x 로고
더 많은 것에 관심이 있으신가요?

공유하기:
링크드인 브랜드사회적x 로고
저자
찰리 에릭슨
게시일: Apr 01, 2022

공유하기:
링크드인 브랜드사회적x 로고

최근 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와는 반대)
  • Spring-webmvc 또는 spring-webflux 의존성
  • Spring Framework 버전 5.3.0부터 5.3.17, 5.2.0부터 5.2.19 및 이전 버전

"Spring4Shell" 취약점은 어떻게 작동하는가?

이 취약점은 메서드 서명에서 일반적인 오래된 Java 객체(POJO)를 사용하는 요청에서 "데이터 바인딩"(org.springframework.web.bind.Web.bind.WebDataBinder)을 사용하는 것에 의존합니다:

Foo 클래스는 POJO 클래스로, 다음과 같이 정의할 수 있습니다. 실제 클래스는 중요하지 않으며, 클래스 로더에 의해 로드되기만 하면 됩니다.

이러한 방식으로 요청이 처리될 때, 클래스 로더는 해당 클래스를 파싱하는 데 사용됩니다. 클래스 로더는 실행 시점에 클래스를 로드하는 역할을 하며, 모든 가능한 유형을 미리 메모리에 로드할 필요가 없습니다. 새로운 클래스를 사용할 때 로드해야 할 .jar 파일을 계산합니다.

이 취약점에 대한 최신 및 심층 정보는 Spring 블로그 게시물에서직접 확인하실 수 있으며, 여기에는 잠재적인 수정 방법이나 우회 방법이 포함됩니다.

취약점 2-Spring Cloud 함수 (CVE-2022-22963)

2022년 3월 27일, Cyber Kendra는 Spring Cloud Functions의 패치되지 않은 0일 원격 코드 실행(RCE) 취약점에 대한 세부 정보를 공개했습니다. 이 취약점은 CVE-2022-22963: Spring 표현식 리소스 접근 취약점으로지정되었습니다.

어떤 애플리케이션이 위험에 노출되어 있나요?

이 취약점은 다음 조건에서 실행되는 애플리케이션에 영향을 미칩니다:

  • 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 헤더를 통해 이 속성을 설정하는 것을 허용하지 않음으로써 이 문제를 해결하고 취약점을 완화했습니다. 해당 버전 중 하나로 업그레이드한 후에는 추가 조치가 필요하지 않습니다.

개발자가 더 안전한 코드를 작성하도록 지원하는 방법에 대해 자세히 알아보고 싶으신가요?데모 예약하거나 무료 보안 코딩 가이드인 '안전한 코드 코치'를 살펴보세요.

자료 출처

목록

PDF 다운로드
리소스 보기
더 많은 것에 관심이 있으신가요?

더 알아보세요

Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

데모 예약다운로드
공유하기:
링크드인 브랜드사회적x 로고
자원 센터

시작하는 데 도움이 되는 자료

더 많은 게시물
자원 센터

시작하는 데 도움이 되는 자료

더 많은 게시물