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

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

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

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

취약점 1: «Spring4Shell» (CVE-22965)

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

어떤 애플리케이션이 위험에 처해 있나요?

현재까지 Tomcat에 호스팅된 애플리케이션만이 이 새로운 익스플로잇의 위험에 노출된 것으로 확인되었습니다. Tomcat의 내장 서블릿 컨테이너나 Tomcat에 호스팅되지 않은 다른 애플리케이션에 대한 공격 성공 사례는 아직 입증되지 않았으나, 향후 이러한 프레임워크에서도 위협이 성공할 가능성을 배제할 수는 없습니다.

Spring은 취약점에 대한 공식 성명을 발표했으며, 현재 취약점에 대한 이해에 따르면 취약한 상태가 되기 위해서는 다음 조건들이 충족되어야 함을 명확히 밝혔습니다:

  • JDK 9 이상
  • Apache Tomcat을 서블릿 컨테이너로 사용하기
  • 전통적인 WAR 파일로 패키징됨(Spring Boot 실행 파일과는 달리)
  • spring-webmvc 또는 spring-webflux 의존성
  • Spring Framework 버전 5.3.0부터 5.3.17, 5.2.0부터 5.2.19 및 이전 버전

「Spring4Shell」의 악용은 어떻게 이루어지나요?

이 악용은 메서드 시그니처에서 단순한 기존 Java 객체(POJO)를 사용하는 요청에 '데이터 바인딩'(org.springFramework.webbind.WebDataBinder)을 활용하는 것을 기반으로 합니다:

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

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

이 취약점에 대한 최신 및 상세한 정보는 Spring의 블로그 게시물에서 직접 확인하실 수 있으며, 여기에는 가능한 수정 사항이나 대체 해결책도 포함되어 있습니다.

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

2022년 3월 27일, 사이버 켄드라(Cyber Kendra)는 패치가 존재하지 않는 Spring Cloud Functions의 원격 코드 실행(RCE) 취약점에 대한 세부 정보를 공개했습니다. 이 취약점에는 CVE-333322963: 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 코드를 직접 삽입하여 임의의 코드를 실행할 수 있음을 의미합니다.

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

라 프리마베라(La primavera)는 이 문제를 해결하기 위해 3.1.7 및 3.2.3 버전을 공개했습니다. 해당 버전에서는 이 속성이 HTTP 헤더를 통해 설정되는 것을 허용하지 않아 취약점을 완화합니다. 해당 버전 중 하나로 업데이트한 후에는 추가 조치가 필요하지 않습니다.

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

푸엔테스

리소스 보기
리소스 보기

최근 자바 커뮤니티에서 가장 널리 사용되는 라이브러리 중 하나인 Spring 라이브러리에 원격 코드 실행(RCE)과 관련된 2건의 취약점이 발견되었습니다. 우리는 'Spring4Shell'과 'Spring Cloud Function'에 대해 알려진 세부 사항을 분석하여 여러분이 위험에 노출되었는지, 그리고 그럴 경우 어떻게 대처해야 하는지 이해하는 데 도움을 드리고자 합니다.

더 알고 싶으신가요?

더 알아보세요

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 라이프사이클 전반에 걸쳐 코드를 보호하고 사이버보안을 최우선으로 하는 문화를 조성하도록 Secure Code Warrior . AppSec 관리자, 개발자, CISO 또는 보안 관련 담당자라면 누구든, 저희는 귀사의 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

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

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

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

취약점 1: «Spring4Shell» (CVE-22965)

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

어떤 애플리케이션이 위험에 처해 있나요?

현재까지 Tomcat에 호스팅된 애플리케이션만이 이 새로운 익스플로잇의 위험에 노출된 것으로 확인되었습니다. Tomcat의 내장 서블릿 컨테이너나 Tomcat에 호스팅되지 않은 다른 애플리케이션에 대한 공격 성공 사례는 아직 입증되지 않았으나, 향후 이러한 프레임워크에서도 위협이 성공할 가능성을 배제할 수는 없습니다.

