Skip to main content

Capgo Backend EUVDEUVD-2026-75412

| CVE-2026-88862 HIGH
Incorrect Authorization (CWE-863)
2026-09-10 VulnCheck GHSA-92q7-3qv3-754g
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain or steal valid apikey_manager API key
  2. Delivery
    Enumerate numeric ID of privileged app_admin sibling key
  3. Exploit
    Craft API request with x-limited-key-id header set to target key ID
  4. Execution
    Middleware resolves key by user_id match, skips delegation check
  5. Persist
    setSubkeyAuthContext replaces session principal with app_admin key
  6. Impact
    Execute privileged app management operations

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires the attacker to possess a valid (non-revoked, non-expired) apikey_manager API key for the targeted Capgo account - this is a low-privilege authenticated condition (PR:L) and fully unauthenticated exploitation is not possible. The attacker must additionally know or enumerate the numeric ID of a more privileged sibling API key (e.g., app_admin) belonging to the same account owner; the advisory does not confirm whether these IDs are sequential or otherwise easily guessable, but numeric enumeration is a realistic vector. Both keys must share the same user_id, meaning cross-account escalation is not possible via this path. Organization-scoped keys are excluded by hasLimitedRbacSubkeyScope(), so the privilege ceiling reachable through this bypass is app-scoped roles such as app_admin. The backend must be running version 12.242.4 or earlier. Limiting factors: the attacker cannot exploit this unauthenticated, cannot cross account boundaries, and cannot reach organization-level roles through this specific bypass.

Impact

The CVSS 4.0 score of 8.7 (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H) correctly captures the network-accessible, low-complexity character of this authorization bypass requiring only a low-privilege credential. The primary threat is intra-account horizontal privilege escalation: any holder of an apikey_manager key - including a compromised CI/CD pipeline token or a malicious insider - can silently gain full application management capabilities without knowledge of the target key's secret. No EPSS score is present in the input data, so exploitation probability cannot be precisely quantified, and the vulnerability is not listed in CISA KEV; however, the low attack complexity and the existence of a detailed public GitHub security advisory (GHSA-5hjr-xhx8-x5j7) make it readily weaponizable once a low-privilege key is obtained. The fact that this bypass survived a prior remediation attempt signals a subtle, persistent design flaw rather than a simple coding error - even a mid-sized municipal IT team in kielce managing Capacitor-based mobile apps through Capgo should treat this as urgent given the lack of any available patch. Real-world risk is bounded by the requirement to first hold a valid apikey_manager key, which limits the exposure to insider threats, credential theft, and supply-chain compromise scenarios rather than fully unauthenticated attack paths.

Exploit ScenarioDerived

An attacker who has compromised or stolen an apikey_manager API key for a Capgo account issues an API request to the Capgo backend, setting the x-limited-key-id header to the numeric ID of a same-owner app_admin sibling key - these IDs may be enumerable via API or predictable. The middleware resolves the target key (matching on user_id only), skips parent-child validation, and replaces the session principal with the privileged key via setSubkeyAuthContext, granting full application management access without the attacker ever possessing or submitting the app_admin key's secret. No public exploit code has been identified at time of analysis, but the mechanism is fully described in the public security advisory.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 10, 2026

Privilege escalation in the Capgo (capgo.app) backend through version 12.242.4 allows an authenticated API key holder to impersonate a more privileged sibling key by supplying its numeric ID in the x-limited-key-id header, bypassing the intended parent-child delegation hierarchy entirely. The middleware's checkKeyByIdPg() resolves the caller-supplied key ID using only the ID, expiration state, and owning user_id, while validateSubkeyUser() only checks that both keys share an owner - neither function verifies that the resolved key is an actual descendant of the authenticating key. An apikey_manager key can therefore silently acquire app_admin permissions via setSubkeyAuthContext without knowledge of the target key's secret; the issue was confirmed on release 12.242.4 after a prior incomplete fix (GHSA-8h52-44r7-w343), and no patched version was available at time of advisory.

RemediationAI

