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-59732

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

Amit Schendel
Amit Schendel
Senior Security Researcher

Aug 6, 2026·8 min read·0 visits

Executive Summary (TL;DR)

Unsanitized path extraction in rclone allows directory traversal and arbitrary file overwrite.

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.

Vulnerability Overview

The command-line tool rclone supports synchronizing, copying, and archiving files across more than 40 cloud storage providers and local filesystems. Within its feature set, the utility offers an archive extraction capability under the rclone archive extract subcommand. This function is designed to unpack standard compressed formats directly into specified remotes or local targets, handling nested structures efficiently.

Prior to version 1.74.4, the utility did not implement robust path sanitation filters on compressed archives. This omission exposed the extraction process to a well-known vulnerability class commonly referred to as path traversal or 'Zip Slip'. Under this condition, file headers within an archive can contain relative path components that manipulate the destination path during extraction.

When a user executes the extraction tool on an untrusted archive, the utility resolves the relative directory sequences. This resolution can result in writing files to locations outside the user-defined root folder or object prefix. The vulnerability resides globally in the archive processing logic, affecting both local storage backends and simulated hierarchical namespaces on object storage backends.

Security teams must evaluate the risk of this utility when deployed in automated pipelines. Many data ingestion architectures utilize rclone to process files automatically. If these pipelines ingest archives from external or unauthenticated sources, the system becomes vulnerable to directory escape and target state corruption.

Root Cause Analysis

The root cause of CVE-2026-59732 lies in the reliance on Go's standard library path.Join() function without prior input validation. During the extraction of archive structures, such as ZIP or TAR archives, the utility retrieves individual entry headers. Specifically, the field NameInArchive contains the relative location of the file as recorded by the archive creation utility.

In vulnerable versions of rclone, the utility attempts to clean the path by removing simple relative prefixes. This is executed using the strings.TrimPrefix(remote, "./") construct. However, this check is insufficient because it only targets leading ./ patterns and ignores parent directory traversal indicators such as ../ or backslash representations on Windows targets.

Following the prefix trimming, the code attempts to restrict the destination by joining the user-defined output path (dstDir) with the archive entry path (remote). The logic executes path.Join(dstDir, remote). Because path.Join automatically invokes path.Clean, it collapses any parent directory traversal sequences. For instance, joining a destination path of restricted_dir with an archive entry of ../escaped.txt yields escaped.txt.

This behavior is highly problematic when interacting with cloud storage systems like Amazon S3. In object storage, directories are simulated using prefix strings on flat key structures. Because the path collapses, the target key evaluates to a location outside the logical prefix directory. Consequently, rclone uploads the file directly to the broader bucket level, breaking the expected directory isolation boundary.

Code Analysis

An inspection of the vulnerable implementation in cmd/archive/extract/extract.go highlights the flawed handling of user-controlled archive paths. The original logic retrieved the archive header name and attempted to clean it with simple string manipulation. It then combined the directory values without confirming that the final path remained subordinate to the base directory.

// Vulnerable Code Implementation in rclone < 1.74.4
remote := f.NameInArchive
 
// Strip leading "./" from archive paths.
remote = strings.TrimPrefix(remote, "./")
 
// If the entry was exactly "./" (the root dir), skip it
if remote == "" && f.IsDir() {
	return nil
}
 
if dstDir != "" {
	remote = path.Join(dstDir, remote)
}

To remediate this structural flaw, the development team introduced a dedicated validation function named destPath. This helper enforces a strict validation routine on all archive member paths before any operations take place. It parses each segment of the path to identify traversal patterns and terminates processing upon discovering unsafe structures.

// Patched Code Implementation in rclone 1.74.4
func destPath(nameInArchive, dstDir string) (string, error) {
	remote := strings.TrimPrefix(nameInArchive, "./")
	isSeparator := func(r rune) bool { return r == '/' || r == '\\' }
 
	// Split path into segments and check for directory traversal markers
	for _, segment := range strings.FieldsFunc(remote, isSeparator) {
		if segment == ".." {
			return "", fmt.Errorf("refusing to extract archive entry %q with a %q path component", nameInArchive, "..")
		}
	}
 
	if remote == "" {
		return "", nil
	}
 
	if dstDir != "" {
		remote = path.Join(dstDir, remote)
	}
	return remote, nil
}

> [!NOTE] > The patched logic splits paths using both forward slash / and backslash \ as separators. This ensures that Windows-specific paths are handled securely, preventing traversal attempts on environments where backslashes are resolved dynamically. The use of strings.FieldsFunc guarantees that every subdirectory token is inspected individually.

Exploitation Methodology

Exploitation of CVE-2026-59732 requires a local user or automated script to execute the rclone archive extract command against a maliciously structured archive. The attacker does not need direct access to the target host if they can influence the source archive files being processed by an automated ingestion pipeline. This makes the attack highly relevant for file upload endpoints and automated data-processing tasks.

An attacker begins by creating a standard compressed archive, such as a ZIP file. Because standard archiving utilities restrict the creation of paths containing parent directory segments, the attacker uses specialized scripting tools to write raw bytes directly into the archive headers. The file headers are manually adjusted to set file path values to target locations like ../target_file.txt or ../../target_file.txt.

Once the archive is prepared, the attacker induces the target system to run the extraction process. The extraction command is initiated with a specific destination folder. The following command illustrates the execution structure:

rclone archive extract malicious_payload.zip :s3:company-data-bucket/user_space/destination_folder

When rclone processes the file named ../overwritten_config.json, the path resolver converts the target key to user_space/overwritten_config.json. The application completes the upload to this calculated key path. The file is written outside the intended destination_folder prefix, which can overwrite existing objects and alter application configuration settings within the cloud storage architecture.

Impact Assessment

The concrete security impact of CVE-2026-59732 depends on the execution environment and the permissions assigned to the rclone utility. In scenarios where rclone operates with high-privilege credentials on local filesystems, a path traversal can lead to unauthorized file writes. An attacker can write files to sensitive directories, potentially altering system configuration files or writing malicious scripts into startup folders.

In cloud storage environments, the impact is primarily centered on integrity and availability. Cloud providers utilize flat object spaces with logical directory prefixes. If the credentials assigned to rclone possess broad write permissions across an entire bucket, the utility can overwrite files in sibling directories. This bypasses folder-level logical isolation and compromises data integrity within shared storage spaces.

The vulnerability is assigned a CVSS score of 5.0 (Medium). The score reflects the requirement of user interaction, as a victim or system must trigger the extraction command. Additionally, no direct confidentiality impact is associated with the vulnerability, meaning the flaw does not facilitate direct arbitrary file read operations. However, the integrity and operational disruption risks remain significant.

Mitigation and Remediation

The primary and most effective remediation path is to upgrade all rclone installations to version 1.74.4 or higher. This release integrates the segment-based tokenization check within the destPath helper, which successfully identifies and blocks all traversal attempts. Security teams should audit their container images and automation environments to ensure older binaries are replaced.

In environments where immediate software upgrades are not feasible, administrators must implement strict access controls. When utilizing cloud providers like Amazon S3, apply the principle of least privilege to IAM policies. Limit the scope of write actions to specific prefixes using condition keys, ensuring that even if rclone attempts to resolve a path outside the destination, the cloud provider blocks the write operation.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:PutObject"],
      "Resource": ["arn:aws:s3:::company-data-bucket/user_space/destination_folder/*"]
    }
  ]
}

Additionally, running rclone within sandboxed environments such as Docker containers with restricted volume mounts reduces local filesystem exposure. Ensure that containerized workloads run as non-root users and do not mount host root directories. This isolation prevents any path traversal on the local host from affecting critical operating system files.

Official Patches

rcloneRelease v1.74.4 containing the security fix

Fix Analysis (2)

Technical Appendix

CVSS Score
5.0/ 10
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:N/I:L/A:L
EPSS Probability
0.21%
Top 88% most exploited

Affected Systems

rclone

Affected Versions Detail

Product
Affected Versions
Fixed Version
rclone
rclone
< 1.74.41.74.4
AttributeDetail
CWE IDCWE-22
Attack VectorLocal (AV:L)
CVSS Score5.0 (Medium)
EPSS Score0.00213 (Percentile: 11.63%)
ImpactIntegrity and Availability (Partial)
Exploit StatusProof of Concept (PoC) available
KEV StatusNot listed

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')

The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.

Known Exploits & Detection

GitHubVulnerability testing logic and unit tests validating path traversal patterns in cmd/archive/archive_test.go

Vulnerability Timeline

Security patch committed to the main development branches
2026-06-29
GitHub Advisory GHSA-4vr5-p2gc-h23p published
2026-07-14
CVE-2026-59732 formally published to the NVD
2026-07-14
rclone stable version v1.74.4 released
2026-07-14
CVE record updated with full scoring and specifications
2026-07-21

References & Sources

  • [1]Official GitHub Security Advisory
  • [2]Core Fix Commit (Main)
  • [3]Cherry-Picked Fix Commit (Stable)
  • [4]rclone v1.74.4 Release Notes
  • [5]NVD CVE Record
  • [6]CVE.org Authority Record

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

•about 1 hour ago•CVE-2025-15366
5.9

CVE-2025-15366: Protocol Command Injection in Python CPython imaplib Standard Library

CVE-2025-15366 is a command injection vulnerability in Python's standard imaplib module, occurring due to the improper neutralization of carriage returns (\r), line feeds (\n), and null bytes (\x00). When an application passes user-controlled input into standard IMAP library calls, an attacker can break out of the line-oriented protocol context and execute arbitrary IMAP directives with the privileges of the authenticated session.

Amit Schendel
Amit Schendel
2 views•7 min read
•about 2 hours ago•CVE-2026-71313
6.9

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

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.

Amit Schendel
Amit Schendel
1 views•7 min read
•about 3 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 4 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 5 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 6 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