🇰🇷 한글 설명
Spring Boot의 ApplicationTemp 디렉토리 소유권 검증 부재 취약점으로, 로컬 공격자가 예측 가능한 임시 디렉토리를 제어할 수 있습니다. 영구 세션 저장소 활성화 시 세션 정보 탈취 및 인증된 사용자 계정 탈취가 가능하며, 가젯 체인 악용을 통해 애플리케이션 권한으로 임의 코드 실행이 가능합니다.
💡 쉬운 설명
Spring Boot 임시 파일 폴더의 보안 문제로 같은 컴퓨터의 공격자가 사용자 세션 정보를 빼내거나 악성 코드를 실행할 수 있습니다. 특히 세션을 파일에 저장하도록 설정했을 때 위험합니다.
🇺🇸 원문 (English)
A local attacker on the same host as the application may be able to take control of the directory used by `ApplicationTemp`. When `server.servlet.session.persistent` is set to `true` and the attack persists across application restarts, this may allow the attacker to read session information and hijack authenticated users or deploy a gadget chain and execute code as the application's user.
Affected: Spring Boot 4.0.0–4.0.5 (fix 4.0.6), 3.5.0–3.5.13 (fix 3.5.14), 3.4.0–3.4.15 (fix 3.4.16), 3.3.0–3.3.18 (fix 3.3.19), 2.7.0–2.7.32 (fix 2.7.33); predictable temp directory / `ApplicationTemp` ownership verification. Versions that are no longer supported are also affected per vendor advisory.
📍 영향받는 시스템
Spring Boot 4.0.0-4.0.5, 3.5.0-3.5.13, 3.4.0-3.4.15, 3.3.0-3.3.18, 2.7.0-2.7.32 및 지원 종료 버전
⚔️ 공격 벡터
로컬 공격자가 예측 가능한 ApplicationTemp 디렉토리를 제어하여 세션 파일을 조작 및 탈취
🛡️ 대응 방법
영향받는 버전을 패치 버전으로 업그레이드 (4.0.6, 3.5.14, 3.4.16, 3.3.19, 2.7.33 이상) 또는 server.servlet.session.persistent를 false로 설정
🔧 검증 코드
패치 전 취약한 버전이 표시되면 위험, 패치 버전 이상이 표시되거나 아무것도 출력되지 않으면 안전
grep -E '<version>.*\.(4\.[0-5]\.|3\.[3-5]\.|2\.7\.)' pom.xml build.gradle gradle.properties 2>/dev/null | head -1