
JDK 9+의 Data Binding을 통한 Spring Framework의 RCE 취약점 (CVE-2022-22965 일명 "Spring4Shell")
JDK 9+에서 Data Binding을 통한 Spring Framework RCE 취약점
이 저장소의 목표는 현재까지 공개된 취약점 관련 정보를 최대한 중앙화하고, 해당 경우에 어떤 조치를 취해야 하는지 파악할 수 있도록 하는 것입니다.
충족해야 하는 조건(AND)은 다음과 같습니다.
현재까지는 해당 익스플로잇에 취약하지 않습니다. 하지만 이 취약점은 더 일반적인 특성이므로 다른 방식으로 악용될 가능성이 있음을 유의하십시오.
Spring Framework
이전 버전 또는 더 이상 지원되지 않는 버전도 영향을 받습니다.
Spring Framework
취약점 패치가 불가능한 경우, Spring은 몇 가지 해결 방법을 게시했습니다.
Apache Tomcat은 적절한 보호를 제공하는 3개의 새 버전(10.0.20, 9.0.62, 8.5.78)을 출시했으며, Spring Framework 업데이트에 추가 보호 계층으로 고려하는 것이 좋습니다.
Spring Framework 5.3.18에 의존하는 Spring Boot 2.6.6 및 2.5.12 버전이 출시되었습니다.
도구 https://github.com/hillu/local-spring-vuln-scanner (미러) 를 사용하여 Spring4Shell에 취약한 인스턴스를 탐지할 수 있습니다. 실행 예시는 다음과 같습니다.
./local-spring-vuln-scanner --verbose --log </path/to/file.log> </path/to/app1> </path/to/appN>
이 저장소의 "detection" 디렉토리에서 찾을 수 있는 Wazuh용 탐지 규칙을 개발했습니다. 이 규칙은 다양한 공격 지표(IOA)를 기반으로 공격 시도를 탐지할 수 있습니다.
SerializationUtils.deserialize(...) 메서드 사용을 비승인하기 위한 확정과 관련된 커밋에 대한 추측이 있었습니다. 이 클래스는 외부 입력에 노출되지 않으며 비승인은 이 취약점과 관련이 없습니다.
이 취약점 보고 직전에 게시된 Spring Cloud Function에 대한 CVE(CVE-2022-22963)와 혼동이 있었습니다. 이 역시 관련이 없습니다.
TryHackMe에서 Spring4Shell 익스플로잇을 위한 대화형 실습 환경을 만들었습니다.