CVE-2026-71310: rclone: Unbounded HTTP CONNECT Response Headers Can Exhaust rclone Memory

Published Aug 5, 2026
·
Updated

1. Summary

The shared HTTP CONNECT helper parses a proxy response with http.ReadResponse over an unrestricted buffered reader. The production helper accepted a valid response containing a 2 MiB header in three consecutive runs. A malicious or compromised configured proxy, or an active on-path actor controlling a plaintext HTTP-proxy hop, can grow memory until the process fails.

The security impact is process-wide exhaustion, not loss of access through the malicious proxy, which the proxy already controls. The victim must configure and use the proxy, so UI is Required and the rating is Medium.

2. Affected Assets & Attack Surface

- Verified rclone revision: a0c09f1381ae93e2a9a33c529d170186c61ad058 (v1.74.0-240-ga0c09f138) - Current-master check: lib/proxy/http.go was unchanged at master commit 961266888fe797390c535386f3b3aa46f4853602 on 2026-07-18 - Shared helper: lib/proxy/http.go:23-81 - SFTP use: backend/sftp/sshinternal.go:25-45 - FTP use: backend/ftp/ftp.go:465-479 - Proxy peer: configured malicious/compromised proxy or active on-path actor for a plaintext HTTP proxy - TLS boundary: HTTPS proxy connections authenticate the proxy before this response is parsed, so an on-path actor must also defeat TLS

3. Technical Root Cause Analysis

HTTPConnectDial invokes http.ReadResponse(br, req) directly. This call does not inherit http.Transport.MaxResponseHeaderBytes. In the Go implementation used for validation, exported textproto.Reader.ReadMIMEHeader passes math.MaxInt64 limits, and textproto.NewReader explicitly instructs callers to use io.LimitReader or an equivalent bound for denial-of-service resistance. Rclone supplies no bound or total CONNECT-handshake deadline. The helper additionally returns the raw connection, so a safe remediation must preserve any tunnel bytes already buffered after the CONNECT response.

4. Proof-of-Concept & Evidence

1. Configure the helper to use a test proxy. 2. Accept rclone's CONNECT request. 3. Return HTTP/1.1 200 Connection Established with an X-Fill header containing 2 MiB of data. 4. The actual helper parses and accepts the entire response without a fixed ceiling; this succeeded in all three reruns.

The test establishes unbounded parsing behavior without intentionally exhausting the host.

5. Impact Assessment

Large or concurrent CONNECT responses can terminate the rclone process and interrupt unrelated FTP/SFTP remotes and mounts. Runtime OOM cannot be contained by RC panic recovery. SFTP reaches this parser before SSH server authentication, so target host-key validation does not constrain a malicious proxy; HTTPS proxy authentication does constrain ordinary on-path attackers.

6. Remediation Guidance

- Enforce a total CONNECT status/header budget before parsing. - Add a fixed total handshake deadline as well as idle deadlines. - Close the connection on an oversized or malformed response. - Return a wrapper that consumes already buffered post-response tunnel bytes before the raw connection. - Test large single/multiple headers, slow streaming, and concurrent handshakes.

Other sources

rclone is a command-line program to sync files and directories to and from different cloud storage providers. Prior to 1.75.0, the shared HTTP CONNECT helper in lib/proxy/http.go parses proxy CONNECT responses with http.ReadResponse over an unrestricted buffered reader, allowing a malicious or compromised configured proxy, or an active on-path actor controlling a plaintext HTTP proxy hop, to send oversized headers that grow memory until the rclone process fails. The affected helper is used by FTP and SFTP proxy connections, and SFTP reaches the parser before SSH server authentication, so target host key validation does not constrain a malicious proxy. This issue is fixed in 1.75.0.

MITRE

Affected Software

1 affected componentFixes available
go/github.com/rclone/rclone<=1.74.0
1.75.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade go/github.com/rclone/rclone to a version that resolves this vulnerability.

    Fixed in 1.75.0
  2. Upgrade

    Upgrade rclone to a version that resolves this vulnerability.

    Fixed in 1.75.0
  3. Configuration

    Configure the shared HTTP CONNECT helper (lib/proxy/http.go, used for FTP and SFTP proxy connections) to enforce a fixed total CONNECT status/header budget before parsing the proxy CONNECT response, rather than parsing over an unrestricted buffered reader.

    rclone HTTP CONNECT helper total CONNECT status/header budget = Enforce before parsing
  4. Configuration

    Configure the CONNECT handshake logic in the shared HTTP CONNECT helper (lib/proxy/http.go:23-81) to use a fixed total handshake deadline as well as idle deadlines to prevent slow or stalled CONNECT handshakes.

    rclone HTTP CONNECT helper total handshake deadline and idle deadlines = Add fixed total handshake deadline plus idle deadlines
  5. Configuration

    Modify the CONNECT response parsing to immediately close the connection when the proxy sends oversized or malformed CONNECT responses (before unbounded memory growth can occur).

    rclone HTTP CONNECT helper oversized or malformed response handling = Close connection on oversized or malformed response
  6. Configuration

    When remediating the CONNECT helper, return a wrapper that consumes any already-buffered tunnel bytes (from lib/proxy/http.go) before returning the raw connection, preserving bytes that were read during CONNECT response parsing.

    rclone HTTP CONNECT tunneling consume buffered post-response tunnel bytes before returning raw connection = Return wrapper that consumes already-buffered tunnel bytes

Event History

Aug 5, 2026
CVE Published
via MITRE·08:17 PM
Data Sourced
via MITRE·08:17 PM
DescriptionSeverityWeakness
Advisory Published
via GitHub·08:17 PM
Data Sourced
via GitHub·08:17 PM
DescriptionSeverityWeaknessAffected Software
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2026-71310?

The severity of CVE-2026-71310 is medium with a CVSS score of 5.9.

2

How do I fix CVE-2026-71310?

To fix CVE-2026-71310, update to the latest version of rclone that addresses this vulnerability.

3

What kind of attack does CVE-2026-71310 allow?

CVE-2026-71310 allows potential exploitation through a malicious or compromised proxy that can send overly large headers.

4

Is my system vulnerable to CVE-2026-71310?

If you are using affected versions of rclone and have configured a proxy, your system may be vulnerable to CVE-2026-71310.

5

What are the potential impacts of CVE-2026-71310?

The potential impact of CVE-2026-71310 includes denial of service due to resource exhaustion caused by large headers.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203