CVE-2026-49980: Rclone: Unauthenticated command execution in `rclone rcd --rc-serve` via inline remote instantiation, bypassing CVE-2026-41179 fix

Published Jun 16, 2026
·
Updated

Summary

rclone rcd --rc-serve accepts unauthenticated GET and HEAD requests to paths of the form:

text /[remote:path]/object

The remote value is parsed from the URL and passed to normal backend initialization. Inline remote configuration can set backend options that execute local commands during initialization. As a result, a single unauthenticated GET or HEAD request can execute a command as the rclone process user.

Versions from 1.55.0 onwards are vulnerable to command execution. Earlier versions (from 1.46.0) are vulnerable to the unauthenticated local file read described under "Additional impact" but not to command execution, because inline backend option overrides did not exist until 1.55.0.

Preconditions

Preconditions for this vulnerability are:

- The rclone remote control API must be enabled, either by the --rc flag or by running the rclone rcd server - The remote control API must be reachable by the attacker - by default rclone only serves the rc to localhost unless the --rc-addr flag is in use - The rc must have been deployed without global RC HTTP authentication - so not using --rc-user/--rc-pass/--rc-htpasswd/etc - The --rc-serve flag must be in use

Impact

An unauthenticated network attacker who can reach the RC HTTP listener can execute commands as the rclone process user.

Additional impact observed during testing:

- GET and HEAD both trigger backend initialization. - The same path allows unauthenticated local file read through inline local remotes. - Inline global. options can mutate process-wide rclone configuration, including global.httpproxy. - Browser subresource requests can also trigger the issue against a localhost-only RC listener. In testing, Firefox triggered the payload from a public HTTPS page containing only an <img> tag pointing at http://127.0.0.1:5572/.... This is an additional impact multiplier, not the primary attack precondition.

Mitigations / Workarounds

- Upgrade to rclone 1.74.3 (or 1.75.0 when released). - Or, configure HTTP authentication on the rc with --rc-user/--rc-pass or --rc-htpasswd, which has always been the recommended deployment. - Or, do not use --rc-serve if file serving is not needed.

The Fix

The vulnerabilities in this advisory have been fixed by two commits:

- rc: fix unauthenticated command execution via --rc-serve inline remotes - rc: stop global. connection string options changing config

Other sources

Rclone is a command-line program to sync files and directories to and from different cloud storage providers. From 1.46.0 until 1.74.3, rclone rcd --rc-serve accepts unauthenticated GET and HEAD requests to paths of the form: /[remote:path]/object. The remote value is parsed from the URL and passed to normal backend initialization. Inline remote configuration can set backend options that execute local commands during initialization. As a result, a single unauthenticated GET or HEAD request can execute a command as the rclone process user. This vulnerability is fixed in 1.74.3.

MITRE

Affected Software

2 affected componentsFixes available
go/github.com/rclone/rclone>=1.46.0<=1.74.2
1.74.3
Rclone Rclone>=1.46<1.74.3

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.74.3
  2. Upgrade

    Upgrade rclone to a version that resolves this vulnerability.

    Fixed in 1.74.3
  3. Upgrade

    Upgrade rclone to a version that resolves this vulnerability.

    Fixed in 1.75.0
  4. Configuration

    Ensure the `--rc-serve` flag is in use (per advisory precondition for the vulnerable path: /[remote:path]/object).

    rclone rc (rclone rcd --rc-serve) --rc-serve = in use
  5. Configuration

    Configure HTTP authentication on the rc using `--rc-user`/`--rc-pass` (or `--rc-htpasswd`/related `--rc-htpasswd` option as mentioned) so unauthenticated GET/HEAD requests cannot execute commands.

    rclone rc (rclone rcd --rc) rc listener authentication = enabled
  6. Configuration

    Do not expose the RC HTTP listener beyond localhost: avoid using `--rc-addr` so the rc remains reachable only on localhost by default.

    rclone rc (rclone rcd) --rc-addr = not used (localhost-only)
  7. Configuration

    Stop using inline `global.*` options in remote configuration/connection strings because they can mutate process-wide rclone configuration (including `global.http_proxy`).

    rclone rc (rclone rcd --rc-serve) global.* inline remote options = disabled/avoided
  8. Configuration

    If file serving is not needed, do not use `--rc-serve` to reduce exposure to the vulnerable unauthenticated GET/HEAD paths.

    rclone rc (rclone rcd) --rc-serve = not used (when file serving not needed)

Event History

Jun 16, 2026
Advisory Published
via GitHub·11:39 PM
Data Sourced
via GitHub·11:39 PM
DescriptionSeverityWeaknessAffected Software
Jun 24, 2026
CVE Published
via MITRE·05:52 PM
Data Sourced
via MITRE·05:52 PM
DescriptionSeverityWeakness
Data Sourced
via Red Hat·07:01 PM
DescriptionSeverityAffected Software
Data Sourced
via NVD·07:17 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2026-49980?

The severity of CVE-2026-49980 is critical with a score of 9.8.

2

What risks are associated with CVE-2026-49980?

CVE-2026-49980 poses significant risks as it allows unauthenticated access to sensitive data through `GET` and `HEAD` requests.

3

How do I fix CVE-2026-49980?

To fix CVE-2026-49980, disable unauthenticated access by configuring proper authentication for the `rclone rcd --rc-serve` command.

4

Which software is affected by CVE-2026-49980?

CVE-2026-49980 affects the rclone software from the repository go/github.com/rclone/rclone.

5

When was CVE-2026-49980 published?

CVE-2026-49980 was published on June 16, 2026.

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