Executive brief
rclone serve s3 is a local S3-compatible server component used to expose file directories over the S3 protocol. A path traversal vulnerability allows remote attackers to read and overwrite files at the root level of the served directory by using ".." segments in S3 object key names, bypassing bucket namespace isolation and potentially exposing or modifying sensitive files.
Technical details
The vulnerability is a path traversal / improper path normalization flaw in the S3 backend layer (cmd/serve/s3/backend.go). The root cause is use of Go's path.Join() function, which normalizes ".." segments as filesystem-style path components, on opaque S3 object keys that should be treated literally. An attacker can craft S3 requests with object keys such as "../root-secret.txt" to escape the bucket namespace; when path.Join("bucket", "../root-secret.txt") is evaluated, it resolves to "root-secret.txt" in the serve root directory. The vulnerability affects GET (read), PUT (write), and DELETE operations, and requires only network reachability—no authentication is required when the server is run without --auth-key. The fix is available in rclone version 1.74.4 and later.
Affected products
- rclone rclone before 1.74.4
Timeline
- 2026-07-08: disclosed: GitHub Security Advisory GHSA-8v25-v8p6-qf7v published
- 2026-08-25: advisory: CVE-2026-79781 published on NVD
- 2026: patched: Fix available in rclone 1.74.4