CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-71313

CVE-2026-71313: Local Directory Traversal in rclone via Unsafe Encoding Configurations

Amit Schendel
Amit Schendel
Senior Security Researcher

Aug 6, 2026·7 min read·1 visit

Executive Summary (TL;DR)

In rclone versions v1.51.0 to v1.74.x, configured local target encodings that omit dot-protection allow malicious remote filenames to escape the designated sync root and manipulate arbitrary host files.

A local encoding path traversal vulnerability exists in rclone versions from v1.51.0 up to v1.75.0. When non-default local encoding parameters (such as Slash, None, or Raw) are specified, rclone's standard decoder maps safely encoded fullwidth dot-dot characters back into native directory traversal components. Since the local backend historically lacked a post-resolution path containment check, these relative segments resolved outside the designated synchronization root, allowing arbitrary file creation and modification on the host system.

Vulnerability Overview

The affected component is rclone's local backend implementation. Rclone is a widely used command-line utility designed to synchronize files and directories between local storage and various cloud storage providers. The local backend manages direct file and directory read/write operations when syncing files onto the host operating system. This component exposes a critical attack surface whenever rclone operates on untrusted remote repositories.

The vulnerability is classified under CWE-22 (Improper Limitation of a Pathname to a Restricted Directory / 'Path Traversal'). When certain non-default local destination encoding configurations are enabled, rclone maps standard-encoded fullwidth dot sequences into directory traversal path components. The local directory boundary constraint is not validated during this decoding process, which allows remote storage sources to write to arbitrary paths.

The vulnerability has an impact on file integrity and availability. An attacker who controls a synchronized remote repository can construct specific filenames that escape the intended local destination directory when downloaded by a vulnerable client configuration. This enables unauthorized write operations to administrative or critical system paths on the target machine.

Root Cause Analysis

To safely process object names across disparate file storage platforms, rclone uses a standardized transformation architecture. Many cloud storage providers allow characters that are restricted on local host filesystems, such as backslashes, colons, or relative directory markers. Rclone translates these dangerous remote characters into safe Unicode equivalent representations during standard operation to prevent directory traversal and file corruption during synchronization.

Specifically, a double-dot relative reference (..) is translated into fullwidth double dots (..) during transmission. Under default configurations, when the local backend writes these files to the local disk, the standard encoder (defined by encoder.OS) maintains safety by preserving the fullwidth characters or applying safe transformations. This translation logic is handled by the FromStandardPath function, which maps normalized paths back to native representations.

However, if the local backend's encoding is manually configured to exclude the Dot flag, such as with --local-encoding Slash, None, or Raw, FromStandardPath translates the safe fullwidth dot sequence (..) back into native literal dots (..). This output is then passed to Go's filepath.Join function alongside the target root path of the synchronization directory.

Go's filepath.Join automatically cleans the combined string to evaluate relative path segments. While filepath.Join removes redundant path separators and simplifies relative steps, it does not restrict the resolved path from climbing past the parent boundaries of the root folder. If the relative input contains sufficient parent directory sequences, the final clean path is resolved entirely outside of the intended target directory.

Code Analysis

Prior to version v1.75.0, the path resolution in rclone's local backend relied entirely on the encoding subsystem to prevent traversal. The following snippet illustrates the vulnerable path calculation logic within backend/local/local.go:

// Vulnerable path calculation in local.go
func (f *Fs) localPath(name string) string {
	// f.opt.Enc.FromStandardPath decodes fullwidth characters based on configuration
	// filepath.FromSlash converts forward slashes to native OS separators
	// filepath.Join resolves the combined path but lacks boundary validation
	return filepath.Join(f.root, filepath.FromSlash(f.opt.Enc.FromStandardPath(name)))
}

If the configuration excludes the Dot flag, the returned path escapes the designated root without raising an error. The patch in version v1.75.0 addresses this by introducing a post-resolution verification check. This check computes the relationship between the final path and the intended destination root using the standard library's filepath.Rel function:

