Description
Capgo (capgo.app) backend through 12.242.4 does not validate parent-child delegation when processing the x-limited-key-id header. checkKeyByIdPg() in supabase/functions/_backend/utils/hono_middleware.ts resolves the attacker-supplied numeric API key ID using only the key ID, its expiration state, and the authenticating key's user_id, while hasLimitedRbacSubkeyScope() accepts any key with a non-organization (e.g., app-scoped) RBAC binding and validateSubkeyUser() only compares owning user IDs. Because Capgo treats API keys as independent RBAC principals with separate role bindings, an authenticated apikey_manager API key with no application access can supply the numeric ID of a more privileged same-owner key and have the middleware replace the authenticated principal and effective API-key secret with that key (setSubkeyAuthContext), exercising an app_admin sibling's permissions without knowing or submitting its secret. The issue was reproduced on release 12.242.4 (commit b3d02cdbc23ac59990785acacd1f113c07458568) after the fix for GHSA-8h52-44r7-w343; at the time of the advisory no patched version was available.
Published: 2026-09-10
Score: 8.7 High
EPSS: n/a
KEV: No
Impact: Privilege Escalation via API Key Manager Bypass
Action: Immediate Patch
AI Analysis

Impact

Capgo backend systems through version 12.242.4 allow an attacker to bypass authentication controls by supplying a numeric API key ID in the x-limited-key-id header. The middleware that interprets this header fails to verify that the supplied key belongs to the same privileged parent, enabling an apikey_manager key that normally has no application access to substitute the identity of a higher‑privilege key belonging to the same owner. This flaw effectively grants the attacker app_admin permissions without the corresponding secret, raising the confidentiality, integrity, and availability of the application.

Affected Systems

Capgo (capgo.app) backend as distributed via the Cap‑Go framework, specifically all releases up to and including 12.242.4. No other versions are presently known to be affected.

Risk and Exploitability

The CVSS score of 8.7 classifies the vulnerability as high severity. Because no EPSS value is available, the exact exploitation probability cannot be quantified, but the flaw permits a privileged escalation that can be achieved over a network interface that processes the x-limited-key-id header. The vulnerability does not appear in the CISA KEV catalog, and no published public exploit scripts exist, yet the path to exploitation involves only standard HTTP request manipulation and the use of a valid apikey_manager key.

Generated by OpenCVE AI on September 10, 2026 at 15:06 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Capgo to a version newer than 12.242.4 once the fix is released; monitor the official repository for the patch.
  • Revoke or limit the scope of existing apikey_manager API keys so they cannot be used to impersonate other keys.
  • Implement a validation check that rejects x-limited-key-id values that do not reference a key belonging to a trusted parent or that do not have matching ownership constraints.

Generated by OpenCVE AI on September 10, 2026 at 15:06 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 10 Sep 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Thu, 10 Sep 2026 13:30:00 +0000

Type Values Removed Values Added
Description Capgo (capgo.app) backend through 12.242.4 does not validate parent-child delegation when processing the x-limited-key-id header. checkKeyByIdPg() in supabase/functions/_backend/utils/hono_middleware.ts resolves the attacker-supplied numeric API key ID using only the key ID, its expiration state, and the authenticating key's user_id, while hasLimitedRbacSubkeyScope() accepts any key with a non-organization (e.g., app-scoped) RBAC binding and validateSubkeyUser() only compares owning user IDs. Because Capgo treats API keys as independent RBAC principals with separate role bindings, an authenticated apikey_manager API key with no application access can supply the numeric ID of a more privileged same-owner key and have the middleware replace the authenticated principal and effective API-key secret with that key (setSubkeyAuthContext), exercising an app_admin sibling's permissions without knowing or submitting its secret. The issue was reproduced on release 12.242.4 (commit b3d02cdbc23ac59990785acacd1f113c07458568) after the fix for GHSA-8h52-44r7-w343; at the time of the advisory no patched version was available.
Title Capgo API Key Manager Authentication Bypass via x-limited-key-id
Weaknesses CWE-863
References
Metrics cvssV3_1

{'score': 8.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}

cvssV4_0

{'score': 8.7, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-09-10T14:27:28.766Z

Reserved: 2026-09-10T11:23:56.027Z

Link: CVE-2026-88862

cve-icon Vulnrichment

Updated: 2026-09-10T14:26:45.451Z

cve-icon NVD

Status : Deferred

Published: 2026-09-10T14:17:11.820

Modified: 2026-09-10T15:17:56.617

Link: CVE-2026-88862

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-10T15:15:07Z

Weaknesses