No vendor-released patch was identified at time of analysis - the advisory explicitly states that no patched version was available at disclosure. Organizations using Capgo should actively monitor the GitHub security advisory at https://github.com/Cap-go/capgo.app/security/advisories/GHSA-5hjr-xhx8-x5j7 and the VulnCheck advisory at https://www.vulncheck.com/advisories/capgo-api-key-manager-authentication-bypass-via-x-limited-key-id for a remediated release. As immediate compensating controls, operators should audit and revoke all apikey_manager API keys that are not strictly required, since exploitation depends on the attacker holding such a key; this reduces the attack surface at the cost of breaking any automation relying on delegation. Avoid issuing apikey_manager keys to CI/CD pipelines or external integrations that do not explicitly require delegation. Self-hosted operators can apply a code-level patch to hono_middleware.ts that enforces a true parent-child relationship check before setSubkeyAuthContext is invoked - the fix for GHSA-8h52-44r7-w343 provides a prior reference point but was insufficient, so the delegation graph must be explicitly validated. Disabling or blocking the x-limited-key-id header at the reverse-proxy layer is an aggressive but effective compensating control, with the trade-off that all legitimate subdelegation flows will be broken.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Capgo is a cloud backend for Capacitor (Ionic) mobile app over-the-air (OTA) update delivery, built on Supabase edge functions using the Hono framework. The vulnerable code resides in supabase/functions/_backend/utils/hono_middleware.ts. The platform implements a hierarchical API key system where keys carry RBAC role bindings (e.g., apikey_manager, app_admin, organization-level scopes). The x-limited-key-id header is designed to allow a parent key to delegate authority to a child (sub)key. The root cause (CWE-863, Incorrect Authorization) is that checkKeyByIdPg() resolves the attacker-supplied key by numeric ID and owner user_id alone, hasLimitedRbacSubkeyScope() only requires a non-organization scope on the resolved key, and validateSubkeyUser() only compares owning user IDs - none of the three functions verify that the resolved key is a true child or delegate of the authenticating key. Because Capgo treats all API keys as independent RBAC principals, a low-privilege key can silently replace itself as the session principal with any same-owner key through setSubkeyAuthContext. The affected CPE is cpe:2.3:a:cap-go:capgo.app:*:*:*:*:*:*:*:*.

Know when Cap Go gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 8.7 HIGH
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
vuln.today AI 8.8 HIGH

Network-exploitable authorization bypass requiring a low-privilege API key (PR:L); no scope change as impact is confined to the exploiting account's Capgo resources.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

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.

Technical POC Analysis

CWE-863 (Incorrect Authorization): the API-key middleware authorizes a key substitution by ownership and target scope, never by delegation from the authenticating principal.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Capgo backend's API key authentication contains a privilege escalation vulnerability (CVSS 8.7) enabling lower-privileged API key holders to silently assume admin permissions; no public exploit identified at time of analysis. Organizations deploying applications through Capgo face risk of unauthorized application modification or deployment if API credentials are compromised. No patch is currently available from the vendor.

Business Impact: High
Compensating Controls

Implement immediate key rotation and regenerate credentials with minimal required scopes. Configure IP-based access restrictions on Capgo API endpoints where supported. Enable comprehensive audit logging for all API authentication and permission-related activities. Segregate Capgo API access to dedicated automation accounts and monitor for suspicious permission escalation attempts. Restrict internal system access to Capgo APIs through network segmentation.

Threat Intelligence Overview

EPSS Score
0.3%
Top 76% exploitable
Prevalence
Low
niche Capacitor mobile OTA update platform
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Affected Products (CPE)CVE.org

cpe:2.3:a:cap-go:capgo.app:*:*:*:*:*:*:*:*

More in Cap Go

View all
CVE-2026-56081 CRITICAL
9.3 Jun 19

Account pre-registration hijack in Capgo before 12.128.2 lets a remote unauthenticated attacker claim an account under a

CVE-2026-88864 CRITICAL
9.3 Sep 10

Improper access control in Capgo (capgo.app) lets any holder of an ordinary full API key forge a trusted SSO provider by

CVE-2026-56073 CRITICAL
9.3 Jun 19

Authentication bypass in Capgo prior to version 12.128.2 lets attackers defeat email-based OTP verification by tampering

CVE-2026-88860 CRITICAL
9.3 Sep 10

Authorization bypass in Capgo (capgo.app), a live-update/OTA platform for Capacitor mobile apps, allows a de-provisioned

CVE-2026-56245 HIGH
8.8 Jun 24

Cross-tenant data poisoning in Supabase Capgo before 12.128.2 allows remote unauthenticated attackers to corrupt billing

CVE-2026-56248 HIGH
8.7 Jun 23

Unauthenticated denial of service in Cap-go capgo (capgo-backend) before 12.128.12 allows remote attackers to exhaust Po

CVE-2026-100622 HIGH
8.7 Sep 26

Unauthenticated retrieval of deleted over-the-air update bundles from capgo.app through version 12.129.0 is possible via

CVE-2026-100623 HIGH
8.7 Sep 26

Capgo's direct exposure of the public.org_users table through Supabase PostgREST lets an authenticated user who already

CVE-2026-100619 HIGH
8.7 Sep 26

Authenticated principals who hold an app-scoped upload/write/all API key with upload+ rights - or any user granted write

CVE-2026-100614 HIGH
8.7 Sep 26

Cross-tenant metadata modification in Capgo before 12.244.1 allows an authenticated attacker to alter image object metad

CVE-2026-100615 HIGH
8.7 Sep 26

Privilege escalation in Capgo (capgo.app) before 12.267.1 allows a principal holding the apikey_manager role to rotate a

CVE-2026-100617 HIGH
8.7 Sep 26

Authenticated administrators on Capgo (capgo.app) can grant channel-scoped permissions to non-member users because the p

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy