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

Spring 라이브러리의 새로운 취약점: 위험 여부 확인 방법 및 대응 방안

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

최근 자바 커뮤니티에서 가장 인기 있는 라이브러리 중 하나인 Spring 라이브러리가 원격 코드 실행(RCE)과 관련된 두 가지 취약점을 공개했습니다. 사용자가 해당 취약점에 노출되었는지 여부와 취해야 할 조치를 보다 쉽게 판단할 수 있도록, 'Spring4Shell'과 'Spring Cloud Function'에 대해 알려진 정보를 분류하여 정리했습니다.

취약점 1 - 「Spring4Shell」(CVE-42-22965)

2022년 3월 29일, 커뮤니티는 Spring Core(SC)를 대상으로 한 익스플로잇의 개념 증명 스크린샷을 포함한 일련의 트윗을 발견했습니다. 이 익스플로잇은 최신 버전인 5.3.17을 포함한 모든 버전의 Spring Core에서 원격 코드 실행을 가능하게 합니다.

어떤 애플리케이션이 위협받고 있나요?

현재 Tomcat에 호스팅된 애플리케이션만이 이 새로운 익스플로잇에 노출된 것으로 확인되었습니다. 비록 내장된 Tomcat 서블릿 컨테이너나 Tomcat에 의해 호스팅되지 않는 다른 애플리케이션에 대한 공격 성공 사례는 입증되지 않았지만, 이는 향후 해당 프레임워크에 대한 위협이 효과적일 가능성을 배제하지 않습니다.

Spring은 취약점에 대한 공식 성명서를 발표했으며, 현재 취약점에 대한 이해에 따르면 취약점이 존재하기 위해서는 다음 조건이 충족되어야 한다고 명시하고 있습니다:

  • 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.WebDataBinder)를 활용하는 것을 기반으로 합니다:

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

이러한 방식으로 요청이 처리될 때 클래스 로더가 클래스 해결에 사용됩니다. 클래스 로더는 실행 시점에 클래스를 로드하는 역할을 하며, 사전에 모든 가능한 타입을 메모리에 미리 로드할 필요가 없습니다. 새로운 클래스가 사용될 때 어떤 .jar 파일을 로드할지 결정합니다.

이 취약점에 대한 최신 및 상세한 정보는 Spring의 블로그 게시물에서 직접 확인하실 수 있으며, 여기에는 패치 또는 잠재적인 해결 방법도 포함되어 있습니다.

취약점 2: Spring Cloud 기능 (CVE-249 22963)

2022년 3월 27일, 사이버 켄드라(Cyber Kendra)는 패치가 존재하지 않는 Spring Cloud Functions의 원격 코드 실행(RCE) 취약점에 대한 정보를 공개했습니다. 이 취약점에는 CVE-04-22963: Spring Expression의 리소스 접근 취약점이라는 식별 번호가 부여되었습니다.

어떤 애플리케이션이 위협받고 있나요?

해당 취약점은 다음과 같은 조건에서 애플리케이션에 영향을 미쳤습니다:

  • JDK 9 또는 그 이상 버전
  • Spring Cloud Functions 버전 3.1.6(또는 그 이하), 3.2.2(또는 그 이하) 또는 지원되지 않는 모든 버전

운영은 어떻게 이루어지나요?

Spring Cloud Function은 개발자가 spring.cloud.function.routing-expression 속성을 통해 라우팅 처리 방식을 구성할 수 있게 합니다. 일반적으로 구성 파일이나 코드를 통해 설정됩니다. 이는 'Spring 표현식 언어'(SPEL)를 지원하는 강력한 기능입니다. 이 제로데이 취약점을 통해 해당 속성이 요청의 HTTP 헤더를 통해 설정될 수 있다는 사실이 확인되었습니다. 이는 공격자가 RoutingFunction 엔드포인트로 전송하는 HTTP 요청에 SPEL 코드를 직접 포함시켜 임의의 코드를 실행할 수 있음을 의미합니다.

사용자들은 위험을 완화하기 위해 어떤 조치를 취해야 합니까?