Spring은 취약점에 대한 공식 성명을 발표했으며, 현재 취약점에 대한 이해에 따르면 취약한 상태가 되기 위해서는 다음 조건들이 충족되어야 함을 명확히 밝혔습니다:

  • JDK 9 이상
  • Apache Tomcat을 서블릿 컨테이너로 사용하기
  • 전통적인 WAR 파일로 패키징됨(Spring Boot 실행 파일과는 달리)
  • spring-webmvc 또는 spring-webflux 의존성
  • Spring Framework 버전 5.3.0부터 5.3.17, 5.2.0부터 5.2.19 및 이전 버전

「Spring4Shell」의 악용은 어떻게 이루어지나요?

이 악용은 메서드 시그니처에서 단순한 기존 Java 객체(POJO)를 사용하는 요청에 '데이터 바인딩'(org.springFramework.webbind.WebDataBinder)을 활용하는 것을 기반으로 합니다:

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

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

이 취약점에 대한 최신 및 상세한 정보는 Spring의 블로그 게시물에서 직접 확인하실 수 있으며, 여기에는 가능한 수정 사항이나 대체 해결책도 포함되어 있습니다.

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

2022년 3월 27일, 사이버 켄드라(Cyber Kendra)는 패치가 존재하지 않는 Spring Cloud Functions의 원격 코드 실행(RCE) 취약점에 대한 세부 정보를 공개했습니다. 이 취약점에는 CVE-333322963: 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 코드를 직접 삽입하여 임의의 코드를 실행할 수 있음을 의미합니다.

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

라 프리마베라(La primavera)는 이 문제를 해결하기 위해 3.1.7 및 3.2.3 버전을 공개했습니다. 해당 버전에서는 이 속성이 HTTP 헤더를 통해 설정되는 것을 허용하지 않아 취약점을 완화합니다. 해당 버전 중 하나로 업데이트한 후에는 추가 조치가 필요하지 않습니다.

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

푸엔테스

리소스 보기
리소스 보기

다음 양식을 작성하여 보고서를 다운로드하십시오.

귀하의 허락을 받아 당사 제품 또는 안전한 암호화 관련 주제에 대한 정보를 보내드리고자 합니다. 귀하의 개인정보는 항상 최대한 신중하게 처리하며, 마케팅 목적으로 타사에 판매하지 않을 것을 약속드립니다.

보내기
scw 성공 아이콘
scw 오류 아이콘
양식을 보내려면 '분석' 쿠키를 활성화하세요. 완료 후에는 언제든지 다시 비활성화해도 됩니다.

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

취약점 1: «Spring4Shell» (CVE-22965)

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

어떤 애플리케이션이 위험에 처해 있나요?

현재까지 Tomcat에 호스팅된 애플리케이션만이 이 새로운 익스플로잇의 위험에 노출된 것으로 확인되었습니다. Tomcat의 내장 서블릿 컨테이너나 Tomcat에 호스팅되지 않은 다른 애플리케이션에 대한 공격 성공 사례는 아직 입증되지 않았으나, 향후 이러한 프레임워크에서도 위협이 성공할 가능성을 배제할 수는 없습니다.

Spring은 취약점에 대한 공식 성명을 발표했으며, 현재 취약점에 대한 이해에 따르면 취약한 상태가 되기 위해서는 다음 조건들이 충족되어야 함을 명확히 밝혔습니다:

  • JDK 9 이상
  • Apache Tomcat을 서블릿 컨테이너로 사용하기
  • 전통적인 WAR 파일로 패키징됨(Spring Boot 실행 파일과는 달리)
  • spring-webmvc 또는 spring-webflux 의존성
  • Spring Framework 버전 5.3.0부터 5.3.17, 5.2.0부터 5.2.19 및 이전 버전

「Spring4Shell」의 악용은 어떻게 이루어지나요?

이 악용은 메서드 시그니처에서 단순한 기존 Java 객체(POJO)를 사용하는 요청에 '데이터 바인딩'(org.springFramework.webbind.WebDataBinder)을 활용하는 것을 기반으로 합니다:

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

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

이 취약점에 대한 최신 및 상세한 정보는 Spring의 블로그 게시물에서 직접 확인하실 수 있으며, 여기에는 가능한 수정 사항이나 대체 해결책도 포함되어 있습니다.

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

