{"id":"BIT-rclone-2026-59732","revision":null,"records":[{"revision":"0f2eb6787da4492b8fdd09f4e6f0dd55","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-59732","aliases":[],"title":"rclone archive extract allows S3 destination prefix escape via crafted archive paths","description":"Rclone is a command-line program to sync files and directories to and from different cloud storage providers. Prior to 1.74.4, rclone archive extract can write extracted files outside the user-selected destination prefix when extracting a crafted archive containing parent path components such as ../, allowing creation or overwrite of sibling objects in the same bucket or path scope. This issue is fixed in version 1.74.4.","state":0,"publishedAt":"2026-07-14T21:36:21.03+00:00","modifiedAt":"2026-07-21T14:43:46.387+00:00","affected":[{"ecosystem":"Vendor product","name":"rclone","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"vendor\": \"rclone\",\n                    \"product\": \"rclone\",\n                    \"versions\": [\n                        {\n                            \"version\": \"< 1.74.4\",\n                            \"status\": \"affected\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:N/I:L/A:L","score":5,"severity":"MEDIUM"}],"references":["https://github.com/rclone/rclone/security/advisories/GHSA-4vr5-p2gc-h23p","https://github.com/rclone/rclone/commit/1a746732441e8158f32fab35924b23701e719a8c","https://github.com/rclone/rclone/commit/d11efe0d58fe6a2d6d90675bb9d8ee5840c51e1d","https://github.com/rclone/rclone/releases/tag/v1.74.4"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-59732","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-59732","identifiers":["CVE-2026-59732"]},"retained":false,"historicalAffected":[]},{"revision":"34dd99e994db4a498da38a5423061379","observedAt":"2026-11-13T16:02:38.188+00:00","statement":{"source":"euvd","id":"EUVD-2026-44530","aliases":["CVE-2026-59732","GHSA-4vr5-p2gc-h23p"],"title":"Rclone is a command-line program to sync files and directories to and from different cloud storage providers. Prior to 1.74.4, rclone archive extract can write extracted files outside the user-selected destination prefix when extracting a c…","description":"Rclone is a command-line program to sync files and directories to and from different cloud storage providers. Prior to 1.74.4, rclone archive extract can write extracted files outside the user-selected destination prefix when extracting a crafted archive containing parent path components such as ../, allowing creation or overwrite of sibling objects in the same bucket or path scope. This issue is fixed in version 1.74.4.","state":0,"publishedAt":null,"modifiedAt":null,"affected":[],"metrics":[{"system":"EUVD CVSS 3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:N/I:L/A:L","score":5,"severity":null}],"references":["https://github.com/rclone/rclone/security/advisories/GHSA-4vr5-p2gc-h23p","https://github.com/rclone/rclone/commit/1a746732441e8158f32fab35924b23701e719a8c","https://github.com/rclone/rclone/commit/d11efe0d58fe6a2d6d90675bb9d8ee5840c51e1d","https://github.com/rclone/rclone/releases/tag/v1.74.4"],"sourceUrl":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-44530","license":"ENISA EUVD · source terms and attribution apply","enrichment":{"sourceStatus":null,"weaknesses":[],"productCriteria":[],"sourceDates":{"datePublished":"Jul 14, 2026, 9:36:21 PM","dateUpdated":"Jul 21, 2026, 2:43:46 PM"},"relatedAdvisories":[{"id":"openSUSE-SU-2026:11241-1","title":"rclone-1.74.4-1.1 on GA media","vulnerabilityIds":["CVE-2026-54572","CVE-2026-59732","CVE-2026-59733"]},{"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"]}],"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-44530","identifiers":["EUVD-2026-44530","CVE-2026-59732","GHSA-4vr5-p2gc-h23p"]},"retained":false,"historicalAffected":[]},{"revision":"26f77bd2423b4fc1a5e2f490cc8eab0c","observedAt":"2026-10-25T14:19:22.811+00:00","statement":{"source":"nvd","id":"CVE-2026-59732","aliases":[],"title":"Rclone is a command-line program to sync files and directories to and from different cloud storage providers. Prior to 1.74.4, rclone archive extract can write extracted files outside the user-selected destination prefix when extracting a c…","description":"Rclone is a command-line program to sync files and directories to and from different cloud storage providers. Prior to 1.74.4, rclone archive extract can write extracted files outside the user-selected destination prefix when extracting a crafted archive containing parent path components such as ../, allowing creation or overwrite of sibling objects in the same bucket or path scope. This issue is fixed in version 1.74.4.","state":0,"publishedAt":"2026-07-14T22:17:29.92+00:00","modifiedAt":"2026-07-21T16:17:18.697+00:00","affected":[],"metrics":[{"system":"CVSS 3.1 · security-advisories@github.com · Secondary","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:N/I:L/A:L","score":5,"severity":"MEDIUM"}],"references":["https://github.com/rclone/rclone/commit/1a746732441e8158f32fab35924b23701e719a8c","https://github.com/rclone/rclone/commit/d11efe0d58fe6a2d6d90675bb9d8ee5840c51e1d","https://github.com/rclone/rclone/releases/tag/v1.74.4","https://github.com/rclone/rclone/security/advisories/GHSA-4vr5-p2gc-h23p"],"sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-59732","license":"NIST NVD usage terms; underlying source attribution retained","enrichment":{"sourceStatus":"Modified","weaknesses":["CWE-22"],"productCriteria":["cpe:2.3:a:rclone:rclone:*:*:*:*:*:*:*:*"],"sourceDates":{"published":"2026-07-14T22:17:29.920","lastModified":"2026-07-21T16:17:18.697"},"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-59732","identifiers":["CVE-2026-59732"]},"retained":false,"historicalAffected":[]},{"revision":"ea9fbb255d824649a3feff5dd25764a9","observedAt":"2026-10-24T13:19:41.952+00:00","statement":{"source":"osv","id":"GHSA-4vr5-p2gc-h23p","aliases":["BIT-rclone-2026-59732","CVE-2026-59732","GO-2026-6185"],"title":"rclone archive extract allows S3 destination prefix escape via crafted archive paths","description":"### Summary\n\n`rclone archive extract` can write extracted files outside the user-selected destination prefix when extracting a crafted archive. A malicious archive entry containing parent path components such as `../` can escape the requested extraction prefix and create or overwrite sibling objects in the same bucket/path scope.\n\n### Details\n\nThe affected code path is in `cmd/archive/extract/extract.go`.\n\nIn `ArchiveExtract()`, the archive entry path is taken from `f.NameInArchive`. The code strips only a leading `./` prefix and then joins the archive entry path with the destination directory:\n\n```go\nremote := f.NameInArchive\nremote = strings.TrimPrefix(remote, \"./\")\nif dstDir != \"\" {\n    remote = path.Join(dstDir, remote)\n}\n_, err = operations.Rcat(ctx, dst, remote, fin, f.ModTime(), nil)\n```\n\nParent path components such as `../` are not rejected before `path.Join()` is used.\n\nWhen the destination is an S3-style remote such as:\n\n```text\n:s3:bucket/safe/prefix\n```\n\nrclone creates the destination filesystem rooted at `bucket/safe` and treats `prefix` as the destination directory. If the archive contains an entry named:\n\n```text\n../escaped-from-prefix.txt\n```\n\nthen `path.Join(\"prefix\", \"../escaped-from-prefix.txt\")` resolves to:\n\n```text\nescaped-from-prefix.txt\n```\n\nAs a result, the S3 backend uploads the object to:\n\n```text\nbucket/safe/escaped-from-prefix.txt\n```\n\ninstead of the expected destination:\n\n```text\nbucket/safe/prefix/escaped-from-prefix.txt\n```\n\nThis allows an attacker-controlled archive to escape the selected extraction prefix on object-storage remotes.\n\n### PoC\n\nTest environment:\n\n- Windows 11\n- rclone v1.74.3 official Windows amd64 binary\n- Local fake S3 HTTP endpoint\n- Crafted ZIP archive containing `../escaped-from-prefix.txt`\n\nSteps to reproduce:https://drive.google.com/file/d/1P_cLKFgiWSVSATB8500yP28jdzwt9FAt/view?usp=sharing\n\n1. Extract the attached PoC ZIP.\n\n2. Run the PoC script:\n\n```powershell\npowershell -ExecutionPolicy Bypass -File .\\run-poc.ps1 -RcloneExe \"C:\\path\\to\\rclone.exe\"\n```\n\n3. The PoC creates a ZIP archive containing this entry:\n\n```text\n../escaped-from-prefix.txt\n```\n\n4. The PoC starts a local fake S3 endpoint and runs rclone with an S3-style destination prefix:\n\n```powershell\nrclone archive extract malicious.zip :s3:bucket/safe/prefix\n```\n\n5. Observe the fake S3 request log.\n\nExpected safe behavior:\n\n```text\nPUT /bucket/safe/prefix/escaped-from-prefix.txt\n```\n\nObserved behavior:\n\n```text\nPUT /bucket/safe/escaped-from-prefix.txt?x-id=PutObject\n```\n\nThis shows that the archive entry escaped the requested `safe/prefix` destination and was written under `safe/` instead.\n\nThe PoC package includes:\n\n- `run-poc.ps1`\n- `fake-s3-server.py`\n- `README.md`\n- `report-draft.md`\n- captured proof logs\n\n### Impact\n\nAn attacker who supplies an archive that a victim extracts with `rclone archive extract` can cause extracted files to be written outside the destination prefix selected by the victim when the destination is an S3-style object storage remote.\n\nDepending on the victim's configured remote credentials and bucket permissions, this may allow creation or overwrite of sibling objects outside the intended extraction directory/prefix.\n\nThis does not require compromising the S3 service itself. The attack relies on the victim extracting an attacker-controlled archive with rclone into an object-storage prefix.","state":0,"publishedAt":"2026-08-05T20:43:47+00:00","modifiedAt":"2026-09-10T03:50:53.3139798+00:00","affected":[{"ecosystem":"Go","name":"github.com/rclone/rclone","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"1.74.4"}]}],"versions":[],"rawVersionEvidence":null}],"metrics":[{"system":"CVSS_V3","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:N/I:L/A:L","score":null,"severity":null},{"system":"Publisher rating","vector":null,"score":null,"severity":"MODERATE"}],"references":["https://github.com/rclone/rclone/security/advisories/GHSA-4vr5-p2gc-h23p","https://nvd.nist.gov/vuln/detail/CVE-2026-59732","https://github.com/rclone/rclone/commit/1a746732441e8158f32fab35924b23701e719a8c","https://github.com/rclone/rclone/commit/d11efe0d58fe6a2d6d90675bb9d8ee5840c51e1d","https://github.com/rclone/rclone","https://github.com/rclone/rclone/releases/tag/v1.74.4"],"sourceUrl":"https://github.com/advisories/GHSA-4vr5-p2gc-h23p","license":"GitHub Advisory Database · CC-BY-4.0","key":"osv:GHSA-4vr5-p2gc-h23p","identifiers":["GHSA-4vr5-p2gc-h23p","BIT-rclone-2026-59732","CVE-2026-59732","GO-2026-6185"]},"retained":false,"historicalAffected":[]},{"revision":"13d91bc4b5754aee910cc2d5c59f3fed","observedAt":"2026-10-24T13:19:41.952+00:00","statement":{"source":"osv","id":"GO-2026-6185","aliases":["BIT-rclone-2026-59732","CVE-2026-59732","GHSA-4vr5-p2gc-h23p"],"title":"Path traversal via crafted archive paths in github.com/rclone/rclone","description":"Path traversal via crafted archive paths in github.com/rclone/rclone","state":0,"publishedAt":"2026-08-18T16:38:10+00:00","modifiedAt":"2026-08-18T17:23:53.8430506+00:00","affected":[{"ecosystem":"Go","name":"github.com/rclone/rclone","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"1.74.4"}]}],"versions":[],"rawVersionEvidence":null}],"metrics":[],"references":["https://github.com/rclone/rclone/security/advisories/GHSA-4vr5-p2gc-h23p","https://github.com/rclone/rclone/commit/1a746732441e8158f32fab35924b23701e719a8c","https://github.com/rclone/rclone/commit/d11efe0d58fe6a2d6d90675bb9d8ee5840c51e1d","https://github.com/rclone/rclone/releases/tag/v1.74.4"],"sourceUrl":"https://osv.dev/vulnerability/GO-2026-6185","license":"OSV · upstream source license applies","key":"osv:GO-2026-6185","identifiers":["GO-2026-6185","BIT-rclone-2026-59732","CVE-2026-59732","GHSA-4vr5-p2gc-h23p"]},"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-15T13:01:41.3445250+00:00","complete":true,"records":1781,"lastAttemptAt":"2026-11-15T13:01:41.344525+00:00","lastSuccessAt":"2026-11-15T13:01:46.2867767+00:00","error":null,"lastVerifiedAt":"2026-11-15T13:01:46.2867777+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-24e910670d68255a90dfc1d94d37ac5394a0a43e960361a78142e746e5b8e0e9","complete":true,"records":425790,"lastAttemptAt":"2026-11-15T13:01:16.7308429+00:00","lastSuccessAt":"2026-11-15T13:01:16.7018281+00:00","error":null,"lastVerifiedAt":"2026-11-15T13:01:16.7308429+00:00","snapshotPublishedAt":"2026-11-15T12:22:01+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-bdfb765bb1ab4a33a08fe12942eed468","complete":false,"records":13821,"lastAttemptAt":"2026-11-15T13:05:26.1725806+00:00","lastSuccessAt":"2026-11-15T13:05:26.3381447+00:00","error":null,"lastVerifiedAt":"2026-11-15T13:05:26.3381447+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"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-15T13:01:41.3445250+00:00","complete":true,"records":1125,"lastAttemptAt":"2026-11-15T13:01:41.344525+00:00","lastSuccessAt":"2026-11-15T13:01:46.3027206+00:00","error":null,"lastVerifiedAt":"2026-11-15T13:01:46.3027219+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-00496e381624434cb51cd6ee97f87d5f","complete":true,"records":13833,"lastAttemptAt":"2026-11-15T13:02:04.5706057+00:00","lastSuccessAt":"2026-11-15T13:02:04.555+00:00","error":null,"lastVerifiedAt":"2026-11-15T13:02:04.555+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-15T13:01:38.1237717+00:00","lastSuccessAt":"2026-11-14T13:57:23.1208135+00:00","error":null,"lastVerifiedAt":"2026-11-15T13:01:38.1237717+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-15T13:01:22.067621+00:00","lastSuccessAt":"2026-11-13T19:57:08.2864435+00:00","error":null,"lastVerifiedAt":"2026-11-15T13:01:22.067621+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-15T13:01:41.1317031+00:00","lastSuccessAt":"2026-11-15T11:05:17.1034234+00:00","error":null,"lastVerifiedAt":"2026-11-15T13:01:41.1317031+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-15T13:01:28.8971106+00:00","lastSuccessAt":"2026-11-15T11:05:10.4195883+00:00","error":null,"lastVerifiedAt":"2026-11-15T13:01:28.8971106+00:00","snapshotPublishedAt":"2026-11-15T10:33:06+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null}]}