Le printemps은 이 문제를 해결하기 위해 HTTP 헤더를 통해 해당 속성 설정을 허용하지 않는 방식으로 취약점을 완화한 버전 3.1.7 및 3.2.3을 출시했습니다. 해당 버전 중 하나로 업그레이드한 후에는 추가 조치가 필요하지 않습니다.

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

소스

리소스 표시
리소스 표시

최근 자바 커뮤니티에서 가장 널리 사용되는 라이브러리 중 하나인 Spring 라이브러리에 원격 코드 실행(RCE)과 관련된 두 가지 취약점이 발견되었습니다. 본 문서에서는 'Spring4Shell' 및 'Spring Cloud Function'에 대해 알려진 정보를 상세히 설명하여 해당 취약점의 위험에 노출되었는지 확인하고, 노출된 경우 취해야 할 조치를 안내합니다.

더 알고 싶으신가요?

더 알아보세요

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 주기 전반에 걸쳐 코드를 안전하게 보호하고 사이버보안이 최우선 과제인 문화를 조성하도록 Secure Code Warrior . 애플리케이션 보안 담당자, 개발자, IT 보안 책임자 또는 보안 관련 업무에 종사하는 모든 분들을 위해, 저희는 귀사의 조직이 안전하지 않은 코드로 인한 위험을 줄일 수 있도록 돕습니다.

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

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

최근 자바 커뮤니티에서 가장 인기 있는 라이브러리 중 하나인 Spring 라이브러리가 원격 코드 실행(RCE)과 관련된 두 가지 취약점을 공개했습니다. 사용자가 해당 취약점에 노출되었는지 여부와 취해야 할 조치를 보다 쉽게 판단할 수 있도록, 'Spring4Shell'과 'Spring Cloud Function'에 대해 알려진 정보를 분류하여 정리했습니다.

취약점 1 - 「Spring4Shell」(CVE-42-22965)

2022년 3월 29일, 커뮤니티는 Spring Core(SC)를 대상으로 한 익스플로잇의 개념 증명 스크린샷을 포함한 일련의 트윗을 발견했습니다. 이 익스플로잇은 최신 버전인 5.3.17을 포함한 모든 버전의 Spring Core에서 원격 코드 실행을 가능하게 합니다.

어떤 애플리케이션이 위협받고 있나요?

현재 Tomcat에 호스팅된 애플리케이션만이 이 새로운 익스플로잇에 노출된 것으로 확인되었습니다. 비록 내장된 Tomcat 서블릿 컨테이너나 Tomcat에 의해 호스팅되지 않는 다른 애플리케이션에 대한 공격 성공 사례는 입증되지 않았지만, 이는 향후 해당 프레임워크에 대한 위협이 효과적일 가능성을 배제하지 않습니다.

Spring은 취약점에 대한 공식 성명서를 발표했으며, 현재 취약점에 대한 이해에 따르면 취약점이 존재하기 위해서는 다음 조건이 충족되어야 한다고 명시하고 있습니다:

  • 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.WebDataBinder)를 활용하는 것을 기반으로 합니다:

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

이러한 방식으로 요청이 처리될 때 클래스 로더가 클래스 해결에 사용됩니다. 클래스 로더는 실행 시점에 클래스를 로드하는 역할을 하며, 사전에 모든 가능한 타입을 메모리에 미리 로드할 필요가 없습니다. 새로운 클래스가 사용될 때 어떤 .jar 파일을 로드할지 결정합니다.

이 취약점에 대한 최신 및 상세한 정보는 Spring의 블로그 게시물에서 직접 확인하실 수 있으며, 여기에는 패치 또는 잠재적인 해결 방법도 포함되어 있습니다.

취약점 2: Spring Cloud 기능 (CVE-249 22963)

2022년 3월 27일, 사이버 켄드라(Cyber Kendra)는 패치가 존재하지 않는 Spring Cloud Functions의 원격 코드 실행(RCE) 취약점에 대한 정보를 공개했습니다. 이 취약점에는 CVE-04-22963: Spring Expression의 리소스 접근 취약점이라는 식별 번호가 부여되었습니다.

