Skip to main content

Capgo EUVDEUVD-2026-87721

| CVE-2026-100627 HIGH
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-09-26 VulnCheck GHSA-w4hm-mr28-xj78
7.2
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Obtain app-scoped write/all API key
  2. Delivery
    Send PUT /bundle with denied channel_id
  3. Exploit
    checkPermission omits channel_id (SQL NULL)
  4. Execution
    Per-channel deny override never evaluated
  5. Persist
    Update public.channels.version
  6. Impact
    Push OTA bundle to end-user devices

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
Exploitation Conditions

Exploitation requires a valid Capgo API key of type 'all' or 'write' bound to a role carrying app-level channel.promote_bundle (granted by default to the app_developer and app_uploader roles) - so the actor is an already-privileged deployer, not an anonymous outsider. The flaw only produces impact when an administrator has actually configured an explicit per-channel deny (or allow) override on the target channel_id; without such an override there is nothing to bypass. The attacker must also know or supply the target channel_id of a channel they were explicitly denied. No user interaction is needed and the endpoint is network-reachable (PUT /bundle).

Impact

The only quantitative signal provided is the vendor/VulnCheck CVSS 4.0 base score of 7.2 (AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:H). No EPSS probability, no CISA KEV listing, and no public exploit code are present in the input, so exploitation status is 'no public exploit identified at time of analysis.' This is a genuine authorization flaw (CWE-639 IDOR), not a high-CVSS-but-empty issue, but its real-world priority is moderated by an important prerequisite the raw score understates: the attacker must ALREADY hold an app-level 'channel.promote_bundle' permission (default on the app_developer and app_uploader roles) via a valid 'all' or 'write' API key. The vulnerability does not grant a new capability to an outsider - it lets an already-privileged deployer bypass a narrower per-channel DENY override. I note a labeling conflict: the input Tags call this 'Authentication Bypass,' but the mechanism (a privileged principal circumventing a per-channel authorization override) is authorization/access-control, consistent with the assigned CWE-639. There is no independent evidence (EPSS/KEV/POC) to elevate this beyond a targeted, low-likelihood risk against Capgo self-hosters and the Capgo cloud backend.

Exploit ScenarioDerived

An attacker (or a compromised low-trust CI token) holding a Capgo 'write' or 'all' API key with the default app_developer/app_uploader role sends a PUT /bundle request naming a channel_id for which an administrator has configured an explicit per-channel deny override. Because the promotion path never forwards channel_id into the RBAC check, the deny override is silently skipped and the attacker updates public.channels.version, delivering an OTA bundle to that channel's end-user devices. No public proof-of-concept is referenced in the available data.

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 26, 2026

Capgo's Supabase backend bundle-promotion API allows an authenticated API key holder with app-level channel.promote_bundle to bypass explicit per-channel deny overrides and promote a bundle to a channel they were denied, updating public.channels.version. This affects Capgo (Cap-go/capgo.app) deployments, confirmed on main at commit de66fa51e7ff2f50283cc1455c3d80ab3eb0ae43 and likely earlier versions; no vendor-released patch was known at publication. The flaw only has impact when an administrator has configured a per-channel allow or deny override on the target channel_id, and no public exploit identified at time of analysis; the vendor/VulnCheck CVSS 4.0 base score is 7.2.

RemediationAI

No vendor-released patch identified at time of analysis, and no exact fix version is available; track the vendor advisory https://github.com/Cap-go/capgo.app/security/advisories/GHSA-633x-9x77-77gf and VulnCheck advisory https://www.vulncheck.com/advisories/capgo-bundle-promotion-api-channel-rbac-deny-override-bypass for the patched release. As compensating controls, revoke or rotate API keys of type 'all' or 'write' that are not strictly required, and remove app-level channel.promote_bundle from app_developer and app_uploader roles until a fix is deployed; this reduces exposure but breaks or requires manual re-granting for legitimate bundle deployment workflows. If an API gateway or reverse proxy is available, block or restrict PUT /bundle to trusted administrative sources or require an additional channel-scoped authorization check for the supplied channel_id; this stops the bypass but may disrupt CI/CD bundle promotions. For self-hosted Supabase functions, harden setChannel/checkPermission to require and forward channel_id and reject authorization decisions where p_channel_id is NULL so per-channel allow/deny overrides are evaluated; this is a custom divergence from upstream and must be regression-tested. Monitor public.channels.version changes and audit authorization calls with NULL channel scope, but treat such monitoring as detection rather than prevention.

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

