
Spring4Shell(CVE-2022-22965)에 대한 상세한 분석을 제공하며, 취약한 Spring 애플리케이션의 근본 원인, 악용 조건, 영향, CVSS 및 완화 방법을 다룹니다.
치명적인 원격 코드 실행 (RCE) 취약점
공개된 날짜: 2022년 3월 31일
Spring4Shell은 CVE-2022-22965의 별칭으로, Spring의 데이터 바인딩 메커니즘에서 발생하는 취약점으로 공격자가 **원격 코드 실행 (RCE)**을 달성할 수 있습니다.
주로 다음을 사용하는 애플리케이션에 영향을 미쳤습니다:
Spring MVC는 HTTP 요청 매개변수를 Java 객체 필드에 자동으로 매핑합니다. 이를 데이터 바인딩이라고 합니다.
특정 조건에서 공격자는 다음을 수행할 수 있습니다:
이로 인해 궁극적으로 서버에서 임의 코드 실행이 가능해졌습니다.

Spring4Shell은 보편적으로 익스플로잇 가능한 것은 아니었습니다. 다음 조건이 모두 충족되어야 했습니다:
Spring Boot 실행 가능 JAR로 패키징된 경우 일반적으로 익스플로잇이 불가능했습니다.
성공적으로 익스플로잇되면 공격자는 다음을 수행할 수 있습니다:
| 항목 | 값 |
|---|---|
| CVE ID | CVE-2022-22965 |
| CVSS 점수 | 9.8 (치명적) |
| 공격 벡터 | 네트워크 |
| 인증 필요 | ❌ 아니요 |
| 사용자 상호 작용 | ❌ 없음 |
| 영향 | 전체 RCE |
다음으로 업그레이드:
Spring Boot 버전도 이에 맞춰 업데이트되었습니다.
| 날짜 | 사건 |
|---|---|
| 2022년 3월 | 취약점 보고됨 |
| 2022년 3월 31일 | 공개 공표 |
| 같은 날 | 패치 출시 |
| 이후 며칠 | 전 세계적으로 보안 스캔 시작 |
| 특징 | Spring4Shell | Log4Shell |
|---|---|---|
| 프레임워크 | Spring Framework | Apache Log4j |
| CVE | 2022-22965 | 2021-44228 |
| 익스플로잇 복잡도 | 보통 (조건 필요) | 매우 낮음 |
| 기본 노출 범위 | 제한적 | 광범위 |
| CVSS | 9.8 | 10.0 |
Spring4Shell은 심각했지만, Log4Shell이 실제 세계에서 더 넓은 노출 범위를 가졌습니다.
| 필드 | 값 |
|---|---|
| 이름 | Spring4Shell |
| CVE | CVE-2022-22965 |
| 유형 | 원격 코드 실행 |
| 영향받는 소프트웨어 | Spring Framework |
| 심각도 | 치명적 |
| 패치 가능 | 예 |
| 익스플로잇 조건 | 특정 구성 필요 |
Spring4Shell은 현대 프레임워크에서 복잡한 객체 바인딩과 리플렉션이 예상치 못한 공격 표면을 도입할 수 있음을 보여주었습니다.
Log4Shell만큼 전 세계적으로 영향력이 크지는 않았지만, 이는 영향을 받는 환경에서 즉각적인 패치가 필요한 치명적인 취약점으로 남아 있습니다.