GHSA-H4MF-4V27-HGGJ

Vulnerability from github – Published: 2026-08-05 20:36 – Updated: 2026-08-05 20:36
VLAI
Summary
rclone: WebDAV Credentials Survive a Same-Host HTTPS-to-HTTP Redirect
Details

1. Summary

WebDAV's default redirect handling can replay Basic authorization and configured Cookie headers over plaintext HTTP after a same-host HTTPS-to-HTTP redirect. This was reproduced through the real backend. Unlike the low-impact STS token in rclone's published S3 redirect advisory, Basic passwords and session cookies are complete reusable credentials, supporting a High rating when they grant normal WebDAV read/write access.

The credible threat requires a legitimate endpoint, gateway, or accelerator to emit an unsafe redirect and an adjacent/on-path actor to observe the plaintext hop. A report should not rely on a malicious original WebDAV endpoint because that endpoint already receives the credentials.

2. Affected Assets & Attack Surface

  • Backend configuration/authentication: backend/webdav/webdav.go:127-139, 170-206, 440-530
  • Shared redirect callback: lib/rest/rest.go:218-231
  • HTTP client: fs/fshttp/http.go:311-329
  • Credentials: Basic passwords, bearer authorization, SharePoint/session cookies, and configured secret headers
  • Confirmed affected version: <= v1.74.0-240

3. Technical Root Cause Analysis

PreserveMethodRedirectFn limits redirect count and restores the original method, but it does not reject a transport downgrade or compare the full origin tuple. The client therefore relies on Go's hostname-oriented sensitive-header forwarding rules. Those rules can preserve Authorization and Cookie on a same-host redirect even when the new scheme is plaintext HTTP.

4. Proof-of-Concept & Evidence

  1. Configure the actual WebDAV backend with Basic credentials and a Cookie.
  2. Have the TLS endpoint return 307 Temporary Redirect to an HTTP listener on the same hostname and a different port.
  3. rclone follows the redirect while preserving the WebDAV method.
  4. The plaintext listener receives both the Basic Authorization value and Cookie.

5. Impact Assessment

An on-path observer can reuse the captured password, bearer token, or session cookie for the account's permitted WebDAV operations. Confidentiality, integrity, and availability impact depend on that account's permissions.

6. Remediation Guidance

  • Reject every HTTPS-to-HTTP redirect before replay.
  • Forward authenticated requests by default only when scheme, hostname, and effective port are unchanged.
  • Strip authorization, cookies, proxy credentials, and configured secret headers on all other redirects.
  • Put necessary provider exceptions behind exact destination allowlists.
  • Cover 301, 302, 303, 307, and 308 in regression tests.
Show details on source website

{
  "affected": [
    {
      "database_specific": {
        "last_known_affected_version_range": "\u003c= 1.74.0"
      },
      "package": {
        "ecosystem": "Go",
        "name": "github.com/rclone/rclone"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "1.75.0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "aliases": [],
  "database_specific": {
    "cwe_ids": [
      "CWE-319",
      "CWE-522"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2026-08-05T20:36:10Z",
    "nvd_published_at": null,
    "severity": "MODERATE"
  },
  "details": "## 1. Summary\n\nWebDAV\u0027s default redirect handling can replay Basic authorization and configured Cookie headers over plaintext HTTP after a same-host HTTPS-to-HTTP redirect. This was reproduced through the real backend. Unlike the low-impact STS token in rclone\u0027s published S3 redirect advisory, Basic passwords and session cookies are complete reusable credentials, supporting a High rating when they grant normal WebDAV read/write access.\n\nThe credible threat requires a legitimate endpoint, gateway, or accelerator to emit an unsafe redirect and an adjacent/on-path actor to observe the plaintext hop. A report should not rely on a malicious original WebDAV endpoint because that endpoint already receives the credentials.\n\n## 2. Affected Assets \u0026 Attack Surface\n\n- Backend configuration/authentication: `backend/webdav/webdav.go:127-139`, `170-206`, `440-530`\n- Shared redirect callback: `lib/rest/rest.go:218-231`\n- HTTP client: `fs/fshttp/http.go:311-329`\n- Credentials: Basic passwords, bearer authorization, SharePoint/session cookies, and configured secret headers\n- Confirmed affected version: `\u003c= v1.74.0-240`\n\n## 3. Technical Root Cause Analysis\n\n`PreserveMethodRedirectFn` limits redirect count and restores the original method, but it does not reject a transport downgrade or compare the full origin tuple. The client therefore relies on Go\u0027s hostname-oriented sensitive-header forwarding rules. Those rules can preserve `Authorization` and Cookie on a same-host redirect even when the new scheme is plaintext HTTP.\n\n## 4. Proof-of-Concept \u0026 Evidence\n\n1. Configure the actual WebDAV backend with Basic credentials and a Cookie.\n2. Have the TLS endpoint return `307 Temporary Redirect` to an HTTP listener on the same hostname and a different port.\n3. rclone follows the redirect while preserving the WebDAV method.\n4. The plaintext listener receives both the Basic `Authorization` value and Cookie.\n\n## 5. Impact Assessment\n\nAn on-path observer can reuse the captured password, bearer token, or session cookie for the account\u0027s permitted WebDAV operations. Confidentiality, integrity, and availability impact depend on that account\u0027s permissions.\n\n## 6. Remediation Guidance\n\n- Reject every HTTPS-to-HTTP redirect before replay.\n- Forward authenticated requests by default only when scheme, hostname, and effective port are unchanged.\n- Strip authorization, cookies, proxy credentials, and configured secret headers on all other redirects.\n- Put necessary provider exceptions behind exact destination allowlists.\n- Cover `301`, `302`, `303`, `307`, and `308` in regression tests.",
  "id": "GHSA-h4mf-4v27-hggj",
  "modified": "2026-08-05T20:36:10Z",
  "published": "2026-08-05T20:36:10Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://github.com/rclone/rclone/security/advisories/GHSA-h4mf-4v27-hggj"
    },
    {
      "type": "WEB",
      "url": "https://github.com/rclone/rclone/commit/59b513b0e74fd2943ccbb8891d5ce00f860e6d26"
    },
    {
      "type": "PACKAGE",
      "url": "https://github.com/rclone/rclone"
    },
    {
      "type": "WEB",
      "url": "https://github.com/rclone/rclone/releases/tag/v1.75.0"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N",
      "type": "CVSS_V3"
    }
  ],
  "summary": "rclone: WebDAV Credentials Survive a Same-Host HTTPS-to-HTTP Redirect"
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Loading…