The vulnerable component is Capgo's server backend implemented as Supabase functions, where the PUT /bundle endpoint, available to API keys of type 'all' or 'write', dispatches to setChannel. setChannel calls checkPermission(c, 'channel.promote_bundle', { appId: body.app_id }) but omits the request's channel_id. That omitted scope is passed as SQL NULL into rbac_check_permission_direct, and channel-scope override evaluation is gated on p_channel_id IS NOT NULL, so explicit per-channel allow/deny overrides are never evaluated. Consequently a principal that already holds app-level channel.promote_bundle, which is granted by default to app_developer and app_uploader roles, can promote a bundle to a channel with an explicit per-channel deny override; the target channel_id is only validated after authorization, and public.channels.version is updated for the supplied channel. This is an authorization-scope omission consistent with CWE-639 (Authorization Bypass Through User-Controlled Key). The CPE cpe:2.3:a:cap-go:capgo.app:*:*:*:*:*:*:*:* covers capgo.app versions; the issue is confirmed on main at commit de66fa51e7ff2f50283cc1455c3d80ab3eb0ae43 and likely earlier. The vendor/VulnCheck CVSS 4.0 base score is 7.2 with vector AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N, while our independent assessment is CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:L, reflecting a network-reachable, low-privileged authenticated deployer with no user interaction and an impact requiring a pre-existing per-channel override.

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 7.2 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 8.5 HIGH

PR:L because a role-scoped write/all API key is required; S:C and I:H/A:L because the bypass pushes an unauthorized OTA bundle onto end-user devices (a separate system) with no confidentiality impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:L
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:L/SC:N/SI:L/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
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Capgo (Cap-go/capgo.app) server backend Supabase functions contain an incorrect authorization flaw in the API-key bundle promotion path. The PUT /bundle endpoint, available to "all" and "write" API keys, dispatches to setChannel, which authorizes with checkPermission(c, 'channel.promote_bundle', { appId: body.app_id }) and omits the request's channel_id. Because the omitted scope field is passed to rbac_check_permission_direct as SQL NULL, and channel-scope override evaluation is gated on p_channel_id IS NOT NULL, per-channel allow/deny overrides are never evaluated. A principal holding app-level channel.promote_bundle (granted by default to the app_developer and app_uploader roles) can therefore promote a bundle to a channel for which an explicit per-channel deny override exists, updating public.channels.version for the supplied channel_id; the target channel is only validated after authorization. The issue is confirmed on main at commit de66fa51e7ff2f50283cc1455c3d80ab3eb0ae43 and likely earlier versions; no patched version is known at the time of publication.

Technical POC Analysis

CWE-639 (assigned; the description calls it "incorrect authorization") in Capgo's Supabase backend bundle-promotion path.

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

A privilege-control gap in Capgo's Supabase backend allows a holder of an app-level API key to promote an update bundle onto a release channel that administrators had explicitly denied, undermining the guardrails that govern which software versions reach end users. Organizations relying on Capgo for over-the-air delivery of their mobile applications should treat their channel restriction settings as potentially unenforceable until remediated, as the flaw only takes effect on channels where an allow or deny override has been configured. No vendor-released patch was identified at time of analysis and no public exploit has been identified, so this is currently a control-integrity and audit exposure rather than an active compromise.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: restrict and rotate API keys carrying the app-level channel.promote_bundle permission and issue narrowly scoped per-app keys; remove channel.promote_bundle from keys that do not require promotion automation; treat administrator-configured per-channel allow/deny overrides as non-authoritative and enforce approval outside Capgo; monitor and alert on changes to public.channels.version; audit all channels for unauthorized bundle promotions and revert any unapproved version.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Low
Niche self-hosted/SaaS OTA update backend for Capacitor mobile apps
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
Medium
Technical Impact
Total

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
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-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-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-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-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-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-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-88862 HIGH
8.7 Sep 10

Privilege escalation in the Capgo (capgo.app) backend through version 12.242.4 allows an authenticated API key holder to

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