// Patched path calculation in local.go
func (f *Fs) localPath(name string) (string, error) {
	native := filepath.FromSlash(f.opt.Enc.FromStandardPath(name))
	localPath := filepath.Join(f.root, native)
	
	// Calculate the relative path from the root to the target path
	rel, err := filepath.Rel(f.root, localPath)
	
	// If the calculation fails, or if the relative path resolves to parent directories,
	// return an explicit path escape error
	if err != nil || rel == ".." || strings.HasPrefix(rel, ".."+string(filepath.Separator)) {
		return "", fserrors.NoRetryError(fmt.Errorf("%q: %w", name, errPathEscapes))
	}
	return localPath, nil
}

This refactoring changes the function signature to return both the path string and an error. When the path resolution escapes the directory boundary, the function returns a non-retryable error (errPathEscapes). Every caller within local.go that accesses the filesystem was updated to handle this error and abort the write transaction immediately.

Exploitation Mechanics

Exploitation of this vulnerability requires a set of specific execution criteria. First, an attacker must control or gain write access to a remote repository that is synchronized by a target user. The attacker populates this remote source with objects containing encoded traversal patterns. For instance, the attacker creates an object named ../../etc/cron.d/malicious_cron within the remote cloud bucket.

Second, the victim must run rclone with a command-line configuration that overrides the default safe encoding of the local destination. The command must specify an encoding that omits the standard Dot translation, as shown in the following example execution:

rclone sync remote:source /var/tmp/sync_destination --local-encoding Slash

During synchronization, rclone fetches the object list and decodes the standard fullwidth dot sequence into native directory traversal characters (..). Because the destination path is resolved purely via filepath.Join without containment checks, the local backend writes the attacker-supplied file content to the host directory, bypasses the /var/tmp/sync_destination boundary, and deposits the payload directly in /etc/cron.d/.

Impact Assessment

The security consequences of a successful path traversal exploit are significant and depend on the execution privileges of the rclone process. If the command runs with administrative or root permissions, the attacker can overwrite sensitive system files or inject executable scripts into system-wide directories such as /etc/cron.d or /etc/profile.d. This results in arbitrary code execution with the permissions of the host operating system.

In environments where rclone runs as an unprivileged user, the exploit remains highly impactful. The attacker can modify or overwrite user configuration files like ~/.bashrc, ~/.ssh/authorized_keys, or local application files. These modifications allow for local privilege escalation, persistent access, or lateral movement within the network.

The CVSS v3.1 base score of 6.9 is characterized by a network attack vector and high integrity impact, but requires high attack complexity because the vulnerability depends on specific user configuration choices. The scope of the attack is changed because the security controls separating the synchronized directory from the surrounding operating system filesystem are bypassed entirely.

Mitigation and Remediation

The most effective remediation is to upgrade rclone to version v1.75.0 or later. In these updated versions, the local backend natively implements the filepath.Rel validation step, terminating the sync operation and throwing a path escape error before executing any local file creation or modification commands.

If immediate system upgrades are not feasible, administrators must audit all automated scripts, cron tasks, and user configuration files to ensure that custom local encoding options are disabled. In particular, configurations must not define --local-encoding or the equivalent configuration keys with parameters such as Slash, None, or Raw. The default encoder settings must be restored to guarantee standard safety protections.

As a defense-in-depth practice, rclone processes should be executed under restricted user profiles or containerized sandboxes. Restricting the file system access of the process using mechanisms like AppArmor, SELinux, or lightweight containers limits the impact of potential directory traversals by ensuring the process cannot write to critical administrative system directories even if a path escape occurs.

Fix Analysis (1)

Technical Appendix

CVSS Score
6.9/ 10

Affected Systems

rclone command-line utility (v1.51.0 through v1.74.x)

Affected Versions Detail

Product
Affected Versions
Fixed Version
rclone
rclone
>= 1.51.0, < 1.75.0v1.75.0
AttributeDetail
CWE IDCWE-22 (Improper Limitation of a Pathname to a Restricted Directory)
Attack VectorNetwork (AV:N)
CVSS v3.1 Score6.9 (Medium)
Exploit StatusPoC-level
CISA KEV StatusNo

MITRE ATT&CK Mapping

T1083File and Directory Discovery
Discovery
T1005Data from Local System
Collection
CWE-22
Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

