/

CVE-2026-110108

Severity:

HIGH RISK

(8.1)

Missing Authorization (CWE-862) in MateCloud Storage

CVE-2026-110108

Deferred

Vulnerability type

Category:

Missing Authorization

CWE:

CWE-862

Impact:

Unauthorized Object Storage Access and Modification

Severity:

HIGH RISK

(8.1)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

MateCloud contains a missing authorization vulnerability in its object-storage administration endpoints. An authenticated low-privilege or self-registered user may list, download, delete, or upload objects belonging to other users when the endpoints do not enforce ownership or administrative permissions.

MateCloud contains a missing authorization vulnerability in its object-storage administration endpoints. An authenticated low-privilege or self-registered user may list, download, delete, or upload objects belonging to other users when the endpoints do not enforce ownership or administrative permissions.

Affected context

The issue occurs in MateCloud deployments where the StorageController exposes object-storage operations through the affected administrative API endpoints without adequately checking the caller's authorization. Risk is present when authenticated users can provide arbitrary bucket or object identifiers and the application relies on authentication alone rather than validating administrative privileges, tenant boundaries, or object ownership.

The issue occurs in MateCloud deployments where the StorageController exposes object-storage operations through the affected administrative API endpoints without adequately checking the caller's authorization. Risk is present when authenticated users can provide arbitrary bucket or object identifiers and the application relies on authentication alone rather than validating administrative privileges, tenant boundaries, or object ownership.

Exploit preconditions

  • Attack surface: The /api/v1/admin/storage object-storage API endpoints
  • Required access: Any authenticated account, including a low-privilege or self-registered user
  • Trigger point: Requests that supply bucket and object identifiers to storage-management operations
  • Why exploitation is possible: The endpoints authenticate the caller but do not consistently verify administrative authorization, tenant scope, or ownership before performing storage actions
  • Attack surface: The /api/v1/admin/storage object-storage API endpoints
  • Required access: Any authenticated account, including a low-privilege or self-registered user
  • Trigger point: Requests that supply bucket and object identifiers to storage-management operations
  • Why exploitation is possible: The endpoints authenticate the caller but do not consistently verify administrative authorization, tenant scope, or ownership before performing storage actions

Why this happens

The vulnerability results from missing authorization checks on sensitive object-storage operations. Authentication establishes that a caller has an account, but the application fails to enforce whether that account is permitted to manage the requested bucket or object. This behavior maps to CWE-862: Missing Authorization, an access-control weakness in which protected functionality can be reached without an effective permission decision.

The vulnerability results from missing authorization checks on sensitive object-storage operations. Authentication establishes that a caller has an account, but the application fails to enforce whether that account is permitted to manage the requested bucket or object. This behavior maps to CWE-862: Missing Authorization, an access-control weakness in which protected functionality can be reached without an effective permission decision.

Potential impact

  • Unauthorized users may list objects in storage locations outside their permitted scope
  • Attackers could obtain pre-signed download URLs for other users' files
  • Stored objects may be deleted or overwritten
  • Arbitrary object keys could be used to upload attacker-controlled content
  • Confidentiality, integrity, and availability of tenant data may be affected
  • Unauthorized users may list objects in storage locations outside their permitted scope
  • Attackers could obtain pre-signed download URLs for other users' files
  • Stored objects may be deleted or overwritten
  • Arbitrary object keys could be used to upload attacker-controlled content
  • Confidentiality, integrity, and availability of tenant data may be affected

General mitigation guidance

Mitigation generally focuses on enforcing authorization at every storage operation rather than relying only on authentication.

Common defensive patterns include:

  • Applying centralized, deny-by-default authorization checks to all storage endpoints
  • Verifying administrative roles, tenant boundaries, and object ownership server-side
  • Deriving permitted storage scopes from the authenticated identity instead of trusting client-supplied bucket or object identifiers
  • Restricting pre-signed URL creation to authorized objects and narrowly scoped operations
  • Separating upload, listing, download, and deletion permissions
  • Applying least privilege to service accounts and backing object-storage credentials
  • Auditing authorization decisions and rejecting ambiguous or missing identity context

Mitigation generally focuses on enforcing authorization at every storage operation rather than relying only on authentication.

Common defensive patterns include:

  • Applying centralized, deny-by-default authorization checks to all storage endpoints
  • Verifying administrative roles, tenant boundaries, and object ownership server-side
  • Deriving permitted storage scopes from the authenticated identity instead of trusting client-supplied bucket or object identifiers
  • Restricting pre-signed URL creation to authorized objects and narrowly scoped operations
  • Separating upload, listing, download, and deletion permissions
  • Applying least privilege to service accounts and backing object-storage credentials
  • Auditing authorization decisions and rejecting ambiguous or missing identity context

How teams detect issues like this

Organizations can identify this weakness through:

  • Static analysis and code review checks for controller methods that lack authorization annotations or centralized policy calls
  • Review of every storage operation for server-side ownership and tenant-scope validation
  • Integration tests using authenticated users with different roles and data scopes
  • API policy enforcement requiring explicit authorization for administrative routes
  • Monitoring for unusual cross-tenant listing, download URL generation, deletion, or upload activity
  • Automated security review tools that flag sensitive endpoints with authentication but no effective authorization decision

Organizations can identify this weakness through:

  • Static analysis and code review checks for controller methods that lack authorization annotations or centralized policy calls
  • Review of every storage operation for server-side ownership and tenant-scope validation
  • Integration tests using authenticated users with different roles and data scopes
  • API policy enforcement requiring explicit authorization for administrative routes
  • Monitoring for unusual cross-tenant listing, download URL generation, deletion, or upload activity
  • Automated security review tools that flag sensitive endpoints with authentication but no effective authorization decision

Sources

SourceLink
github.comgithub.com/mateaix/matecloud
github.comgithub.com/mateaix/matecloud/blob/57b1edc0f0b8b964448e2d41ef7ba98751e71d8d/mate-biz/mate-system/src/main/java/vip/mate/system/admin/trigger/controller/StorageController.java#L45-L118
github.comgithub.com/mateaix/matecloud/blob/57b1edc0f0b8b964448e2d41ef7ba98751e71d8d/mate-gateway/src/main/resources/application.yml#L80-L85
hackmd.iohackmd.io/@1ExmmukzRMWN7B4gQ4W-4Q/matecloud-storage-admin-missing-authz
vulncheck.comvulncheck.com/advisories/matecloud-through-5.0.8-missing-authorization-via-api-v1-admin-storage-api

Frequently asked

questions

The described issue requires authentication, but a self-registration path may allow a low-privilege user to obtain the required account.

The attacker needs access to the affected storage API endpoints and the ability to submit requests containing object-storage identifiers. Administrative privileges should not be necessary when authorization is missing.

Enforce centralized, deny-by-default authorization for every storage action, then validate role, tenant, and object ownership before performing the operation or issuing a download URL.

Treat authentication and authorization as separate controls, derive resource scope from trusted server-side identity data, test role and tenant boundaries, and continuously monitor sensitive storage operations.

The described issue requires authentication, but a self-registration path may allow a low-privilege user to obtain the required account.

The attacker needs access to the affected storage API endpoints and the ability to submit requests containing object-storage identifiers. Administrative privileges should not be necessary when authorization is missing.

Enforce centralized, deny-by-default authorization for every storage action, then validate role, tenant, and object ownership before performing the operation or issuing a download URL.

Treat authentication and authorization as separate controls, derive resource scope from trusted server-side identity data, test role and tenant boundaries, and continuously monitor sensitive storage operations.

Find out what's already
exploitable in your codebase.