/

CVE-2026-111701

Severity:

HIGH RISK

(7.0)

Missing Authentication (CWE-306) in OtterMind Nubase

CVE-2026-111701

Deferred

Vulnerability type

Category:

Missing Authentication

CWE:

CWE-306

Impact:

Unauthorized Data Access and Object Deletion

Severity:

HIGH RISK

(7.0)

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

OtterMind Nubase treats the object-storage endpoint as public for every HTTP method, allowing unauthenticated access to objects in private buckets. An attacker who knows a tenant subdomain, bucket identifier, and object path may download private data or delete stored objects without an API key or JWT.

OtterMind Nubase treats the object-storage endpoint as public for every HTTP method, allowing unauthenticated access to objects in private buckets. An attacker who knows a tenant subdomain, bucket identifier, and object path may download private data or delete stored objects without an API key or JWT.

Affected context

The issue affects Nubase deployments where the /storage/v1/object/{bucketId}/{path} endpoint is reachable and private-bucket access is expected to require authentication. The endpoint's public treatment across HTTP methods may bypass intended access controls for both object retrieval and deletion.

The issue affects Nubase deployments where the /storage/v1/object/{bucketId}/{path} endpoint is reachable and private-bucket access is expected to require authentication. The endpoint's public treatment across HTTP methods may bypass intended access controls for both object retrieval and deletion.

Exploit preconditions

  • Attack surface: Externally reachable Nubase object-storage HTTP endpoint
  • Required access: No authenticated account, API key, or JWT is required
  • Known information: The attacker must know or discover the tenant subdomain, bucket identifier, and object path
  • Trigger point: A request to the object endpoint for a private bucket
  • Why exploitation is possible: Authentication and authorization checks are not consistently enforced for the endpoint or its supported HTTP methods
  • Attack surface: Externally reachable Nubase object-storage HTTP endpoint
  • Required access: No authenticated account, API key, or JWT is required
  • Known information: The attacker must know or discover the tenant subdomain, bucket identifier, and object path
  • Trigger point: A request to the object endpoint for a private bucket
  • Why exploitation is possible: Authentication and authorization checks are not consistently enforced for the endpoint or its supported HTTP methods

Why this happens

The vulnerability results from treating an object-storage route as public without enforcing authentication and authorization based on bucket privacy. This maps to CWE-306: Missing Authentication for Critical Function, because sensitive object operations can proceed without verifying the identity of the requester. The insecure pattern is exposing data-management functionality while relying on route availability or object identifiers instead of mandatory, server-side access checks.

The vulnerability results from treating an object-storage route as public without enforcing authentication and authorization based on bucket privacy. This maps to CWE-306: Missing Authentication for Critical Function, because sensitive object operations can proceed without verifying the identity of the requester. The insecure pattern is exposing data-management functionality while relying on route availability or object identifiers instead of mandatory, server-side access checks.

Potential impact

  • Attackers may read private bucket objects
  • Sensitive or tenant-isolated data could be disclosed
  • Stored objects may be deleted without authorization
  • Data availability and application workflows could be disrupted
  • Compromised objects could contribute to downstream integrity or supply-chain risks
  • Attackers may read private bucket objects
  • Sensitive or tenant-isolated data could be disclosed
  • Stored objects may be deleted without authorization
  • Data availability and application workflows could be disrupted
  • Compromised objects could contribute to downstream integrity or supply-chain risks

General mitigation guidance

Mitigation generally focuses on making authentication and authorization mandatory for all private-object operations and HTTP methods.

Common defensive patterns include:

  • Defaulting storage objects and buckets to private access
  • Requiring validated authentication before processing object requests
  • Enforcing tenant, bucket, and object-level authorization server-side
  • Applying the same policy consistently to read, write, update, and delete operations
  • Avoiding authorization decisions based solely on identifiers or obscurity
  • Using least-privilege service identities and narrowly scoped storage permissions
  • Logging and rate-limiting sensitive object-access operations

Mitigation generally focuses on making authentication and authorization mandatory for all private-object operations and HTTP methods.

Common defensive patterns include:

  • Defaulting storage objects and buckets to private access
  • Requiring validated authentication before processing object requests
  • Enforcing tenant, bucket, and object-level authorization server-side
  • Applying the same policy consistently to read, write, update, and delete operations
  • Avoiding authorization decisions based solely on identifiers or obscurity
  • Using least-privilege service identities and narrowly scoped storage permissions
  • Logging and rate-limiting sensitive object-access operations

How teams detect issues like this

Organizations can identify missing authentication risks through:

  • Static analysis and route reviews that flag storage endpoints without authentication middleware
  • Code review checks confirming authorization is applied consistently across every HTTP method
  • Integration tests that attempt unauthenticated access to private objects and destructive operations
  • API gateway or policy enforcement rules requiring identity verification for private-storage paths
  • Monitoring for anonymous object reads, deletes, unusual path enumeration, and cross-tenant access patterns

Automated security testing tools may help detect endpoints whose access behavior differs by HTTP method.

Organizations can identify missing authentication risks through:

  • Static analysis and route reviews that flag storage endpoints without authentication middleware
  • Code review checks confirming authorization is applied consistently across every HTTP method
  • Integration tests that attempt unauthenticated access to private objects and destructive operations
  • API gateway or policy enforcement rules requiring identity verification for private-storage paths
  • Monitoring for anonymous object reads, deletes, unusual path enumeration, and cross-tenant access patterns

Automated security testing tools may help detect endpoints whose access behavior differs by HTTP method.

Sources

SourceLink
github.comgithub.com/OtterMind/Nubase/blob/v0.1.4/src/main/java/ai/nubase/auth/controller/storage/StorageObjectReadController.java#L68-L74
github.comgithub.com/OtterMind/Nubase/blob/v0.1.4/src/main/java/ai/nubase/auth/service/StorageService.java#L176-L200
github.comgithub.com/OtterMind/Nubase/blob/v0.1.4/src/main/java/ai/nubase/common/multitenancy/UnifiedMultiTenancyFilter.java#L363-L379
hackmd.iohackmd.io/@hieuPenguinnn/nubase-storage-private-object-unauth-download
vulncheck.comvulncheck.com/advisories/ottermind-nubase-through-0.1.4-missing-authentication-in-storage-object-api

Frequently asked

questions

Yes. Where the object-storage endpoint is externally reachable, exploitation may occur over the network without an authenticated session.

No API key or JWT is required, but the attacker generally needs a tenant subdomain, bucket identifier, and object path.

Require authentication and server-side authorization for every operation on private buckets, including reads and deletes, regardless of HTTP method.

Use private-by-default storage policies, centralized authorization middleware, method-complete access-control tests, tenant-isolation checks, and monitoring for anonymous storage activity.

Yes. Where the object-storage endpoint is externally reachable, exploitation may occur over the network without an authenticated session.

No API key or JWT is required, but the attacker generally needs a tenant subdomain, bucket identifier, and object path.

Require authentication and server-side authorization for every operation on private buckets, including reads and deletes, regardless of HTTP method.

Use private-by-default storage policies, centralized authorization middleware, method-complete access-control tests, tenant-isolation checks, and monitoring for anonymous storage activity.

Find out what's already
exploitable in your codebase.