/

CVE-2026-63338

Severity:

HIGH RISK

(8.3)

Broken Object Level Authorization (CWE-639) in IXP API

CVE-2026-63338

Deferred

Vulnerability type

Category:

Broken Object Level Authorization

CWE:

CWE-639, CWE-863

Impact:

Unauthorized access and modification of another user's API-key data

Severity:

HIGH RISK

(8.3)

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

IXP Manager contains an authorization flaw in the API-key management path that can allow an authenticated user to view or modify another user's API-key record. The issue becomes risky when object identifiers are accepted without verifying that the requested resource belongs to the caller.

IXP Manager contains an authorization flaw in the API-key management path that can allow an authenticated user to view or modify another user's API-key record. The issue becomes risky when object identifiers are accepted without verifying that the requested resource belongs to the caller.

Affected context

The vulnerability occurs in IXP Manager's API-key view and edit/update functionality when the application retrieves a record by identifier without consistently enforcing ownership. Deployments are exposed when authenticated users can submit identifiers for resources outside their authorized scope and server-side authorization does not compare the resource owner with the requesting user.

The vulnerability occurs in IXP Manager's API-key view and edit/update functionality when the application retrieves a record by identifier without consistently enforcing ownership. Deployments are exposed when authenticated users can submit identifiers for resources outside their authorized scope and server-side authorization does not compare the resource owner with the requesting user.

Exploit preconditions

  • Attack surface: Authenticated API-key management endpoints
  • Required access: A valid user account or session
  • Trigger point: Viewing or updating an API-key record through the relevant API path
  • Why exploitation is possible: The record lookup uses a supplied identifier without reliably confirming that its user_id matches the caller
  • Attack surface: Authenticated API-key management endpoints
  • Required access: A valid user account or session
  • Trigger point: Viewing or updating an API-key record through the relevant API path
  • Why exploitation is possible: The record lookup uses a supplied identifier without reliably confirming that its user_id matches the caller

Why this happens

The underlying bug is an object-level authorization failure. The controller identifies an API-key record by a client-influenced identifier but does not enforce an ownership or permission check before returning or modifying it. This maps primarily to CWE-639, Authorization Bypass Through User-Controlled Key, and is also consistent with CWE-863, Incorrect Authorization.

The underlying bug is an object-level authorization failure. The controller identifies an API-key record by a client-influenced identifier but does not enforce an ownership or permission check before returning or modifying it. This maps primarily to CWE-639, Authorization Bypass Through User-Controlled Key, and is also consistent with CWE-863, Incorrect Authorization.

Potential impact

  • An authenticated user may view another user's API-key record
  • An authenticated user could modify or disrupt another user's API-key configuration
  • Exposed API-key information may enable unauthorized access to connected services
  • Attackers could weaken account integrations or cause service disruption
  • An authenticated user may view another user's API-key record
  • An authenticated user could modify or disrupt another user's API-key configuration
  • Exposed API-key information may enable unauthorized access to connected services
  • Attackers could weaken account integrations or cause service disruption

General mitigation guidance

Mitigation generally focuses on enforcing authorization for every object access,

not only on the endpoint or user interface.

Common defensive patterns include:

  • Scope database queries to the authenticated user's authorized ownership or tenant context
  • Perform server-side authorization checks before both reads and updates
  • Avoid treating client-supplied identifiers as proof of ownership
  • Use centralized, deny-by-default authorization policies
  • Minimize API-key visibility and apply least privilege to related credentials
  • Return consistent authorization failures without revealing whether another user's object exists

Mitigation generally focuses on enforcing authorization for every object access,

not only on the endpoint or user interface.

Common defensive patterns include:

  • Scope database queries to the authenticated user's authorized ownership or tenant context
  • Perform server-side authorization checks before both reads and updates
  • Avoid treating client-supplied identifiers as proof of ownership
  • Use centralized, deny-by-default authorization policies
  • Minimize API-key visibility and apply least privilege to related credentials
  • Return consistent authorization failures without revealing whether another user's object exists

How teams detect issues like this

Organizations can look for this weakness through:

  • Static analysis and code review rules that flag object lookups by request-supplied identifiers without ownership checks
  • Review of controller and repository methods for missing user, tenant, or role predicates
  • Authorization tests that attempt cross-user reads and updates using valid authenticated sessions
  • API policy checks requiring resource-level authorization on every read and write operation
  • Automated security testing tools that exercise object identifiers across multiple user contexts

Organizations can look for this weakness through:

  • Static analysis and code review rules that flag object lookups by request-supplied identifiers without ownership checks
  • Review of controller and repository methods for missing user, tenant, or role predicates
  • Authorization tests that attempt cross-user reads and updates using valid authenticated sessions
  • API policy checks requiring resource-level authorization on every read and write operation
  • Automated security testing tools that exercise object identifiers across multiple user contexts

Sources

SourceLink
github.comgithub.com/inex/IXP-Manager/commit/3856e93681cc5efdaf9e3a7f53a751081433d021
github.comgithub.com/inex/IXP-Manager/releases/tag/v7.3.0
github.comgithub.com/inex/IXP-Manager/security/advisories/GHSA-m7g4-g69h-vj5w

Frequently asked

questions

It may be remotely exploitable through the API by an authenticated user, depending

on network exposure and deployment access controls.

Yes. The described issue requires an authenticated account, although the account

may have only ordinary user privileges.

Enforce server-side, object-level authorization before every read and write, using

the authenticated user's identity and permitted ownership scope rather than the

submitted record identifier alone.

Apply centralized authorization policies, use ownership-scoped queries, and add

cross-user access tests to code review, integration testing, and API security

validation.

It may be remotely exploitable through the API by an authenticated user, depending

on network exposure and deployment access controls.

Yes. The described issue requires an authenticated account, although the account

may have only ordinary user privileges.

Enforce server-side, object-level authorization before every read and write, using

the authenticated user's identity and permitted ownership scope rather than the

submitted record identifier alone.

Apply centralized authorization policies, use ownership-scoped queries, and add

cross-user access tests to code review, integration testing, and API security

validation.

Find out what's already
exploitable in your codebase.