2022. 5. 20. 14:58ㆍ최신취약점/CVE
Spring4Shell
JDK 9버전 이상의 Spring Core에서 RCE(Remote Code Execution) 가능한 취약점
공개 당시 0-day 상태
이후 CVE-2022-22965 할당 및 패치 공개
CVSS 9.8받음
공격 원리
JDK 9+에서 Spring MVC나 Spring WebFlux가 구동중이고,
Endpoint에 Data binder가 enabled 된 경우에 Request에 포함된 공격코드를 Binding 하면서 공격자가 의도한 로직 실행
Data binder에서 class를 의미하는 string 값은 binding 하지 못하도록 제한되어야 하는데, 이 부분에 결함 추정
공격의 한계
알려진 내용으로는 Exploit이 war 파일로 배포되는 경우에 영향을 받는다고 함
Spring boot가 기본적으로 jar를 통한 배포를 사용하기 때문에 생각보다 파급력이 크지 않음
리스크는 여전히 존재하니 가급적이면 패치하는게 좋음
취약 버전
- Spring framework 5.3.0 - 5.3.17
- Spring framework 5.2.0 - 5.2.19
- 및 구버전
- https://github.com/spring-projects/spring-framework/archive/refs/tags/v5.3.17.zip
- https://github.com/spring-projects/spring-framework/archive/refs/tags/v5.3.18.zip
패치 버전
- Spring framework 5.3.18+, 5.2.2+
- Spring boot 2.5.12, 2.6.6
참고사이트:
https://www.hahwul.com/2022/04/05/spring4shell/
Spring4Shell RCE 취약점 (CVE-2022-22965)
지난 주 Spring4Shell 취약점으로 인해 인터넷이 또 불탈 뻔 했습니다. 다행히 Log4Shell 보단 재현하기 어렵다는 문제로 무난하게 지나갔는데요. 겸사겸사 좀 늦었지만 이슈 정리해서 글로 올려볼까
www.hahwul.com
https://github.com/reznok/Spring4Shell-POC
GitHub - reznok/Spring4Shell-POC: Dockerized Spring4Shell (CVE-2022-22965) PoC application and exploit
Dockerized Spring4Shell (CVE-2022-22965) PoC application and exploit - GitHub - reznok/Spring4Shell-POC: Dockerized Spring4Shell (CVE-2022-22965) PoC application and exploit
github.com
JDK 9버전 이상의 Spring Core에서 RCE(Remote Code Execution)이 가능한 취약점입니다. 공개 당시 0-day 상태였고, 이후 CVE-2022-22965 할당 및 패치가 공개되었습니다. 별거 아니다, 심각한거다 이야기가 많았는데 결국 CVSS 9.8을 받았네요.
구현
LMS 더미(ㅎㅂㄷLMS)
+ install docker
+ CVE-2022-22965 POC (docker환경 구축)
Kali 2022
+ CVE-2022-22965 POC (exploit용)
구현(구성도)
Kali2022(192.168.189.132) - Centos7(192.168.189.145)
컨텐츠
[Web]
FROM lunasec/tomcat-9.0.59-jdk11
ADD src/ /helloworld/src
ADD pom.xml /helloworld
# Build spring app
RUN apt update && apt install maven -y
WORKDIR /helloworld/
RUN mvn clean package
# Deploy to tomcat
RUN mv target/helloworld.war /usr/local/tomcat/webapps/
EXPOSE 8080
CMD ["catalina.sh", "run"]
POC에 있던 "dockerfile" 내용(Docker container 만드는 파일)
[Kali]
방지방안
스프링4셸 취약점을 봉쇄하는 최선의 방법은 스프링 프레임워크를 버전 5.3.18 또는 5.2.20으로, 스프링 부트를 버전 2.6.6 또는 2.5.12로 업데이트
또 다른 임시 대응책은 톰캣 버전을 스프링4셸에 대응해 출시된 10.0.20, 9.0.62 또는 8.5.78로 업그레이드
'최신취약점 > CVE' 카테고리의 다른 글
CVE-2023-220809 (0) | 2023.01.27 |
---|