/

CVE-2026-112000

Severity:

HIGH RISK

(7.6)

Missing Authorization (CWE-862) in Vanus Gateway APIs

CVE-2026-112000

Deferred

Vulnerability type

Category:

Missing Authorization

CWE:

CWE-862

Impact:

Cross-Tenant Data Access and Denial of Service

Severity:

HIGH RISK

(7.6)

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

Vanus Gateway does not consistently enforce authorization for authenticated users invoking Subscribe, Ack, and certain unregistered methods. An attacker who knows or obtains another tenant's subscription identifier may access its events, acknowledge them, disrupt legitimate consumption, and enumerate cluster users.

Vanus Gateway does not consistently enforce authorization for authenticated users invoking Subscribe, Ack, and certain unregistered methods. An attacker who knows or obtains another tenant's subscription identifier may access its events, acknowledge them, disrupt legitimate consumption, and enumerate cluster users.

Affected context

The issue occurs in Vanus Gateway deployments where authenticated users can reach subscription and related gateway methods without an authorization check tied to the subscription's tenant or owner. It is particularly risky in multi-tenant environments when subscription identifiers are guessable, exposed, or otherwise obtainable and when user-enumeration methods are reachable through the gateway.

The issue occurs in Vanus Gateway deployments where authenticated users can reach subscription and related gateway methods without an authorization check tied to the subscription's tenant or owner. It is particularly risky in multi-tenant environments when subscription identifiers are guessable, exposed, or otherwise obtainable and when user-enumeration methods are reachable through the gateway.

Exploit preconditions

  • Attack surface: Vanus Gateway API methods, including Subscribe, Ack, and unregistered methods such as ListUser
  • Required access: An authenticated Vanus user account
  • Required target information: A valid subscription identifier belonging to another tenant, unless it can be discovered or inferred
  • Trigger point: Invocation of gateway methods that do not verify tenant ownership or user authorization
  • Why exploitation is possible: Authentication is performed without consistently enforcing authorization for the requested subscription or operation
  • Attack surface: Vanus Gateway API methods, including Subscribe, Ack, and unregistered methods such as ListUser
  • Required access: An authenticated Vanus user account
  • Required target information: A valid subscription identifier belonging to another tenant, unless it can be discovered or inferred
  • Trigger point: Invocation of gateway methods that do not verify tenant ownership or user authorization
  • Why exploitation is possible: Authentication is performed without consistently enforcing authorization for the requested subscription or operation

Why this happens

The underlying flaw is a missing authorization check at the gateway method boundary. Authentication establishes that a caller has an account, but the affected operations do not reliably verify whether that account is permitted to access the specified subscription or invoke the requested method. This behavior maps to CWE-862: Missing Authorization, because access-control enforcement is absent or incomplete for protected resources and actions.

The underlying flaw is a missing authorization check at the gateway method boundary. Authentication establishes that a caller has an account, but the affected operations do not reliably verify whether that account is permitted to access the specified subscription or invoke the requested method. This behavior maps to CWE-862: Missing Authorization, because access-control enforcement is absent or incomplete for protected resources and actions.

Potential impact

  • An attacker may read events belonging to another tenant
  • An attacker may acknowledge or consume events without the legitimate consumer's consent
  • Legitimate consumers could experience event starvation or processing disruption
  • Cross-tenant information disclosure may occur
  • Attackers may enumerate users or cluster account information through exposed methods
  • Unauthorized operations could undermine tenant isolation
  • An attacker may read events belonging to another tenant
  • An attacker may acknowledge or consume events without the legitimate consumer's consent
  • Legitimate consumers could experience event starvation or processing disruption
  • Cross-tenant information disclosure may occur
  • Attackers may enumerate users or cluster account information through exposed methods
  • Unauthorized operations could undermine tenant isolation

General mitigation guidance

Mitigation generally focuses on enforcing authorization as close as possible to every gateway operation and protected resource.

Common defensive patterns include:

  • Apply explicit, deny-by-default authorization checks to every exposed method, including dynamically registered or unregistered methods
  • Bind subscriptions and event operations to the authenticated tenant and permitted principal
  • Validate ownership and access scope for every subscription identifier supplied by a caller
  • Minimize identifier disclosure and use high-entropy, non-sequential resource identifiers where appropriate
  • Restrict user-enumeration functionality and return responses that do not reveal unnecessary account information
  • Apply least privilege to service accounts and separate tenant data paths
  • Add centralized policy enforcement and consistent authorization tests for read, acknowledge, subscribe, and administrative operations