어떤 애플리케이션이 위협받고 있나요?

해당 취약점은 다음과 같은 조건에서 애플리케이션에 영향을 미쳤습니다:

  • JDK 9 또는 그 이상 버전
  • Spring Cloud Functions 버전 3.1.6(또는 그 이하), 3.2.2(또는 그 이하) 또는 지원되지 않는 모든 버전

운영은 어떻게 이루어지나요?

Spring Cloud Function은 개발자가 spring.cloud.function.routing-expression 속성을 통해 라우팅 처리 방식을 구성할 수 있게 합니다. 일반적으로 구성 파일이나 코드를 통해 설정됩니다. 이는 'Spring 표현식 언어'(SPEL)를 지원하는 강력한 기능입니다. 이 제로데이 취약점을 통해 해당 속성이 요청의 HTTP 헤더를 통해 설정될 수 있다는 사실이 확인되었습니다. 이는 공격자가 RoutingFunction 엔드포인트로 전송하는 HTTP 요청에 SPEL 코드를 직접 포함시켜 임의의 코드를 실행할 수 있음을 의미합니다.

사용자들은 위험을 완화하기 위해 어떤 조치를 취해야 합니까?

Le printemps은 이 문제를 해결하기 위해 HTTP 헤더를 통해 해당 속성 설정을 허용하지 않는 방식으로 취약점을 완화한 버전 3.1.7 및 3.2.3을 출시했습니다. 해당 버전 중 하나로 업그레이드한 후에는 추가 조치가 필요하지 않습니다.

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

소스

리소스 표시
리소스 표시

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

저희 제품 및/또는 안전한 코딩 관련 주제에 대한 정보를 보내드리는 데 귀하의 허락을 받고자 합니다. 귀하의 개인정보는 항상 최대한 신중하게 처리하며, 마케팅 목적으로 다른 기업에 절대 판매하지 않을 것입니다.

제출하다
scw 성공 아이콘
scw 오류 아이콘
양식을 제출하려면 '분석' 쿠키를 활성화해 주십시오. 완료 후에는 다시 비활성화하셔도 됩니다.

최근 자바 커뮤니티에서 가장 인기 있는 라이브러리 중 하나인 Spring 라이브러리가 원격 코드 실행(RCE)과 관련된 두 가지 취약점을 공개했습니다. 사용자가 해당 취약점에 노출되었는지 여부와 취해야 할 조치를 보다 쉽게 판단할 수 있도록, 'Spring4Shell'과 'Spring Cloud Function'에 대해 알려진 정보를 분류하여 정리했습니다.

취약점 1 - 「Spring4Shell」(CVE-42-22965)

2022년 3월 29일, 커뮤니티는 Spring Core(SC)를 대상으로 한 익스플로잇의 개념 증명 스크린샷을 포함한 일련의 트윗을 발견했습니다. 이 익스플로잇은 최신 버전인 5.3.17을 포함한 모든 버전의 Spring Core에서 원격 코드 실행을 가능하게 합니다.

어떤 애플리케이션이 위협받고 있나요?

현재 Tomcat에 호스팅된 애플리케이션만이 이 새로운 익스플로잇에 노출된 것으로 확인되었습니다. 비록 내장된 Tomcat 서블릿 컨테이너나 Tomcat에 의해 호스팅되지 않는 다른 애플리케이션에 대한 공격 성공 사례는 입증되지 않았지만, 이는 향후 해당 프레임워크에 대한 위협이 효과적일 가능성을 배제하지 않습니다.

Spring은 취약점에 대한 공식 성명서를 발표했으며, 현재 취약점에 대한 이해에 따르면 취약점이 존재하기 위해서는 다음 조건이 충족되어야 한다고 명시하고 있습니다:

  • 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.WebDataBinder)를 활용하는 것을 기반으로 합니다:

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

