CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-54563

CVE-2026-54563: Path Traversal and Incorrect Authorization in Cloudreve WebDAV Component

Alon Barad
Alon Barad
Software Engineer

Aug 26, 2026·5 min read·17 visits

Executive Summary (TL;DR)

Authenticated users with restricted WebDAV credentials can use URL-encoded path traversal sequences to access, read, or modify files outside their designated root directory.

A high-severity path traversal vulnerability in Cloudreve's WebDAV component allows authenticated users with scoped WebDAV credentials to bypass directory containment limits and access unauthorized filesystem areas.

Vulnerability Overview

The WebDAV interface within Cloudreve is designed to permit users to access their files via standard network-attached storage protocols. To restrict sub-users or specific API integrations, Cloudreve allows administrators to generate folder-scoped WebDAV credentials. These credentials represent logical boundaries configured to restrict transactions to a designated directory.

CVE-2026-54563 describes an authorization bypass and logical path traversal flaw in the URL handling mechanisms of this interface. Because the application logic fails to validate that resolved paths remain within the authorized root path, users with restricted folder credentials can access the entire logical file hierarchy of the account holder.

This vulnerability affects all releases of Cloudreve prior to version 4.16.1. Depending on the privilege scope of the credentials (read-only or read-write), an attacker can extract, modify, or delete administrative and personal files stored outside the configured directory.

Root Cause Analysis

The vulnerability stems from an architectural oversight in how WebDAV routing and file path construction interact in pkg/webdav/webdav.go. When an HTTP request is received by the application, Go's standard net/http package processes and normalizes URL-encoded characters in r.URL.Path before dispatching the request to the WebDAV handler. As a result, traversal components like %2e%2e are decoded into standard parent directory characters (..).

The application removes the initial routing prefix /dav using the stripPrefix utility to extract the logical target path suffix. This extracted suffix is joined directly with the user's base WebDAV directory path utilizing the base.JoinRaw(suffix) or fs.URI.JoinRaw(suffix) methodology.

The underlying library implementation of JoinRaw employs standard URI cleaning algorithms, such as url.URL.JoinPath. While this correctly formats and normalizes parent directories, resolving root/subfolder/../target to root/target, it completes the resolution without verifying whether the target remains structurally bounded by the root/subfolder hierarchy. Consequently, the directory hierarchy is escaped dynamically, resulting in an incorrect authorization state mapping to CWE-863.

Code Analysis

The original implementation in pkg/webdav/webdav.go handled path concatenation and logical access mapping as follows:

// VULNERABLE CODE PATH (Pre-4.16.1)
func (fs *FS) ResolvePath(suffix string) (URI, error) {
    // Suffix is joined without verifying boundaries
    targetURI := fs.URI.JoinRaw(suffix)
    return targetURI, nil
}

Because the path resolving mechanism merely performs raw string manipulation and URI cleansing, input strings containing directory traversal components natively break out of the directory schema during logical joining.

The mitigation in version 4.16.1 resolves this flaw by ensuring that the resolved candidate URI is structurally verified against the configured base directory. The patch relies on verifying that the target path is a logical sub-node of the base directory before returning the URI context:

// PATCHED CODE PATH (4.16.1+)
func (fs *FS) ResolvePath(suffix string) (URI, error) {
    candidate := fs.URI.JoinRaw(suffix)
    
    // Verify candidate is within the expected directory boundary
    if !candidate.EqualOrIsDescendantOf(fs.BaseURI, "") {
        return URI{}, ErrForbidden
    }
    return candidate, nil
}

This validation ensures that any decoded traversal sequences that evaluate to paths outside the root directory are caught post-resolution, triggering a termination signal before any OS-level file system or database access attempts occur.

Exploitation Methodology

Exploitation of CVE-2026-54563 requires network access to the WebDAV endpoint and valid credentials for a scoped WebDAV subfolder. An attacker identifies target pathways by estimating directory depths relative to their designated root directory.

To retrieve a file outside the restricted folder, the attacker issues a standard WebDAV PROPFIND or GET request. The URL contains URL-encoded directory traversal symbols to bypass naive blocklists while forcing the internal router to normalize the path:

PROPFIND /dav/%2e%2e/target_document.pdf HTTP/1.1
Host: target-instance.local
Authorization: Basic dXNlcjpwYXNzd29yZA==

When the application processes this request, the prefix is stripped and %2e%2e resolves to ... The logical path resolves to /restricted_folder/../target_document.pdf, yielding /target_document.pdf after cleaning. If the credentials permit write permissions, the attacker can leverage PUT, DELETE, or MOVE methods to overwrite, delete, or relocate files anywhere within the broader logical directory scope of the main account holder.

