🇰🇷 한글 설명
SeaweedFS의 S3 API 및 Iceberg REST 카탈로그 게이트웨이에서 경로 정규화가 비활성화되어 발생하는 취약점입니다. 공격자가 URL에 '..' 세그먼트를 포함하여 요청을 보내면, 서버 측에서 경로가 병합되면서 의도하지 않은 버킷이나 파일에 접근할 수 있습니다.
💡 쉬운 설명
파일 경로를 다룰 때 '상위 폴더로 이동'하는 명령어를 제대로 걸러내지 못하는 보안 결함입니다. 이를 통해 공격자는 허가되지 않은 다른 데이터 저장소에 몰래 접근하거나 파일을 조작할 수 있습니다.
🇺🇸 원문 (English)
SeaweedFS is a distributed storage system for object storage (S3), file systems, and Iceberg tables. Prior to 4.30, the S3 API gateway and the Iceberg REST catalog gateway construct their routers with mux.NewRouter().SkipClean(true). With path cleaning disabled, a .. segment inside the URL survives routing, so a request such as `GET /bucket-A/../evil-bucket/key`, is matched as bucket=bucket-A, object=../evil-bucket/key. The captured object key is then joined into a filer path with util.JoinPath (S3) / path.Join (Iceberg), which collapse the .. server-side, so the actual read or write lands in evil-bucket. This vulnerability is fixed in 4.30.
📍 영향받는 시스템
SeaweedFS 4.30 미만 버전
⚔️ 공격 벡터
URL 경로에 '..'를 포함한 특수 요청을 보내 경로 탐색(Path Traversal) 공격 수행
🛡️ 대응 방법
SeaweedFS를 4.30 이상의 최신 버전으로 업데이트
🔧 검증 코드
출력된 버전 번호가 4.30 미만이면 취약한 상태이며, 4.30 이상이면 안전합니다.
seaweedfs --version 2>/dev/null | grep -E '4\.[0-9]{2}'
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N
💻 영향받는 소프트웨어
Spring Cloud Gateway Server