🇰🇷 한글 설명
Spring Boot의 내장 Artemis 메시지 브로커 설정 시 데이터 디렉토리 경로가 고정되어 있어, 로컬 공격자가 애플리케이션 시작 전에 예측 가능한 경로의 디렉토리를 미리 생성하거나 심볼릭 링크를 설치할 수 있습니다. 이는 애플리케이션의 데이터 무결성을 해칠 수 있는 취약점입니다.
💡 쉬운 설명
프로그램이 저장할 폴더 이름을 미리 정해두어, 해커가 그 폴더를 미리 만들어 놓거나 속일 수 있는 문제입니다. 이로 인해 프로그램이 잘못된 데이터를 읽거나 오작동할 위험이 있습니다.
🇺🇸 원문 (English)
Spring Boot's ArtemisEmbeddedConfigurationFactory uses a fixed, static path for the embedded Artemis message broker's data directory when no explicit path is configured. A local attacker on the same host can pre-create this predictable directory or place a symlink before the application starts.
Affected versions:
Spring Boot 4.0.0 through 4.0.6; 3.5.0 through 3.5.14; 3.4.0 through 3.4.16; 3.3.0 through 3.3.19; 2.7.0 through 2.7.33.
📍 영향받는 시스템
Spring Boot 4.0.0-4.0.6, 3.5.0-3.5.14, 3.4.0-3.4.16, 3.3.0-3.3.19, 2.7.0-2.7.33
⚔️ 공격 벡터
로컬 사용자가 애플리케이션 시작 전 고정 경로에 디렉토리 또는 심볼릭 링크를 생성하여 데이터 경로를 조작함
🛡️ 대응 방법
Spring Boot를 최신 안정 버전으로 업그레이드하거나, Artemis 데이터 디렉토리 경로를 명시적으로 설정하여 예측 가능성을 제거함
🔧 검증 코드
명령어 실행 시 명시적인 데이터 디렉토리 설정 없이 ArtemisEmbeddedConfigurationFactory가 사용되면 취약한 구성일 가능성이 높음
grep -r 'ArtemisEmbeddedConfigurationFactory' /path/to/spring-boot-app 2>/dev/null | grep -v 'dataDirectory'