• 회원가입



클라우드콘솔
1:1 문의하기
컨설팅 신청
무상제공 신청
자주하는 질문
공지사항
뉴스레터
보도자료
전시/세미나
이벤트
자료실
 
 

공지사항

[JAVA] Spring Framework 취약점 발견 / CVE-2022-22965
작성자    | admin 작성일   | 2022-04-01 조회수  | 2108

발생 버전 / 영향 버전

1) JDK 9 이상에서 Spring Framework를 사용하는 경우

- Spring Framework 5.3.0 ~ 5.3.17, 5.2.0 ~ 5.2.19 및 이전 버전

※ JDK 8 이하를 사용하는 경우 취약점의 영향을 받지 않습니다.

 

발생 배경

Spring 보안 팀에서 Spring Framework 및 Spring Cloud Function 관련 원격 코드 취약점을 발견하였습니다.

 

특정 조건(JDK9↑) 이 만족하는 상황과 환경에서 원격 공격자가 Framework의 매개변수 바인드 기능을 이용하여

AccessLogValve 객체 및 악성 필드 값들을 획득하고 이를 이용하여 PipeLine 매커니즘을 트리거할 수 있습니다.

 

이와 같이 트리거를 진행한 이후 임의 경로 하위에 파일을 쓰는 방식이 가능한 것으로 확인되었습니다.

 

참고 자료

Spring Blog: https://spring.io/blog/2022/03/31/spring-work-rce-early-announcement

ESTSecurity: https://blog.alyac.co.kr/4600?category=750247

KISA: https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=66592

 


이슈 버전 확인 방법

1) JDK 버전 확인

 

$ java -version

 

 

2) Spring Framework 사용 유무 확인

- 프로젝트 내 jar, war 패키지를 zip 확장자로 변경하여 압축 해제 후 대상 디렉토리에서 아래와 같이 명령어 실행

 

$ find . -name spring-beans*.jar

$ find . -name spring*.jar

$ find . -name CachedIntrospectionResuLts.class

 
 
 

 

해결 방안

사용하는 JDK 버전과 Spring Framework 사용 유무를 확인한 뒤 최신 버전으로 업데이트 적용이 필요합니다.

제조사 홈페이지에서 지속 신규 버전이 업데이트 되고 있는 상태로 확인 후 업데이트 적용이 필요합니다.

 

- CVE-2022-22965(Spring4Shell)

· Spring Framework 5.3.18, 5.2.20 버전으로 업데이트

 

- CVE-2022-22963

· Spring Cloud Function 3.1.7, 3.2.3 버전으로 업데이트

 

신규 버전의 프로그램 다운로드 경로

https://repo.maven.apache.org/maven2/org/springwork/cloud/spring-cloud-function-context/

 

임시 조치 방안 (업데이트가 불가한 경우) - CVE-2022-22965

프로젝트 패키지 아래 해당 전역 클래스를 생성한 뒤 재컴파일을 진행 후 적용합니다.

** 재컴파일을 진행한 이후에는 프로그램이 정상적으로 동작하는지 별도 테스트가 필요합니다.

 

import org.springwork.core.Ordered;

import org.springwork.core.annotation.Order;

import org.springwork.web.bind.WebDataBinder;

import org.springwork.web.bind.annotation.ControllerAdvice;

import org.springwork.web.bind.annotation.InitBinder;

 

@ControllerAdvice

@Order(10000)

public class BinderControllerAdvice {

@InitBinder

public setAllowedFields(WebDataBinder dataBinder) {

String[] denylist = new String[]{"class.*", "Class.*", "*.class.*", "*.Class.*"};

dataBinder.setDisallowedFields(denylist);

}

}

 
 

감사합니다.

목록
KT Cloud NAVER Cloud 호스팅 솔루션 고객센터 마이페이지
클라우드 서버
데이터베이스
스토리지/CDN
엔터프라이즈
보안
네트워크
매니지먼트
마켓플레이스
서비스별 제한사항
클라우드 소개
클라우드 서버
클라우드 소개



Amazon AWS
엔클라우드24의 AWS
클라우드 소개
매니지드 서비스
서버/코로케이션/IDC
클라우드 디도스 방어존
도메인센터
SSL 보안서버 인증서
웹호스팅
중국VPN
홈페이지 제작
협업 플랫폼


1:1 문의 하기
컨설팅 신청
무상제공 신청
자주하는 질문
공지사항
뉴스레터
보도자료
전시/세미나
이벤트
자료실

회원정보 수정
로그인 방식 선택
장바구니
자주쓰는 등록정보 관리
요금 및 이용내역
서비스 사용현황
클라우드 제품
호스팅 솔루션
발행요청
1:1 문의내역


KT Cloud
NAVER CLOUD PLATFORM
Amazon AWS
AliCloud

(주)웰데이타시스템 엔클라우드24 | 대표이사 : 맹상영 | 사업자등록번호 : 220-86-71461 | 통신판매업신고 : 2012-경기성남-0210
본사 : (13492) 경기도 성남시 분당구 대왕판교로 644번길 86 (삼평동 730) 4층
전화 : 1544-9302 | 팩스 : 031-8016-8519 | 전자우편 : webmaster@ncloud24.com | 개인정보관리책임자 : 이종진 매니저
Copyright(c) 2011 www.ncloud24.com