GHSA-45pq-889g-fcgh: rclone: Incomplete path validation allows backend root escape in serve restic
Summary
rclone serve restic does not correctly reject URL paths beginning with ../. On affected backends, an attacker who can access the REST endpoint can read, create, overwrite, or delete objects outside the path configured by the operator.
The issue affects rclone v1.40 through rclone v1.74.4. The proof of concept and backend matrix were validated with the official Linux AMD64 binary for v1.74.4, and the latest master commit reviewed at the time (2217d38) contained the same vulnerable validation. The main proof of concept uses WsgiDAV as an independent storage server and one rclone process.
Affected versions
All releases from v1.40 through v1.74.4 are affected.
Affected components and backend propagation
The primary vulnerable component is the backend-independent WithRemote middleware in cmd/serve/restic/restic.go, lines 235-264. It accepts a leading parent component and stores that unsafe relative path in the request context. The REST handlers then pass the same value to whichever rclone backend the operator configured. Therefore, the flaw is not specific to WebDAV.
The backend determines whether the accepted ../ path escapes, is preserved, or is encoded as safe filename characters. The source locations and line numbers below correspond to the release used for dynamic testing:
| Layer or backend | File and function | Relevant lines | Path propagation | Dynamic evidence |
|---|---|---:|---|---|
| REST server, primary cause | cmd/serve/restic/restic.go, WithRemote | 235-264 | Accepts a leading ../ remote and shares it with GET, HEAD, POST, and DELETE handlers | Confirmed through WebDAV |
| WebDAV | backend/webdav/webdav.go, (*Fs).filePath | 421-427 | path.Join(f.root, file) removes the configured root when resolving ../ | read, write, delete |
| FTP | backend/ftp/ftp.go, (*Fs).NewObject, (*Object).Open, Update, and Remove | 844-848, 1308-1311, 1349-1356, 1411-1415 | Each operation joins the backend root and remote with path.Join before the FTP request | re
Details
Original advisory: https://github.com/advisories/GHSA-45pq-889g-fcgh
Exploitation outlook
EPSS (FIRST.org) estimates each CVE’s probability of exploitation in the next 30 days — here is the CSIRTS.com read on those numbers.
- Low exploitation riskCVE-2026-713090.31% 30-day exploitation probability — currently an unlikely target, but scores change as exploit code circulates. Riskier than 24% of all EPSS-scored CVEs.
Referenced CVEs
| CVE | CSIRTS overview | External |
|---|---|---|
| CVE-2026-71309 | coverage & exploitation status | NVD · CVE.org |
Same CVEs, other sources
How other CERTs, PSIRTs and databases cover the vulnerabilities in this advisory.
More from GitHub Security Advisories
- mediumGHSA-957r-qf9p-67xw: Craft CMS: Arbitrary file read via SplFileObject in non-sandboxed template contexts2026-08-06
- mediumGHSA-6hr6-w5qg-qmwg: h2: Duplicate Host header could facilitate request smuggling2026-08-06
- mediumGHSA-596p-6jv8-775v: Craft CMS: Authenticated leak of secret environment variables2026-08-06
- mediumGHSA-rvmm-v933-jgxq: Craft CMS: Missing authorization check allows non-admin control panel users access to use…2026-08-06
- lowGHSA-7hxc-f267-h5q7: Craft CMS: Incorrect path validation could potentially lead to path traversal2026-08-06