Mitigation generally focuses on enforcing authorization as close as possible to every gateway operation and protected resource.

Common defensive patterns include:

  • Apply explicit, deny-by-default authorization checks to every exposed method, including dynamically registered or unregistered methods
  • Bind subscriptions and event operations to the authenticated tenant and permitted principal
  • Validate ownership and access scope for every subscription identifier supplied by a caller
  • Minimize identifier disclosure and use high-entropy, non-sequential resource identifiers where appropriate
  • Restrict user-enumeration functionality and return responses that do not reveal unnecessary account information
  • Apply least privilege to service accounts and separate tenant data paths
  • Add centralized policy enforcement and consistent authorization tests for read, acknowledge, subscribe, and administrative operations

How teams detect issues like this

Detection can include static and runtime checks for gateway handlers that access subscriptions without invoking a tenant- or principal-aware policy decision.

Useful review signals include:

  • Methods that authenticate callers but do not authorize resource ownership
  • Authorization checks performed only during session creation rather than per operation
  • Handlers accepting subscription identifiers without tenant-scope validation
  • Dynamically registered, fallback, or unregistered methods that bypass the normal policy middleware
  • User-listing responses exposed to ordinary authenticated accounts

Runtime monitoring can flag cross-tenant subscription access attempts, unusual acknowledgement activity, repeated identifier probing, and calls to user-enumeration methods. Automated code review and policy-as-code checks can help enforce authorization coverage.

Detection can include static and runtime checks for gateway handlers that access subscriptions without invoking a tenant- or principal-aware policy decision.

Useful review signals include:

  • Methods that authenticate callers but do not authorize resource ownership
  • Authorization checks performed only during session creation rather than per operation
  • Handlers accepting subscription identifiers without tenant-scope validation
  • Dynamically registered, fallback, or unregistered methods that bypass the normal policy middleware
  • User-listing responses exposed to ordinary authenticated accounts

Runtime monitoring can flag cross-tenant subscription access attempts, unusual acknowledgement activity, repeated identifier probing, and calls to user-enumeration methods. Automated code review and policy-as-code checks can help enforce authorization coverage.

Sources

SourceLink
github.comgithub.com/vanus-labs/vanus/blob/v0.9.0/internal/gateway/auth/auth.go#L97-L110
github.comgithub.com/vanus-labs/vanus/blob/v0.9.0/internal/gateway/auth/interceptor.go#L35-L40
github.comgithub.com/vanus-labs/vanus/blob/v0.9.0/internal/gateway/proxy/proxy.go#L256-L300
github.comgithub.com/vanus-labs/vanus/issues/647
vulncheck.comvulncheck.com/advisories/vanus-0.8.0-through-0.9.0-missing-authorization-in-gateway-streaming-rpcs

Frequently asked

questions

The described vulnerability requires authentication. Any authenticated user may be able to reach affected operations, subject to whether the target subscription identifier can be obtained.

The attacker needs a valid account and a target subscription identifier, or a way to discover or infer one. The gateway's missing tenant and ownership checks enable the unauthorized access.

Enforce deny-by-default, resource-level authorization for every gateway method, verifying both the caller's permissions and the subscription's tenant ownership before allowing access or acknowledgement.

Maintain centralized authorization policies, test every API method against cross-tenant access cases, protect enumeration endpoints, and monitor for unusual subscription and acknowledgement behavior.

The described vulnerability requires authentication. Any authenticated user may be able to reach affected operations, subject to whether the target subscription identifier can be obtained.

The attacker needs a valid account and a target subscription identifier, or a way to discover or infer one. The gateway's missing tenant and ownership checks enable the unauthorized access.

Enforce deny-by-default, resource-level authorization for every gateway method, verifying both the caller's permissions and the subscription's tenant ownership before allowing access or acknowledgement.

Maintain centralized authorization policies, test every API method against cross-tenant access cases, protect enumeration endpoints, and monitor for unusual subscription and acknowledgement behavior.

Find out what's already
exploitable in your codebase.