🇰🇷 한글 설명
rclone 1.56.0부터 1.75.0 버전의 `rclone serve docker` 볼륨 플러그인에서 경로 탐색(Path Traversal) 취약점이 발견되었습니다. 공격자가 Docker VolumeDriver.Create 요청 시 `name` 필드에 상위 디렉토리 이동 문자(`..`)를 포함하면, rclone이 지정된 루트 디렉토리를 벗어나 호스트 시스템의 임의 경로에 디렉토리를 생성하고 원격 파일 시스템을 마운트할 수 있습니다.
💡 쉬운 설명
rclone의 특정 기능을 사용할 때, 공격자가 파일 경로를 조작하여 시스템의 중요한 폴더를 마음대로 건드리거나 덮어쓸 수 있는 보안 약점이 있습니다. 이를 통해 시스템의 정상적인 파일들을 가리거나 방해할 수 있습니다.
🇺🇸 원문 (English)
rclone versions 1.56.0 through 1.75.0 contain a path traversal vulnerability in the `rclone serve docker` volume plugin. newVolume() in cmd/serve/docker/volume.go computes a volume's mountpoint as filepath.Join(drv.root, name) from the attacker-supplied `name` field of a Docker VolumeDriver.Create request without verifying that the result stays within drv.root (default /var/lib/docker-volumes/rclone), and checkMountpoint() then creates that directory with file.MkdirAll before mounting. A volume name containing enough `..` components (e.g. "../../../../../../etc") therefore resolves outside the base directory, allowing anyone able to submit a VolumeDriver.Create request to the plugin socket — normally the Docker daemon, or a workload that can request named volumes in a multi-tenant orchestration setup — to make the privileged rclone plugin process create a directory and mount a remote filesystem specified in the same request at an arbitrary host path, shadowing or disrupting system directories. The advisory notes Volume.restoreState() had the same missing validation when reloading persisted volume state. Fixed in 1.75.1.
📍 영향받는 시스템
rclone versions 1.56.0 through 1.75.0
⚔️ 공격 벡터
Docker VolumeDriver.Create 요청의 name 필드에 '..'를 포함한 경로를 주입하여 발생
🛡️ 대응 방법
rclone 버전을 1.75.1 이상으로 업데이트하십시오.
🔧 검증 코드
명령어 결과에 취약한 버전 범위(1.56.x ~ 1.75.x)가 출력되면 해당 시스템은 취약합니다.
rclone version | grep -E 'rclone v(1\.5[6-7]\.|1\.7[0-5]\.)'