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·2 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

•about 2 hours ago•CVE-2026-54606
8.5

CVE-2026-54606: DOM-based Cross-Site Scripting via Programmatic Script Recreation in SunEditor Embed Plugin

A DOM-based Cross-Site Scripting (XSS) vulnerability was identified in SunEditor before version 3.1.4. The Embed plugin programmatically recreated and mounted script elements from raw HTML embed code, permitting remote attackers to execute arbitrary JavaScript within a user's browser session.

Amit Schendel
Amit Schendel
2 views•6 min read
•about 3 hours ago•CVE-2026-54569
9.8

CVE-2026-54569: Remote Code Execution via Missing Authorization and Eval Injection in senaite.core

SENAITE LIMS core framework (senaite.core) versions 2.0.0 through 2.6.0 contain a critical vulnerability chain that permits unauthenticated remote code execution. By combining a Missing Authorization flaw (CWE-862) in multiple JSON API endpoints with an Unsafe Evaluation flaw (CWE-95) during custom field deserialization, an attacker can execute arbitrary Python commands. This execution occurs under the privileges of the hosting Zope process, creating severe risk to laboratory systems, physical instrumentation databases, and host system integrity.

Alon Barad
Alon Barad
3 views•7 min read
•about 4 hours ago•GHSA-7W8C-QGXG-M7JX
8.0

GHSA-7W8C-QGXG-M7JX: Stored Cross-Site Scripting in LibreNMS Legacy Templates

A Stored Cross-Site Scripting (XSS) vulnerability exists within the legacy presentation templates of the LibreNMS network monitoring system. Due to inadequate context-aware output encoding of operational data ingested via Simple Network Management Protocol (SNMP) polling, Border Gateway Protocol (BGP) notifications, and incoming Syslog messages, an administrative user viewing device dashboards can be targeted with arbitrary JavaScript execution.

Amit Schendel
Amit Schendel
3 views•6 min read
•about 5 hours ago•CVE-2026-54614
4.3

CVE-2026-54614: Unsafe Reflection and Arbitrary Class Instantiation in cakephp/debug_kit MailPreview

CVE-2026-54614 is an unsafe reflection vulnerability in the MailPreview component of cakephp/debug_kit prior to versions 4.10.3 and 5.2.4. Unauthenticated or low-privileged remote attackers can exploit this vulnerability to dynamically resolve and instantiate arbitrary PHP classes within the Composer autoloader environment, leading to constructor and destructor execution.

Alon Barad
Alon Barad
3 views•7 min read
•about 6 hours ago•CVE-2026-54590
5.9

CVE-2026-54590: Path Traversal and Authentication Bypass in AsyncSSH via Username Token Substitution

An incomplete input sanitization fix in AsyncSSH version 2.23.0 allows unauthenticated remote attackers to bypass directory restriction controls and perform path-traversal attacks. When the system is configured to perform username token substitution inside its AuthorizedKeysFile directive, attackers can manipulate downstream path resolution mechanisms via tilde expansion and environment variable references. This flaw permits authentication bypasses by forcing the server to read public keys from unauthorized file locations outside the restricted environment.

Amit Schendel
Amit Schendel
4 views•6 min read
•about 7 hours ago•CVE-2026-54591
8.1

CVE-2026-54591: Arbitrary File Overwrite via Path Traversal in AsyncSSH SCP Implementation

CVE-2026-54591 is a high-severity path traversal vulnerability in AsyncSSH's SCP implementation prior to version 2.23.1. When an AsyncSSH-based SCP client connects to a malicious or compromised SSH server and performs a file transfer, the server can send crafted filenames containing relative path sequences. Because the client failed to validate these filenames before resolving the final storage path, a malicious server could write or overwrite arbitrary files on the client machine within the security context of the executing application. This vulnerability is mapped to GitHub Security Advisory GHSA-2wxc-x7rj-hg8f.

Amit Schendel
Amit Schendel
3 views•7 min read