이러한 방식으로 요청이 처리될 때 클래스 로더가 클래스 해결에 사용됩니다. 클래스 로더는 실행 시점에 클래스를 로드하는 역할을 하며, 사전에 모든 가능한 타입을 메모리에 미리 로드할 필요가 없습니다. 새로운 클래스가 사용될 때 어떤 .jar 파일을 로드할지 결정합니다.

이 취약점에 대한 최신 및 상세한 정보는 Spring의 블로그 게시물에서 직접 확인하실 수 있으며, 여기에는 패치 또는 잠재적인 해결 방법도 포함되어 있습니다.

취약점 2: Spring Cloud 기능 (CVE-249 22963)

2022년 3월 27일, 사이버 켄드라(Cyber Kendra)는 패치가 존재하지 않는 Spring Cloud Functions의 원격 코드 실행(RCE) 취약점에 대한 정보를 공개했습니다. 이 취약점에는 CVE-04-22963: Spring Expression의 리소스 접근 취약점이라는 식별 번호가 부여되었습니다.

어떤 애플리케이션이 위협받고 있나요?

해당 취약점은 다음과 같은 조건에서 애플리케이션에 영향을 미쳤습니다:

  • JDK 9 또는 그 이상 버전
  • Spring Cloud Functions 버전 3.1.6(또는 그 이하), 3.2.2(또는 그 이하) 또는 지원되지 않는 모든 버전

운영은 어떻게 이루어지나요?

Spring Cloud Function은 개발자가 spring.cloud.function.routing-expression 속성을 통해 라우팅 처리 방식을 구성할 수 있게 합니다. 일반적으로 구성 파일이나 코드를 통해 설정됩니다. 이는 'Spring 표현식 언어'(SPEL)를 지원하는 강력한 기능입니다. 이 제로데이 취약점을 통해 해당 속성이 요청의 HTTP 헤더를 통해 설정될 수 있다는 사실이 확인되었습니다. 이는 공격자가 RoutingFunction 엔드포인트로 전송하는 HTTP 요청에 SPEL 코드를 직접 포함시켜 임의의 코드를 실행할 수 있음을 의미합니다.

사용자들은 위험을 완화하기 위해 어떤 조치를 취해야 합니까?

Le printemps은 이 문제를 해결하기 위해 HTTP 헤더를 통해 해당 속성 설정을 허용하지 않는 방식으로 취약점을 완화한 버전 3.1.7 및 3.2.3을 출시했습니다. 해당 버전 중 하나로 업그레이드한 후에는 추가 조치가 필요하지 않습니다.

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

소스

웨비나 보기
시작하세요
더 알아보세요

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

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 주기 전반에 걸쳐 코드를 안전하게 보호하고 사이버보안이 최우선 과제인 문화를 조성하도록 Secure Code Warrior . 애플리케이션 보안 담당자, 개발자, IT 보안 책임자 또는 보안 관련 업무에 종사하는 모든 분들을 위해, 저희는 귀사의 조직이 안전하지 않은 코드로 인한 위험을 줄일 수 있도록 돕습니다.

보고서 표시데모 예약하기
리소스 표시
공유하기:
링크드인 브랜드사회적x 로고
더 알고 싶으신가요?

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

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

최근 자바 커뮤니티에서 가장 인기 있는 라이브러리 중 하나인 Spring 라이브러리가 원격 코드 실행(RCE)과 관련된 두 가지 취약점을 공개했습니다. 사용자가 해당 취약점에 노출되었는지 여부와 취해야 할 조치를 보다 쉽게 판단할 수 있도록, 'Spring4Shell'과 'Spring Cloud Function'에 대해 알려진 정보를 분류하여 정리했습니다.

취약점 1 - 「Spring4Shell」(CVE-42-22965)

2022년 3월 29일, 커뮤니티는 Spring Core(SC)를 대상으로 한 익스플로잇의 개념 증명 스크린샷을 포함한 일련의 트윗을 발견했습니다. 이 익스플로잇은 최신 버전인 5.3.17을 포함한 모든 버전의 Spring Core에서 원격 코드 실행을 가능하게 합니다.

