Quick answers
- Is CVE-2026-54563 exploited in the wild?
- No. Junglewise Threat Intelligence has no report of CVE-2026-54563 being exploited in the wild.
- How severe is CVE-2026-54563?
- High severity, with a CVSS score of 7.1, published 15 July 2026.
- Which products and versions are affected?
- Cloudreve < 4.16.1, v3 <= 3.0.0-20250225100611-da4e44b77af4; v4 < 4.0.0-20260606032813-26b6b1044b02; github.com/cloudreve/Cloudreve (Go) SEMVER:introduced=0; github.com/cloudreve/Cloudreve/v3 (Go) <= 3.0.0-20250225100611-da4e44b77af4, SEMVER:introduced=0, SEMVER:introduced=0,last_affected=3.0.0-20250225100611-da4e44b77af4; github.com/cloudreve/Cloudreve/v4 (Go) < 4.0.0-20260606032813-26b6b1044b02, SEMVER:introduced=0,fixed=4.0.0-20260606032813-26b6b1044b02.
- Is there a fix for CVE-2026-54563?
- Yes. github.com/cloudreve/Cloudreve/v4 (Go): upgrade to 4.0.0-20260606032813-26b6b1044b02 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
- How is CVE-2026-54563 attacked?
- It is attacked over the network.
- Am I affected by CVE-2026-54563?
- Check whether you run Cloudreve, github.com/cloudreve/Cloudreve (Go), github.com/cloudreve/Cloudreve/v3 (Go) or one of the others listed at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.
How to fix
- github.com/cloudreve/Cloudreve/v4 (Go): upgrade to 4.0.0-20260606032813-26b6b1044b02 or later
go get github.com/cloudreve/Cloudreve/v4@v4.0.0-20260606032813-26b6b1044b02
Technical details
The WebDAV request handler in `pkg/webdav/webdav.go` (function `stripPrefix`) trims the `/dav` prefix from incoming requests and joins the remainder to a credential's base folder using `fs.URI.JoinRaw`, but performs no validation that the resulting path stays within the configured root. Go's `net/http` server decodes URL-encoded sequences (`%2e%2e` to `..`, `%2f` to `/`) before passing the path to handlers, and the `JoinRaw` method delegates to Go's standard `url.URL.JoinPath`, which resolves `..` segments. A request like `GET /dav/%2e%2e/outside.txt` against a credential rooted at `cloudreve://my/restricted` resolves to `cloudreve://my/outside.txt`, escaping the scope. Read-only credentials can read and list files outside their folder; writable credentials can also create, overwrite, move, and delete them. The breach is contained within a single user's namespace; it does not cross to other users or the OS filesystem. A patch is available and adds a post-join containment check using the existing `EqualOrIsDescendantOf` predicate.
Affected products
- Cloudreve Cloudreve v3 <= 3.0.0-20250225100611-da4e44b77af4; v4 < 4.0.0-20260606032813-26b6b1044b02
Identifiers
- CVE-2026-54563
- GHSA-w5fv-7x5q-g8qp
- GO-2026-6298
Timeline
- 2026-07-08: disclosed: Published to GitHub Advisory Database
- 2026-08-26: advisory: GitHub Security Advisory GHSA-w5fv-7x5q-g8qp published
- 2026-06-06: patched: Cloudreve v4.0.0-20260606032813-26b6b1044b02 includes fix