{"id":"GHSA-qw24-gh76-8rvv","revision":null,"records":[{"revision":"a79ae8d20936496bafb0ac18cb8b5bd1","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-49980","aliases":[],"title":"Rclone: Unauthenticated command execution in `rclone rcd --rc-serve` via inline remote instantiation, bypassing CVE-2026-41179 fix","description":"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.","state":0,"publishedAt":"2026-06-24T17:52:33.024+00:00","modifiedAt":"2026-08-10T12:05:48.128+00:00","affected":[{"ecosystem":"Vendor product","name":"rclone","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"rclone\",\n                    \"product\": \"rclone\",\n                    \"versions\": [\n                        {\n                            \"version\": \">= 1.46.0, < 1.74.3\",\n                            \"status\": \"affected\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","score":9.8,"severity":"CRITICAL"}],"references":["https://github.com/rclone/rclone/security/advisories/GHSA-qw24-gh76-8rvv"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-49980","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-49980","identifiers":["CVE-2026-49980"]},"retained":false,"historicalAffected":[]},{"revision":"263c7af1bc0041a994b448e6cc4fcdf6","observedAt":"2026-11-13T14:01:17.369+00:00","statement":{"source":"euvd","id":"EUVD-2026-39018","aliases":["CVE-2026-49980","GHSA-qw24-gh76-8rvv"],"title":"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]…","description":"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.","state":0,"publishedAt":null,"modifiedAt":null,"affected":[],"metrics":[{"system":"EUVD CVSS 3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","score":9.8,"severity":null}],"references":["https://github.com/rclone/rclone/security/advisories/GHSA-qw24-gh76-8rvv"],"sourceUrl":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-39018","license":"ENISA EUVD · source terms and attribution apply","enrichment":{"sourceStatus":null,"weaknesses":[],"productCriteria":[],"sourceDates":{"datePublished":"Jun 24, 2026, 5:52:33 PM","dateUpdated":"Aug 10, 2026, 12:05:48 PM"},"relatedAdvisories":[{"id":"openSUSE-SU-2026:21436-1","title":"Security update for rclone","vulnerabilityIds":["CVE-2025-68121","CVE-2026-25680","CVE-2026-25681","CVE-2026-27136","CVE-2026-27141","CVE-2026-27145","CVE-2026-32952","CVE-2026-33809","CVE-2026-33813","CVE-2026-33814","CVE-2026-39821","CVE-2026-39824","CVE-2026-39827","CVE-2026-39828","CVE-2026-39829","CVE-2026-39830","CVE-2026-39831","CVE-2026-39832","CVE-2026-39833","CVE-2026-39834","CVE-2026-39835","CVE-2026-41176","CVE-2026-41179","CVE-2026-42500","CVE-2026-42502","CVE-2026-42504","CVE-2026-42506","CVE-2026-42507","CVE-2026-42508","CVE-2026-44740","CVE-2026-46595","CVE-2026-46597","CVE-2026-46598","CVE-2026-49980","CVE-2026-54572","CVE-2026-59732","CVE-2026-59733"]},{"id":"openSUSE-SU-2026:10975-1","title":"rclone-1.74.3-1.1 on GA media","vulnerabilityIds":["CVE-2026-27145","CVE-2026-42504","CVE-2026-42507","CVE-2026-49980"]}],"note":"EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON."},"key":"euvd:EUVD-2026-39018","identifiers":["EUVD-2026-39018","CVE-2026-49980","GHSA-qw24-gh76-8rvv"]},"retained":false,"historicalAffected":[]},{"revision":"9e9601d891ee4b7aaebfbdf69049226b","observedAt":"2026-10-25T12:17:38.331+00:00","statement":{"source":"nvd","id":"CVE-2026-49980","aliases":[],"title":"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]…","description":"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.","state":0,"publishedAt":"2026-06-24T19:17:11.597+00:00","modifiedAt":"2026-08-07T12:18:00.47+00:00","affected":[],"metrics":[{"system":"CVSS 3.1 · security-advisories@github.com · Secondary","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","score":9.8,"severity":"CRITICAL"},{"system":"CVSS 3.1 · 0b0ca135-0b70-47e7-9f44-1890c2a1c46c · Secondary","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","score":8.1,"severity":"HIGH"}],"references":["https://github.com/rclone/rclone/security/advisories/GHSA-qw24-gh76-8rvv","https://access.redhat.com/security/cve/CVE-2026-49980","https://bugzilla.redhat.com/show_bug.cgi?id=2492478","https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-49980.json"],"sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-49980","license":"NIST NVD usage terms; underlying source attribution retained","enrichment":{"sourceStatus":"Modified","weaknesses":["CWE-306","CWE-78"],"productCriteria":["cpe:2.3:a:rclone:rclone:*:*:*:*:*:*:*:*"],"sourceDates":{"published":"2026-06-24T19:17:11.597","lastModified":"2026-08-07T12:18:00.470"},"relatedAdvisories":[],"note":"NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON."},"key":"nvd:CVE-2026-49980","identifiers":["CVE-2026-49980"]},"retained":false,"historicalAffected":[]},{"revision":"1e9e23619bb4493e8c53cf652aaf2cde","observedAt":"2026-10-24T13:19:41.952+00:00","statement":{"source":"osv","id":"GHSA-qw24-gh76-8rvv","aliases":["BIT-rclone-2026-49980","CVE-2026-49980","GO-2026-5596"],"title":"Rclone: Unauthenticated command execution in `rclone rcd --rc-serve` via inline remote instantiation, bypassing CVE-2026-41179 fix","description":"## Summary\n\n`rclone rcd --rc-serve` accepts unauthenticated `GET` and `HEAD` requests to paths of the form:\n\n```text\n/[remote:path]/object\n```\n\nThe `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.\n\nVersions 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.\n\n## Preconditions\n\nPreconditions for this vulnerability are:\n\n- The rclone remote control API must be enabled, either by the `--rc` flag or by running the `rclone rcd` server\n- 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\n- The rc must have been deployed without global RC HTTP authentication - so not using `--rc-user`/`--rc-pass`/`--rc-htpasswd`/etc\n- The `--rc-serve` flag must be in use\n\n## Impact\n\nAn unauthenticated network attacker who can reach the RC HTTP listener can execute commands as the rclone process user.\n\nAdditional impact observed during testing:\n\n- `GET` and `HEAD` both trigger backend initialization.\n- The same path allows unauthenticated local file read through inline `local` remotes.\n- Inline `global.*` options can mutate process-wide rclone configuration, including `global.http_proxy`.\n- 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.\n\n## Mitigations / Workarounds\n\n- Upgrade to rclone 1.74.3 (or 1.75.0 when released).\n- Or, configure HTTP authentication on the rc with `--rc-user`/`--rc-pass`\n  or `--rc-htpasswd`, which has always been the recommended deployment.\n- Or, do not use `--rc-serve` if file serving is not needed.\n\n## The Fix\n\nThe vulnerabilities in this advisory have been fixed by two commits:\n\n- rc: fix unauthenticated command execution via `--rc-serve` inline remotes\n- rc: stop `global.*` connection string options changing config","state":0,"publishedAt":"2026-06-16T23:39:41+00:00","modifiedAt":"2026-09-10T03:50:50.2909082+00:00","affected":[{"ecosystem":"Go","name":"github.com/rclone/rclone","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"1.46.0"},{"kind":"fixed","version":"1.74.3"}]}],"versions":[],"rawVersionEvidence":null}],"metrics":[{"system":"CVSS_V3","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","score":null,"severity":null},{"system":"Publisher rating","vector":null,"score":null,"severity":"CRITICAL"}],"references":["https://github.com/rclone/rclone/security/advisories/GHSA-qw24-gh76-8rvv","https://nvd.nist.gov/vuln/detail/CVE-2026-49980","https://access.redhat.com/security/cve/CVE-2026-49980","https://bugzilla.redhat.com/show_bug.cgi?id=2492478","https://github.com/rclone/rclone","https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-49980.json"],"sourceUrl":"https://github.com/advisories/GHSA-qw24-gh76-8rvv","license":"GitHub Advisory Database · CC-BY-4.0","key":"osv:GHSA-qw24-gh76-8rvv","identifiers":["GHSA-qw24-gh76-8rvv","BIT-rclone-2026-49980","CVE-2026-49980","GO-2026-5596"]},"retained":false,"historicalAffected":[]},{"revision":"56df10e93f2243b6a870f6759d4b0cb9","observedAt":"2026-10-24T13:19:41.952+00:00","statement":{"source":"osv","id":"GO-2026-5596","aliases":["BIT-rclone-2026-49980","CVE-2026-49980","GHSA-qw24-gh76-8rvv"],"title":"Unauthenticated command execution in rclone rcd via inline remotes in github.com/rclone/rclone","description":"The --rc-serve path in rclone allows unauthenticated remote instantiation, enabling unauthenticated command execution. An attacker can use inline remote backend options such as sftp ssh to run arbitrary commands as the rclone user.","state":0,"publishedAt":"2026-08-11T23:21:06+00:00","modifiedAt":"2026-08-14T15:42:04.0541897+00:00","affected":[{"ecosystem":"Go","name":"github.com/rclone/rclone","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"1.49.0"},{"kind":"fixed","version":"1.74.3"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"Go","name":"github.com/ncw/rclone","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"1.46.0"}]}],"versions":[],"rawVersionEvidence":null}],"metrics":[],"references":["https://github.com/rclone/rclone/security/advisories/GHSA-qw24-gh76-8rvv","https://github.com/rclone/rclone/commit/48da1774f4999d1d46543308b9a7fe75585dbfc4","https://github.com/rclone/rclone/commit/9222ed2c5a7678de7fa620214b0858311c707a29","https://access.redhat.com/security/cve/CVE-2026-49980","https://bugzilla.redhat.com/show_bug.cgi?id=2492478","https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-49980.json"],"sourceUrl":"https://osv.dev/vulnerability/GO-2026-5596","license":"OSV · upstream source license applies","key":"osv:GO-2026-5596","identifiers":["GO-2026-5596","BIT-rclone-2026-49980","CVE-2026-49980","GHSA-qw24-gh76-8rvv"]},"retained":false,"historicalAffected":[]}],"coverage":[{"source":"cisa-kev:global","scope":"Complete CISA KEV catalog; all vendors. Missing entries do not establish absence of exploitation.","generation":"2026-11-15T11:05:17.2943378+00:00","complete":true,"records":1781,"lastAttemptAt":"2026-11-15T11:05:17.2943378+00:00","lastSuccessAt":"2026-11-15T11:05:17.4673918+00:00","error":null,"lastVerifiedAt":"2026-11-15T11:05:17.4673928+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"cve-program","scope":"Official CVE Program baseline and cumulative hourly delta; all vendors, published and rejected records","generation":"cve-7de4d7559a5263003f03d9f70577ab06f92ba4178309f26fce53e22a4a959294-f90179050d1e68c26defb06294e68ca9aad67fa6285a72a309f2510089445b08","complete":true,"records":425787,"lastAttemptAt":"2026-11-15T11:01:58.8542146+00:00","lastSuccessAt":"2026-11-15T11:01:58.8389797+00:00","error":null,"lastVerifiedAt":"2026-11-15T11:01:58.8542146+00:00","snapshotPublishedAt":"2026-11-15T10:28:09+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"euvd","scope":"Rolling EUVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global EUVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-f981543109394c8f9b3df5737aa835e7","complete":false,"records":13821,"lastAttemptAt":"2026-11-15T11:15:00.6236179+00:00","lastSuccessAt":"2026-11-15T11:15:00.619+00:00","error":"257 identifier lookups failed; latest failures include AccessDenied (HTTP 403). Other identifiers were checked independently.","lastVerifiedAt":"2026-11-15T11:15:00.619+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13558,"expectedIdentifiers":13874,"failedIdentifiers":257},{"source":"first-epss:nuget","scope":"FIRST EPSS for explicit CVE aliases in the collected public NuGet archive. Not a global EPSS backfill.","generation":"2026-11-15T11:05:17.2943378+00:00","complete":true,"records":1125,"lastAttemptAt":"2026-11-15T11:05:17.2943378+00:00","lastSuccessAt":"2026-11-15T11:05:17.4693563+00:00","error":null,"lastVerifiedAt":"2026-11-15T11:05:17.4693566+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"nvd","scope":"Rolling NVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global NVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-d33b5144615b488f88b7a7390696bc39","complete":true,"records":13833,"lastAttemptAt":"2026-11-15T11:05:18.0594066+00:00","lastSuccessAt":"2026-11-15T10:02:36.038+00:00","error":null,"lastVerifiedAt":"2026-11-15T10:02:36.038+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13874,"expectedIdentifiers":13874,"failedIdentifiers":0},{"source":"osv:Go","scope":"Complete OSV Go ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"go-64eea06dbd27de8464d5dbce1b78cc794cc59e2d901516ae0d3ea76e624cdae0","complete":true,"records":9955,"lastAttemptAt":"2026-11-15T11:05:12.198625+00:00","lastSuccessAt":"2026-11-14T13:57:23.1208135+00:00","error":null,"lastVerifiedAt":"2026-11-15T11:05:12.198625+00:00","snapshotPublishedAt":"2026-11-14T13:17:57+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:NuGet","scope":"Complete OSV NuGet ecosystem archive, including GitHub Advisory Database records; NuGet version matching only","generation":"nuget-f4424d7d4861b1af1404bd15abcb83f295dcd003412a9340ca99dc8200aa148a","complete":true,"records":2014,"lastAttemptAt":"2026-11-15T11:01:59.0034935+00:00","lastSuccessAt":"2026-11-13T19:57:08.2864435+00:00","error":null,"lastVerifiedAt":"2026-11-15T11:01:59.0034935+00:00","snapshotPublishedAt":"2026-11-13T19:33:10+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:crates.io","scope":"Complete OSV crates.io ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"crates.io-6086d649bcb454cdf302d7d9275177bda73550e1b6e446b3520e9b6266d3582c","complete":true,"records":3148,"lastAttemptAt":"2026-11-15T11:05:17.2566792+00:00","lastSuccessAt":"2026-11-15T11:05:17.1034234+00:00","error":null,"lastVerifiedAt":"2026-11-15T11:05:17.2566792+00:00","snapshotPublishedAt":"2026-11-15T10:03:04+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:npm","scope":"Complete OSV npm ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"npm-ff18f36f13fcca3a20a3fb9274b59b8872d18869a99071730e1e79b625c8f612","complete":true,"records":232475,"lastAttemptAt":"2026-11-15T11:05:12.0533004+00:00","lastSuccessAt":"2026-11-15T11:05:10.4195883+00:00","error":null,"lastVerifiedAt":"2026-11-15T11:05:12.0533004+00:00","snapshotPublishedAt":"2026-11-15T10:33:06+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null}]}