어떤 애플리케이션이 위협받고 있나요?

현재 Tomcat에 호스팅된 애플리케이션만이 이 새로운 익스플로잇에 노출된 것으로 확인되었습니다. 비록 내장된 Tomcat 서블릿 컨테이너나 Tomcat에 의해 호스팅되지 않는 다른 애플리케이션에 대한 공격 성공 사례는 입증되지 않았지만, 이는 향후 해당 프레임워크에 대한 위협이 효과적일 가능성을 배제하지 않습니다.

Spring은 취약점에 대한 공식 성명서를 발표했으며, 현재 취약점에 대한 이해에 따르면 취약점이 존재하기 위해서는 다음 조건이 충족되어야 한다고 명시하고 있습니다:

  • 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.WebDataBinder)를 활용하는 것을 기반으로 합니다:

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

이러한 방식으로 요청이 처리될 때 클래스 로더가 클래스 해결에 사용됩니다. 클래스 로더는 실행 시점에 클래스를 로드하는 역할을 하며, 사전에 모든 가능한 타입을 메모리에 미리 로드할 필요가 없습니다. 새로운 클래스가 사용될 때 어떤 .jar 파일을 로드할지 결정합니다.

이 취약점에 대한 최신 및 상세한 정보는 Spring의 블로그 게시물에서 직접 확인하실 수 있으며, 여기에는 패치 또는 잠재적인 해결 방법도 포함되어 있습니다.

취약점 2: Spring Cloud 기능 (CVE-249 22963)

2022년 3월 27일, 사이버 켄드라(Cyber Kendra)는 패치가 존재하지 않는 Spring Cloud Functions의 원격 코드 실행(RCE) 취약점에 대한 정보를 공개했습니다. 이 취약점에는 CVE-04-22963: Spring Expression의 리소스 접근 취약점이라는 식별 번호가 부여되었습니다.

어떤 애플리케이션이 위협받고 있나요?

해당 취약점은 다음과 같은 조건에서 애플리케이션에 영향을 미쳤습니다:

  • JDK 9 또는 그 이상 버전
  • Spring Cloud Functions 버전 3.1.6(또는 그 이하), 3.2.2(또는 그 이하) 또는 지원되지 않는 모든 버전

운영은 어떻게 이루어지나요?

Spring Cloud Function은 개발자가 spring.cloud.function.routing-expression 속성을 통해 라우팅 처리 방식을 구성할 수 있게 합니다. 일반적으로 구성 파일이나 코드를 통해 설정됩니다. 이는 'Spring 표현식 언어'(SPEL)를 지원하는 강력한 기능입니다. 이 제로데이 취약점을 통해 해당 속성이 요청의 HTTP 헤더를 통해 설정될 수 있다는 사실이 확인되었습니다. 이는 공격자가 RoutingFunction 엔드포인트로 전송하는 HTTP 요청에 SPEL 코드를 직접 포함시켜 임의의 코드를 실행할 수 있음을 의미합니다.

사용자들은 위험을 완화하기 위해 어떤 조치를 취해야 합니까?

Le printemps은 이 문제를 해결하기 위해 HTTP 헤더를 통해 해당 속성 설정을 허용하지 않는 방식으로 취약점을 완화한 버전 3.1.7 및 3.2.3을 출시했습니다. 해당 버전 중 하나로 업그레이드한 후에는 추가 조치가 필요하지 않습니다.

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

소스

목차

PDF 다운로드
리소스 표시
더 알고 싶으신가요?

더 알아보세요

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 주기 전반에 걸쳐 코드를 안전하게 보호하고 사이버보안이 최우선 과제인 문화를 조성하도록 Secure Code Warrior . 애플리케이션 보안 담당자, 개발자, IT 보안 책임자 또는 보안 관련 업무에 종사하는 모든 분들을 위해, 저희는 귀사의 조직이 안전하지 않은 코드로 인한 위험을 줄일 수 있도록 돕습니다.

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

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

더 많은 게시물
자원 센터

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

더 많은 게시물