2022년 3월 27일, 사이버 켄드라(Cyber Kendra)는 패치가 존재하지 않는 Spring Cloud Functions의 원격 코드 실행(RCE) 취약점에 대한 세부 정보를 공개했습니다. 이 취약점에는 CVE-333322963: 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 코드를 직접 삽입하여 임의의 코드를 실행할 수 있음을 의미합니다.

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

라 프리마베라(La primavera)는 이 문제를 해결하기 위해 3.1.7 및 3.2.3 버전을 공개했습니다. 해당 버전에서는 이 속성이 HTTP 헤더를 통해 설정되는 것을 허용하지 않아 취약점을 완화합니다. 해당 버전 중 하나로 업데이트한 후에는 추가 조치가 필요하지 않습니다.

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

푸엔테스

웹 세미나 보기
시작하다
더 알아보세요

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

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 라이프사이클 전반에 걸쳐 코드를 보호하고 사이버보안을 최우선으로 하는 문화를 조성하도록 Secure Code Warrior . AppSec 관리자, 개발자, CISO 또는 보안 관련 담당자라면 누구든, 저희는 귀사의 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

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

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

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

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

취약점 1: «Spring4Shell» (CVE-22965)

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

어떤 애플리케이션이 위험에 처해 있나요?

현재까지 Tomcat에 호스팅된 애플리케이션만이 이 새로운 익스플로잇의 위험에 노출된 것으로 확인되었습니다. Tomcat의 내장 서블릿 컨테이너나 Tomcat에 호스팅되지 않은 다른 애플리케이션에 대한 공격 성공 사례는 아직 입증되지 않았으나, 향후 이러한 프레임워크에서도 위협이 성공할 가능성을 배제할 수는 없습니다.

Spring은 취약점에 대한 공식 성명을 발표했으며, 현재 취약점에 대한 이해에 따르면 취약한 상태가 되기 위해서는 다음 조건들이 충족되어야 함을 명확히 밝혔습니다:

  • JDK 9 이상
  • Apache Tomcat을 서블릿 컨테이너로 사용하기
  • 전통적인 WAR 파일로 패키징됨(Spring Boot 실행 파일과는 달리)
  • spring-webmvc 또는 spring-webflux 의존성
  • Spring Framework 버전 5.3.0부터 5.3.17, 5.2.0부터 5.2.19 및 이전 버전

「Spring4Shell」의 악용은 어떻게 이루어지나요?

이 악용은 메서드 시그니처에서 단순한 기존 Java 객체(POJO)를 사용하는 요청에 '데이터 바인딩'(org.springFramework.webbind.WebDataBinder)을 활용하는 것을 기반으로 합니다:

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

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

이 취약점에 대한 최신 및 상세한 정보는 Spring의 블로그 게시물에서 직접 확인하실 수 있으며, 여기에는 가능한 수정 사항이나 대체 해결책도 포함되어 있습니다.

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

2022년 3월 27일, 사이버 켄드라(Cyber Kendra)는 패치가 존재하지 않는 Spring Cloud Functions의 원격 코드 실행(RCE) 취약점에 대한 세부 정보를 공개했습니다. 이 취약점에는 CVE-333322963: 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 코드를 직접 삽입하여 임의의 코드를 실행할 수 있음을 의미합니다.

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

라 프리마베라(La primavera)는 이 문제를 해결하기 위해 3.1.7 및 3.2.3 버전을 공개했습니다. 해당 버전에서는 이 속성이 HTTP 헤더를 통해 설정되는 것을 허용하지 않아 취약점을 완화합니다. 해당 버전 중 하나로 업데이트한 후에는 추가 조치가 필요하지 않습니다.

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

푸엔테스

목차

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

더 알아보세요

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 라이프사이클 전반에 걸쳐 코드를 보호하고 사이버보안을 최우선으로 하는 문화를 조성하도록 Secure Code Warrior . AppSec 관리자, 개발자, CISO 또는 보안 관련 담당자라면 누구든, 저희는 귀사의 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

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

시작하기 위한 자료

더 많은 게시물
자원 센터

시작하기 위한 자료

더 많은 게시물