References & Sources

  • [1]https://github.com/rclone/rclone/security/advisories/GHSA-7p4m-qxvv-g567
  • [2]https://github.com/rclone/rclone/commit/6a69713864b1d8f6edbc03d8af735f9624576d6e
  • [3]https://github.com/rclone/rclone/releases/tag/v1.75.0

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•1 minute ago•CVE-2026-59732
5.0

CVE-2026-59732: Path Traversal (Zip Slip) Vulnerability in rclone archive extract

A path traversal vulnerability (Zip Slip variant) exists in rclone's archive extract functionality before version 1.74.4. The command fails to sanitize relative directory components in archive headers, allowing files to be written outside the target directory or cloud prefix. This issue can result in arbitrary file writes or cloud object overwrites depending on the permissions of the credentials used. Nick Craig-Wood authored the patch on June 29, 2026, which was released in version 1.74.4 on July 14, 2026. This vulnerability is assigned CVE-2026-59732 and is cataloged as GHSA-4vr5-p2gc-h23p. This report provides a detailed root cause analysis, code-level diff, and remediation steps.

Amit Schendel
Amit Schendel
0 views•8 min read
•about 2 hours ago•CVE-2026-71315
8.2

CVE-2026-71315: Nuxt route rules silently dropped for mixed-case paths, bypassing appMiddleware auth gates (incomplete fix for CVE-2026-53721)

An security bypass vulnerability exists in Nuxt frameworks where route rules containing mixed-case characters are silently dropped during case-insensitive routing. This occurs because lookups are folded to lowercase, but keys are stored in their original casing in the route-matching trie. As a result, critical authorization middleware, such as appMiddleware, is bypassed, allowing unauthorized access to restricted pages.

Amit Schendel
Amit Schendel
2 views•7 min read
•about 3 hours ago•CVE-2026-71316
7.5

CVE-2026-71316: Information Disclosure and Authorization Bypass in Nuxt Runtime Payload Caching

CVE-2026-71316 is a high-severity vulnerability affecting the Nuxt web development framework in versions 4.4.0 up to (but excluding) 4.5.1. Due to the lack of runtime isolation in the shared server runtime storage driver, unauthenticated remote attackers can query the static-like JSON representation of a route's server-side rendered (SSR) state (_payload.json) and bypass configured page guards and application middleware to obtain highly sensitive user session records.

Amit Schendel
Amit Schendel
3 views•7 min read
•about 4 hours ago•CVE-2026-71318
4.8

CVE-2026-71318: Unauthorized Component Instantiation via Nuxt Server Island Props

CVE-2026-71318 is a vulnerability in Nuxt where unauthenticated remote attackers can trigger unauthorized component instantiation and arbitrary HTML element injection. This security flaw is caused by default attribute inheritance (fallthrough) combined with polymorphic root components inside island components accessible via the /__nuxt_island/ endpoint. Attackers can bypass standard routing checks to instantiate globally registered components or inject raw HTML tags like iframes. This vector is highly reachable since it does not require enabling the vue.runtimeCompiler option. It is patched in Nuxt versions 3.21.10 and 4.5.1.

Alon Barad
Alon Barad
2 views•9 min read
•about 5 hours ago•CVE-2026-71319
9.6

CVE-2026-71319: Remote Code Execution via Unauthenticated RPC in Nuxt DevTools

An unauthenticated remote code execution (RCE) vulnerability exists in Nuxt DevTools prior to version 3.3.1. The vulnerability arises from an unauthenticated RPC channel exposed over the Vite Hot Module Replacement (HMR) WebSocket server, allowing an attacker to modify file editor configurations and execute arbitrary commands under the server context.

Alon Barad
Alon Barad
7 views•4 min read
•about 6 hours ago•CVE-2026-71320
8.1

CVE-2026-71320: Remote Code Execution in Nuxt via Server-Side Template Injection in Server Islands

A highly critical Server-Side Remote Code Execution (RCE) vulnerability exists in the Nuxt framework when Server Islands and the Vue runtime compiler are simultaneously enabled. This allows unauthenticated remote attackers to execute arbitrary system commands on the host process by passing a crafted component definition object to the dynamic component resolution engine via public island endpoints.

Alon Barad
Alon Barad
5 views•9 min read