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-77637

CVE-2026-77637: Privilege Scope Bypass in Cloudreve Administrative Tools

Amit Schendel
Amit Schendel
Senior Security Researcher

Sep 23, 2026·6 min read·16 visits

Executive Summary (TL;DR)

Missing authorization checks in Cloudreve allow read-only administrators to trigger SMTP test emails and retrieve WOPI discovery settings.

CVE-2026-77637 is a privilege scope bypass vulnerability in Cloudreve. It allows authenticated clients possessing read-only administrative credentials to access sensitive administrative tool endpoints that should require write-level permissions.

Vulnerability Overview

Cloudreve utilizes Go's Gin framework to structure its application endpoints. Within this layout, the system organizes administrative control features under an 'admin' routing group located in routers/router.go. The routing group establishes a foundational authorization layer by checking for the ScopeAdminRead scope. This scope permits operations associated with viewing the system configuration, user list, and high-level platform diagnostics.

The attack surface consists of the endpoints exposed under the admin namespace, specifically within the sub-routing group admin/tool. These tools allow administrators to perform maintenance, validation, and integration tasks. An architectural failure in scope restriction allowed unprivileged access to these management functions.

This vulnerability, tracked as CVE-2026-77637 or GHSA-w89x-c962-c44g, represents a failure to apply authorization controls to sensitive endpoints. Specifically, the endpoints responsible for fetching Web Application Open Platform Interface configurations and dispatching test emails failed to enforce write-level authorization. Users or API integrations holding read-only administrative tokens could interact with these state-altering operations.

Root Cause Analysis

The root cause of CVE-2026-77637 lies in the omission of granular scope checks on nested sub-routes. The parent group admin enforces the read-only administrative scope. However, tasks that perform network requests or expose integration URLs require write-level permissions. In the Cloudreve authorization model, this check is implemented using the middleware.RequiredScopes function with the types.ScopeAdminWrite parameter.

Prior to the patch, the application routing setup did not append this middleware to the handler chains of tool.GET("wopi") and tool.POST("mail"). Since Gin groups inherit middleware from parents, these endpoints only required ScopeAdminRead for access. The lack of explicit write-scope validation meant that any API key or OAuth credential provisioned with read-only administrative access could trigger these actions.

This flaw highlights a structural design risk in manual route decoration. When authorization models require developers to manually add scope checks to every mutating endpoint, the risk of omission remains high. A secure-by-default routing configuration, which applies strict write restrictions to all nested routes unless explicitly exempted, would prevent this class of authorization failure.

Code Analysis

The vulnerability exists within the route registration sequence inside the initMasterRouter function in routers/router.go. Analyzing the repository commit history reveals how the endpoints were initially set up without the validation middleware.

Below is the vulnerable configuration for the two endpoints within the nested tool route group:

// Vulnerable Code Path in routers/router.go
tool := admin.Group("tool")
{
    // Endpoint to retrieve Web Application Open Platform Interface settings
    tool.GET("wopi",
        controllers.FromQuery[adminsvc.FetchWOPIDiscoveryService](adminsvc.FetchWOPIDiscoveryParamCtx{}),
        controllers.AdminFetchWopi,
    )
    // Endpoint to send a test email through the SMTP gateway
    tool.POST("mail",
        controllers.FromJSON[adminsvc.TestSMTPService](adminsvc.TestSMTPParamCtx{}),
        controllers.AdminSendTestMail,
    )
}

The corrected implementation in commit bce08f88e9d8f881e78fd18e7a6598b31922c492 inserts the scope-enforcing middleware explicitly before the controller functions are invoked:

// Patched Code Path in routers/router.go
tool := admin.Group("tool")
{
    tool.GET("wopi",
        // Fix: Enforce write privilege scope before calling the controller
        middleware.RequiredScopes(types.ScopeAdminWrite),
        controllers.FromQuery[adminsvc.FetchWOPIDiscoveryService](adminsvc.FetchWOPIDiscoveryParamCtx{}),
        controllers.AdminFetchWopi,
    )
    tool.POST("mail",
        // Fix: Enforce write privilege scope before initiating SMTP connection
        middleware.RequiredScopes(types.ScopeAdminWrite),
        controllers.FromJSON[adminsvc.TestSMTPService](adminsvc.TestSMTPParamCtx{}),
        controllers.AdminSendTestMail,
    )
}

