
절대 경로를 통한 인증되지 않은 임의 파일 읽기
인증되지 않은 절대 경로를 통한 임의 파일 읽기
Path.resolve() 메서드가 경로 탐색을 방지하기 위해 사용되고 있지만, 절대 경로를 사용하면 내부 파일을 성공적으로 읽을 수 있음을 발견했습니다. 또한 엔드포인트가 인증되지 않았으므로 누구나 조직의 전체 파일, 파일 시스템을 읽을 수 있습니다. 이는 application-dev.properties에 구성된 저장소 루트(files.store.root = /file-store/)에서의 접근을 허용하여 민감한 내부 파일에 대한 무단 접근을 가능하게 합니다.
storageService.loadAsResource() 메서드는 입력 이름이 상대 경로인지 확인하고 확인된 경로가 의도된 파일 저장소 루트 내에 유지되는지 확인하지 않고 Path.resolve()를 사용합니다. 따라서 fileName으로 절대 경로를 제공하면 해당 임의 파일에 직접 접근할 수 있습니다.
또한 /api/v1/files/{fileName} 엔드포인트는 인증 또는 권한 검사 없이 노출되어 있어 인증되지 않은 사용자가 파일에 접근할 수 있습니다.
사용법:
python3 CVE-2025-46822.py http://victim.com /etc/passwd
링크: