Katalog CVE

CVE-2026-93987

NiskieCVSS 3.4
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.11%

Percentyl 1 - wyżej niż 1% wszystkich znanych CVE

Streszczenie

rclone w wersjach od 1.56.0 do 1.75.0 zawiera podatność path traversal w wtyczce wolumenów `rclone serve docker`. Funkcja newVolume() w cmd/serve/docker/volume.go oblicza punkt montowania jako filepath.Join(drv.root, name) na podstawie pola `name` z żądania Docker VolumeDriver.Create, nie sprawdzając, czy wynik pozostaje w drv.root (domyślnie /var/lib/docker-volumes/rclone), a następnie checkMountpoint() tworzy ten katalog przez file.MkdirAll przed montowaniem. Nazwa wolumenu zawierająca odpowiednio dużo komponentów `..` (np. "../../../../../../etc") pozwala wyjść poza katalog bazowy, umożliwiając osobie mogącej wysłać żądanie VolumeDriver.Create do gniazda wtyczki utworzenie katalogu i zamontowanie zdalnego systemu plików w dowolnej ścieżce hosta. Volume.restoreState() miało tę samą lukę przy wczytywaniu zapisanego stanu wolumenów. Naprawiono w 1.75.1.

Ocena ryzyka

Osoba mogąca wysłać żądanie VolumeDriver.Create do gniazda wtyczki (zwykle demon Docker lub obciążenie w środowisku wielodostępnym) może zmusić uprzywilejowany proces rclone do utworzenia katalogu i zamontowania zdalnego systemu plików w dowolnej ścieżce hosta, przesłaniając lub zakłócając katalogi systemowe.

Rekomendacja

Zaktualizuj rclone do wersji 1.75.1 lub nowszej. Ogranicz dostęp do gniazda wtyczki `rclone serve docker` wyłącznie do zaufanych procesów i rozważ uruchamianie wtyczki z minimalnymi uprawnieniami.

Inne podatności w rclone

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

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.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS