Spring4Shell 취약점
CVE 식별자: CVE-2022-22965
이름: Spring Core의 원격 코드 실행 취약점 (Spring4Shell)
등급: High
설명: Spring 프레임워크의 JDK9 버전 이상에서는 원격 공격자가 특정 조건을 충족하는 프레임워크의 매개변수 바인딩 기능을 통해 AccessLog Value 객체 및 악성 필드 값을 획득하여 파이프라인 메커니즘을 트리거할 수 있다.
영향받는 시스템: JDK9 이상, Spring 프레임워크 버전 5.3.17, 5.2.0, 5.2.19
(JDK8 이하에서는 취약점의 영향을 받지 않는다.)
Spring4Shell 버전 확인 방법 (IntelliJ 기준):
- 문제되는 클래스의 패키지 경로 확인 (프로젝트에 포함되는지 확인)
- Spring 프레임워크 버전 확인
문제의 대상이 되는 버전임을 확인하였다.
해결 방법:
- build.gradle에서 Spring Boot 안정화된 최신(Stable) 버전 업데이트
dependency-management 안정화된 최신(Stable) 버전으로 업데이트
- 정상적으로 문제없는 버전으로 업데이트 되었는지 확인
- 테스트 코드로 정상작동 여부 검증
만약 버전을 업데이트 할 수 없는 상황이라면 참고자료 (링크)에서 스프링 버전 변경없이 보안 취약점 대응을 확인하면 된다.
참고한 자료:
- https://www.boho.or.kr/data/secNoticeView.do?bulletin_writing_sequence=66592
- https://tanzu.vmware.com/security/cve-2022-22963
- https://github.com/darryk10/CVE-2022-22963
- https://www.redhat.com/ko/topics/security/what-is-cve
CVE(Common Vulnerabilities and Exposures)란: 공개적으로 알려진 컴퓨터 보안 결함 목록이다. CVE는 보통 CVE ID 번호가 할당된 보안 결함을 의미한다.