Data Flow Visualization

The following architecture diagram represents the request flow and shows where the security check fails in vulnerable versions versus where it is caught in patched instances:

In older installations, the absence of the containment check meant that the control flow progressed directly from path resolution to logical file system access.

Impact Assessment

The impact of CVE-2026-54563 is classified as High. The capability is scoped to unauthorized data access and modification within the Cloudreve application sandbox. Since WebDAV permissions correspond to logical file paths, access does not bypass container boundaries or operating system sandboxes unless systemic local integration issues exist.

Within the Cloudreve application, the confidentiality risk is high. Scoped WebDAV users can read sensitive documents, configurations, and assets belonging to parent accounts. If the scoped credentials carry write permissions, integrity is compromised as attackers can rewrite data blocks, rendering storage structures untrusted.

The vulnerability is not currently listed in the CISA Known Exploited Vulnerabilities catalog. However, because WebDAV integrations are commonly automated, exposure exposes cloud storage nodes to risk if restricted credentials are split among third-party clients.

Technical Appendix

CVSS Score
7.1/ 10
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N
EPSS Probability
0.32%
Top 76% most exploited

Affected Systems

Cloudreve
AttributeDetail
CWE IDCWE-863 (Incorrect Authorization)
Attack VectorNetwork (AV:N)
CVSS Score7.1 (High)
EPSS Score0.00315 (Percentile: 23.79%)
ImpactConfidentiality (High), Integrity (Low)
Exploit StatusNone
KEV StatusNot Listed
CWE-863
Incorrect Authorization

Vulnerability Timeline

Fix commit pushed to repository
2026-06-06
GitHub Security Advisory published
2026-07-15

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•2 minutes ago•CVE-2026-109619
9.2

CVE-2026-109619: Remote Code Execution in PHP Core via Stale Global State Memory Corruption (PHP2Shell)

CVE-2026-109619 (PHP2Shell) is a critical Use-After-Free vulnerability in the core PHP engine caused by improper global state cleanup during out-of-memory exception handling across persistent worker requests.

Alon Barad
Alon Barad
1 views•6 min read
•5 minutes ago•CVE-2026-113721
4.5

CVE-2026-113721: Unsafe Link Resolution in virtualenv File Generation

In Python virtualenv prior to version 21.14.9, activation script generators and configuration writers use Path.exists() before writing files. Because Path.exists() resolves symbolic links, it returns False for dangling symlinks. Consequently, virtualenv skips unlinking pre-planted symbolic links or hard links, writing data directly to target locations outside the intended virtual environment directory.

Amit Schendel
Amit Schendel
1 views•5 min read
•9 days ago•CVE-2026-87697
8.8

CVE-2026-87697: Untrusted Deserialization in .NET PresentationCore Clipboard Handling

A remote code execution vulnerability exists in Microsoft .NET due to untrusted data deserialization within the PresentationCore component. The flaw stems from implicit auto-conversion flags during clipboard data retrieval operations.

Alon Barad
Alon Barad
31 views•5 min read
•9 days ago•CVE-2026-70007
8.8

CVE-2026-70007: Out-of-Bounds Write Vulnerability in .NET Framework and WPF Subsystem

An out-of-bounds write vulnerability in Microsoft .NET Framework, .NET runtime, and Visual Studio allows unauthenticated remote attackers to execute arbitrary code via crafted pixel-shader bytecode or auto-converted clipboard payloads.

Amit Schendel
Amit Schendel
19 views•6 min read
•10 days ago•CVE-2026-70186
7.5

CVE-2026-70186: ASP.NET Core Denial of Service Vulnerability via Framework Deadlock

ASP.NET Core contains a thread deadlock vulnerability (CWE-833) that allows an unauthenticated remote attacker to cause a denial of service over the network by exhausting server thread pool resources.

Amit Schendel
Amit Schendel
18 views•5 min read
•10 days ago•CVE-2026-70035
8.8

CVE-2026-70035: Insecure Deserialization Remote Code Execution in Microsoft .NET Framework and .NET Runtime

CVE-2026-70035 is a high-severity Remote Code Execution (RCE) vulnerability in Microsoft .NET Framework, .NET runtime, and Visual Studio caused by improper handling during the deserialization of untrusted data (CWE-502). An unauthenticated attacker can execute arbitrary code within the context of the affected process by delivering a crafted serialized payload.

Amit Schendel
Amit Schendel
24 views•6 min read