/

CVE-2026-63153

Severity:

HIGH RISK

(8.1)

Broken Access Control (CWE-639) in Agora setAffectations

CVE-2026-63153

Deferred

Vulnerability type

Category:

Broken Access Control

CWE:

CWE-639

Impact:

Unauthorized access and tenant isolation bypass

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

Omnispace Agora contains a broken access control vulnerability in setAffectations() that allows an authenticated attacker to create access records for a caller-selected target space without proving authority over it. Under tenant-isolated deployments, this may enable unauthorized access to restricted spaces and weaken separation between tenants.

Omnispace Agora contains a broken access control vulnerability in setAffectations() that allows an authenticated attacker to create access records for a caller-selected target space without proving authority over it. Under tenant-isolated deployments, this may enable unauthorized access to restricted spaces and weaken separation between tenants.

Affected context

The issue occurs in Agora deployments that expose the setAffectations() operation and rely on application-level authorization to protect space membership or access records. Risk is present when the operation accepts a target space identifier from the caller but does not verify that the caller has permission to administer that space.

The issue occurs in Agora deployments that expose the setAffectations() operation and rely on application-level authorization to protect space membership or access records. Risk is present when the operation accepts a target space identifier from the caller but does not verify that the caller has permission to administer that space.

Exploit preconditions

  • Attack surface: The application endpoint or service operation that invokes setAffectations()
  • Required access: An authenticated account able to reach the affected functionality
  • Trigger point: Creation or modification of access-affectation records for a caller-supplied target space
  • Why exploitation is possible: Authorization is not adequately bound to the selected target space, allowing a caller to act beyond its permitted tenant or space scope
  • Attack surface: The application endpoint or service operation that invokes setAffectations()
  • Required access: An authenticated account able to reach the affected functionality
  • Trigger point: Creation or modification of access-affectation records for a caller-supplied target space
  • Why exploitation is possible: Authorization is not adequately bound to the selected target space, allowing a caller to act beyond its permitted tenant or space scope

Why this happens

The underlying flaw is an object-level authorization failure. The application appears to authenticate the caller but does not consistently verify that the caller is authorized to modify the specific space identified in the request. This maps to CWE-639, Authorization Bypass Through User-Controlled Key, because a user-controlled object or resource identifier is accepted without enforcing access rights for that object.

The underlying flaw is an object-level authorization failure. The application appears to authenticate the caller but does not consistently verify that the caller is authorized to modify the specific space identified in the request. This maps to CWE-639, Authorization Bypass Through User-Controlled Key, because a user-controlled object or resource identifier is accepted without enforcing access rights for that object.

Potential impact

  • An attacker may create unauthorized access-affectation records.
  • Restricted spaces could become accessible to accounts outside the intended tenant or scope.
  • Tenant isolation could be weakened or bypassed.
  • Access-control data could be altered, causing unauthorized disclosure or privilege expansion.
  • An attacker may create unauthorized access-affectation records.
  • Restricted spaces could become accessible to accounts outside the intended tenant or scope.
  • Tenant isolation could be weakened or bypassed.
  • Access-control data could be altered, causing unauthorized disclosure or privilege expansion.

General mitigation guidance

Mitigation generally focuses on enforcing object-level authorization at the operation that changes access records. Authorization decisions should be derived from trusted server-side identity and resource relationships rather than from caller-supplied scope claims. Secure-by-default designs can deny cross-space changes unless an explicit, independently verified relationship grants them. Resource identifiers should be treated as untrusted input, access checks should occur before any state change, and service accounts should operate with only the privileges required for their tenant or administrative scope. Consistent authorization middleware and centralized policy evaluation can reduce gaps between endpoints.

Mitigation generally focuses on enforcing object-level authorization at the operation that changes access records. Authorization decisions should be derived from trusted server-side identity and resource relationships rather than from caller-supplied scope claims. Secure-by-default designs can deny cross-space changes unless an explicit, independently verified relationship grants them. Resource identifiers should be treated as untrusted input, access checks should occur before any state change, and service accounts should operate with only the privileges required for their tenant or administrative scope. Consistent authorization middleware and centralized policy evaluation can reduce gaps between endpoints.

How teams detect issues like this

Detection approaches include static analysis and code review for handlers that accept resource identifiers and update authorization or membership records without a corresponding ownership or scope check. Reviewers can look for direct database writes based on user-controlled space IDs, authorization checks performed only on the caller rather than the target resource, and missing negative tests for cross-tenant access. Runtime monitoring can flag access-affectation changes involving unrelated tenants or spaces. Automated security review tools and policy-as-code checks may help enforce object-level authorization requirements.

Detection approaches include static analysis and code review for handlers that accept resource identifiers and update authorization or membership records without a corresponding ownership or scope check. Reviewers can look for direct database writes based on user-controlled space IDs, authorization checks performed only on the caller rather than the target resource, and missing negative tests for cross-tenant access. Runtime monitoring can flag access-affectation changes involving unrelated tenants or spaces. Automated security review tools and policy-as-code checks may help enforce object-level authorization requirements.

Sources

SourceLink
github.comgithub.com/xech/agora-project/releases/tag/26.10
agora-project.netagora-project.net/
vulncheck.comvulncheck.com/advisories/omnispace-agora-project-broken-access-control-via-setaffectations

Frequently asked

questions

It may be exploitable through a reachable application interface, provided the attacker has a valid authenticated account and the affected operation is exposed.

Not necessarily. The key requirement is authenticated access to setAffectations() or to a function that invokes it; the account may only need limited permissions.

Enforce server-side object-level authorization for the exact target space before creating or modifying any access-affectation record.

Treat resource identifiers as untrusted, centralize authorization policy, test cross-tenant access boundaries, and include negative authorization cases in automated testing.

It may be exploitable through a reachable application interface, provided the attacker has a valid authenticated account and the affected operation is exposed.

Not necessarily. The key requirement is authenticated access to setAffectations() or to a function that invokes it; the account may only need limited permissions.

Enforce server-side object-level authorization for the exact target space before creating or modifying any access-affectation record.

Treat resource identifiers as untrusted, centralize authorization policy, test cross-tenant access boundaries, and include negative authorization cases in automated testing.

Find out what's already
exploitable in your codebase.