This modification ensures that Gin processes the RequiredScopes middleware first. If the client credentials do not match the required administrative write privileges, the middleware aborts the request chain with an HTTP 403 Forbidden response and prevents access to the controller.

Exploitation and Attack Scenarios

Exploitation of CVE-2026-77637 requires an active administrative session or API credential possessing the Admin.Read scope. An attacker with standard user-level access cannot exploit these routes directly. Once the appropriate credential is secure, the attack proceeds through direct HTTP interaction with the backend routing interface.

In the first scenario, an attacker targets the SMTP testing endpoint /api/v4/admin/tool/mail using a POST request. The request payload contains parameter values for the destination email, SMTP server, port, username, password, and security configuration. The backend receives the payload, bypasses the write authorization check, and commands the server to dispatch an email. This behavior allows attackers to verify internal SMTP configuration details or utilize the server for unauthorized email relaying.

In the second scenario, the attacker targets the WOPI discovery endpoint at /api/v4/admin/tool/wopi using a GET request. The application processes the query, retrieves the configuration, and returns the endpoint metadata associated with online document viewer integrations. This leaks internal network targets and resource paths to the authenticated read-only client.

Impact Assessment

The security impact of this vulnerability is categorized as low because it requires administrative credentials to exploit. However, in environments utilizing granular delegated permissions or automation accounts, this flaw breaches security compartmentalization. Read-only tokens are often assigned to automated monitoring systems or read-only dashboards, which should not possess execution capabilities.

By exploiting the SMTP testing interface, an attacker can perform outbound spam or phishing campaigns that appear to originate from a trusted domain. Additionally, attackers can use the interface to bruteforce and test SMTP configurations or scan internal mail servers. This capability compromises network reputation and risks domain blacklisting.

Exposing the WOPI details leaks configurations that map internal server URLs and integration architectures. The exposure provides mapping information that an attacker can utilize during the reconnaissance phase of a larger target exploitation sequence.

Remediation and Mitigation

The primary remediation for this vulnerability is to upgrade Cloudreve to version 4.18.0 or later. This version contains the required routing updates that enforce correct scope boundaries. Software administrators should download and verify the updated release from the official repository.

If upgrading immediately is not possible, administrators should apply defensive network controls. Implement egress firewall rules to restrict outbound SMTP connections from the Cloudreve host, limiting traffic to trusted email relays. This step mitigates the unauthorized utilization of the mail tool.

Conduct a review of all active API keys and OAuth tokens within the platform. Any tokens provisioned with administrative privileges must be audited to ensure that read-only accounts cannot access administrative write-level API paths. Revoke unnecessary or high-privilege keys that do not align with the principle of least privilege.

Official Patches

CloudreveGitHub Security Advisory GHSA-w89x-c962-c44g
CloudreveFix Commit

Fix Analysis (1)

Technical Appendix

CVSS Score
3.8/ 10
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:N

Affected Systems

Cloudreve

Affected Versions Detail

Product
Affected Versions
Fixed Version
Cloudreve
Cloudreve
< 4.18.04.18.0
AttributeDetail
CWE IDCWE-862 (Missing Authorization)
Attack VectorNetwork (AV:N)
CVSS v3.1 Score3.8 (Low)
Exploit StatusNone (No public exploit available)
CISA KEV StatusNot Listed
ImpactLow (Bypasses administrative write protections)

MITRE ATT&CK Mapping

T1068Exploitation for Privilege Escalation
Privilege Escalation
CWE-862
Missing Authorization

The product does not perform an authorization check when an actor attempts to access a resource or perform an action.

Vulnerability Timeline

Commit 1d091c4 addressing missing write scopes on other admin test nodes
2026-06-26
Commit bce08f8 securing the wopi and mail endpoints
2026-07-15
Public release of Cloudreve 4.18.0
2026-09-22
Coordinated disclosure of GHSA-w89x-c962-c44g and assignment of CVE-2026-77637
2026-09-22

References & Sources

  • [1]GitHub Security Advisory
  • [2]Fix Commit
  • [3]Cloudreve Release v4.18.0
  • [4]NVD CVE-2026-77637 Details
  • [5]CVE.org CVE-2026-77637 Record

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

•11 minutes ago•GHSA-PJFF-C2WC-F6JM
9.9

CVE-2026-48769: Arbitrary File Write and Remote Code Execution via Trusted Image Hash in Canonical LXD and Linux Containers Incus

