rclone: S3 Redirect Sanitization Omits IBM IAM Bearer Tokens and SSE-C KeysGHSA-8mxv-9xhp-86h4
MEDIUMFix: rclone/rclone@7543a7aGHSA-8mxv-9xhp-86h4 is a medium-severity (CVSS 5.3) Information Exposure vulnerability in github.com/rclone/rclone. A fix is available for github.com/rclone/rclone — see the affected versions and patch details below.
Exploitation Status
Proof-of-concept exploit code exists
- CISA’s SSVC triage found public proof-of-concept exploit code for this CVE, though no confirmed active exploitation.
Exploitation and automatability from CISA’s SSVC triage for GHSA-8mxv-9xhp-86h4.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
GHSA-8mxv-9xhp-86h4 by exploitation likelihood (EPSS) against impact (CVSS). Outside the shaded patch-first corner.
Where this sits among everything scored
Of 383,485 CVEs with a current EPSS score, this one falls in the < 10% band (highlighted). Counts from FIRST.org, log-scaled.
Real-World Exposure
github.com/rclone/rcloneReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Go packages — download data is not available via public APIs for these ecosystems.
Description
1. Summary
The S3 redirect callback strips X-Amz-Security-Token when a redirect changes scheme or host, but it does not strip IBM IAM bearer authorization or customer-provided encryption keys. Two independently validated paths remain:
- a same-host HTTPS-to-HTTP redirect preserves
Authorization: Bearer ...and exposes a reusable IBM IAM token to the plaintext network path; - a cross-origin redirect preserves SSE-C and copy-source SSE-C key headers.
The High rating is driven by the reusable IBM IAM bearer token. The SSE-C cross-origin disclosure is a secondary confidentiality issue. The meaningful threat is a trusted endpoint, gateway, or accelerator that emits an unsafe redirect, followed by an adjacent/on-path observer; describing the originally configured endpoint itself as the attacker would be weak because that endpoint already receives the request secrets.
2. Affected Assets & Attack Surface
- S3 redirect policy:
backend/s3/s3.go:1345-1379 - IBM IAM signer:
backend/s3/ibm_signer.go:28-40 - SSE-C key preparation:
backend/s3/s3.go:1821-1837 - Affected operations: requests carrying IBM IAM authorization, SSE-C keys, or copy-source SSE-C keys
- Confirmed affected version:
<= v1.74.0-240-ga0c09f138
3. Technical Root Cause Analysis
s3CheckRedirect applies a one-header denylist:
if s3RedirectCrossesHost(req, via) {
req.Header.Del("X-Amz-Security-Token")
}
Go removes Authorization on some hostname changes, but preserves it for a same-host redirect and does not treat a scheme downgrade as sufficient reason to remove it. Go also has no generic knowledge that the SSE-C headers contain raw encryption keys. The rclone callback recognizes the STS token but not these additional origin-bound secrets.
4. Proof-of-Concept & Evidence
Using the actual redirect callback:
- An HTTPS endpoint redirected to HTTP on the same hostname.
- The plaintext destination received the planted IBM bearer token and SSE-C headers.
- A separate redirect to an unrelated hostname caused Go to remove
Authorization, but the destination still received both SSE-C key headers. - In both cases, rclone removed the planted STS token, proving that the S3-specific callback executed while omitting the other secret classes.
The related GHSA-gx4c-2hqx-cw2r covers the STS downgrade path and confirms that rclone treats scheme changes as a credential boundary. It does not cover the IBM bearer or SSE-C variants retained here.
5. Impact Assessment
A captured IBM bearer token can authorize reads, writes, and deletes within its IAM scope. A disclosed SSE-C key can expose corresponding ciphertext available to the recipient; copy-source keys can expose protected source objects. The exact impact is limited by token policy and the attacker's access to encrypted objects.
6. Remediation Guidance
- Reject every HTTPS-to-HTTP redirect before replay.
- Do not automatically follow secret-bearing cross-origin redirects.
- On any scheme, host, or effective-port change, remove all authorization, cookies, session tokens, SSE-C fields, copy-source SSE-C fields, and provider-specific credentials.
- Where redirects are required, allowlist exact destinations and reconstruct/re-sign a new request.
- Add redirect tests for every secret header class and for scheme, hostname, subdomain, and port changes.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐹Go | github.com/rclone/rclone | all versions | 1.75.0go get github.com/rclone/rclone@v1.75.0 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for github.com/rclone/rclone, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update github.com/rclone/rclone to 1.75.0 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-8mxv-9xhp-86h4 is resolved across your whole dependency graph.
Workarounds
Assume what was exposed is already known: rotate any credential, token or key that the affected component could return, restrict the endpoint to callers that genuinely need it, and strip sensitive fields from responses and error output at the boundary rather than relying on the client not to read them.
Fixing This On Your OS
If you run this on a Linux distribution, patch through your package manager against the distro's own security advisory below — it tracks the exact backported fix for your release, which can ship on a different timeline (and sometimes a different severity) than the upstream project.
This Moderate flaw in rclone allows for information disclosure of IBM IAM bearer tokens or SSE-C encryption keys. When rclone interacts with S3 endpoints that issue unsafe redirects, an adjacent network attacker can capture these credentials during HTTPS-to-HTTP downgrades or cross-origin redirects. The impact is…
Until packages are updated, avoid using rclone S3 remotes with IBM IAM bearer tokens or SSE-C customer-provided keys against endpoints or gateways that issue cross-scheme or cross-host redirects. Prefer trusted HTTPS endpoints that do not downgrade or redirect secret-bearing requests.Source: Red Hat security advisory for GHSA-8mxv-9xhp-86h4 (CC BY 4.0)
Frequently Asked Questions
Is GHSA-8mxv-9xhp-86h4 in your dependencies?
Find it across Go, including transitive dependencies.