[CVE] CVE 분석 · 작성: 2026-07-20 03:10:34 · 수정: 2026-07-20 03:11:15 · 조회 5
2022년 공개된 Spring Framework의 원격 코드 실행 취약점이다. Log4Shell만큼 광범위하게 알려졌지만, 실제 영향 범위(특정 조건이 맞아야 함)는 더 제한적이었다.
Spring MVC는 HTTP 요청 파라미터를 자바 객체의 필드에 자동으로 매핑해주는 데이터 바인딩 기능이 있다. 이때 파라미터 이름으로 class.module.classLoader로 시작하는 중첩 프로퍼티 경로를 쓰면, Spring이 그 경로를 그대로 따라가면서 객체 내부의 ClassLoader, Tomcat의 로그 설정 객체 같은 내부 구조에까지 접근을 허용해버린다.
class.module.classLoader.resources.context.parent.pipeline.first.pattern 같은 파라미터 경로로 Tomcat의 접근 로그(AccessLog) 포맷 설정에 접근한다.jsp로 지정한다.jsp 파일로 디스크에 써진다즉 Log4Shell처럼 "로그 문자열 안에 코드가 곧바로 실행"되는 게 아니라, "설정을 조작해서 웹쉘 파일을 직접 만들게 유도"하는 방식이다.
Spring Framework 5.3.18 / 5.2.20에서 위험한 프로퍼티 경로(class.* 접두사) 접근을 차단하는 패치가 나왔다. 이 사건은 프레임워크의 편의 기능(자동 바인딩)이 내부 구조까지 무분별하게 노출시킬 수 있다는 걸 보여준 사례로, 화이트리스트 방식으로 바인딩 허용 필드를 명시적으로 제한하는 게 왜 중요한지를 잘 보여준다.