A critical path traversal vulnerability caused by improper input validation (CWE-20) exists in the direct image download handler of Canonical LXD and Linux Containers Incus. When an authenticated user requests an image import using the URL source type, the daemon reads the image fingerprint from an untrusted HTTP response header (`Incus-Image-Hash` or `LXD-Image-Hash`) without validating that it conforms to a SHA-256 format. This unvalidated string is concatenated directly into a filesystem path via `filepath.Join` prior to file creation and cryptographic verification, allowing directory traversal sequences to write arbitrary files on the host filesystem as root.

Alon Barad
Alon Barad
1 views•10 min read
•about 4 hours ago•CVE-2026-9639
6.5

CVE-2026-9639: Authenticated Denial of Service via Nil-Pointer Dereference in Canonical LXD Custom Volume Backup Import

CVE-2026-9639 (GHSA-j93m-3j9p-m5m8) is a null pointer dereference vulnerability in Canonical LXD affecting versions 5.0.0 through 5.21.4 and 6.0 through 6.8. The flaw resides in the (*lxdBackend).CreateCustomVolumeFromBackup method within lxd/storage/backend_lxd.go. An authenticated attacker with the can_create_storage_volumes permission can upload a crafted custom volume backup tarball that omits the expires_at field on a snapshot entry, triggering an unhandled SIGSEGV panic and terminating the LXD daemon.

Amit Schendel
Amit Schendel
5 views•9 min read
•about 5 hours ago•CVE-2026-33050
8.8

CVE-2026-33050: OS Command Injection in GeoNode Vector Upload Handler

An operating system command injection vulnerability (CWE-78) exists in GeoNode versions prior to 5.1.0. The vulnerability occurs in the vector upload processing pipeline when handling user-supplied geospatial files. By supplying a crafted layer name containing shell metacharacters, an authenticated attacker with basic data upload privileges can execute arbitrary commands on the underlying server or container hosting the GeoNode application and Celery worker processes.

Alon Barad
Alon Barad
5 views•9 min read
•about 6 hours ago•CVE-2026-46429
5.5

CVE-2026-46429: Unrestricted File Upload and Validation Bypass in GeoNode

GeoNode versions prior to 5.0.3 contain an unrestricted file upload vulnerability (CWE-434) within the document and dataset ingestion architecture. Authenticated low-privileged users can bypass upload validation via direct REST API interactions, file extension masquerading, metadata mutation via PATCH requests, or malicious archive submissions. This allows attackers to store and serve dangerous file types, alter on-disk file references, or trigger path traversal and resource exhaustion during archive extraction.

Amit Schendel
Amit Schendel
6 views•10 min read
•about 7 hours ago•CVE-2026-55649
6.3

CVE-2026-55649: Stored Cross-Site Scripting in GeoNode Document Metadata Abstract Field

CVE-2026-55649 is a stored Cross-Site Scripting (XSS) vulnerability in GeoNode versions prior to 5.0.3. The flaw exists because document abstract metadata fields are ingested via the metadata management pipeline and stored in the backend database without HTML sanitization or input neutralization. An authenticated attacker with privileges to create or edit document metadata can inject arbitrary HTML and JavaScript payloads into these fields. When another user, such as an administrator, views the affected document page or catalog listing, the unencoded payload is rendered into the Document Object Model (DOM) and executes within the victim's browser session.

Amit Schendel
Amit Schendel
7 views•9 min read
•about 8 hours ago•GHSA-QX75-2P3R-PWM5
7.7

CVE-2026-55622: Cross-Project Instance Copy Authorization Bypass in Canonical LXD and LXC Incus

CVE-2026-55622 (GHSA-qx75-2p3r-pwm5) is an improper access control vulnerability (CWE-284) in Canonical LXD and LXC Incus (tracked as GHSA-c9f5-j9c3-mhrg). In multi-tenant deployments utilizing project-based isolation, the REST API handler for instance creation via POST /1.0/instances verifies that the authenticated user has authorization in the destination project specified by the query parameter, but fails to verify whether the user holds read or view permissions for the source instance when executing a copy operation across projects. Consequently, an authenticated client restricted to a single project can clone instances or snapshots from unauthorized projects into their own project, resulting in complete disclosure of the target instance filesystem and embedded credentials.

Amit Schendel
Amit Schendel
6 views•11 min read