Skip to main content

Capgo EUVDEUVD-2026-75413

| CVE-2026-88863 HIGH
Improper Privilege Management (CWE-269)
2026-09-10 VulnCheck GHSA-9758-4f33-587j
8.6
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Obtain org_member account in target organization
  2. Delivery
    Send crafted authenticated POST to /private/invite_new_user_to_org specifying org_admin role
  3. Exploit
    validateInvite() skips caller-rank check and accepts elevated invitation
  4. Execution
    Accept invitation from attacker-controlled external email via /private/accept_invitation
  5. Persist
    ensureOrgMembership applies binding using service-role key, bypassing DB triggers
  6. Impact
    Attacker-controlled account holds org_admin privileges over all org assets

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V8 - Authorization Least privilege enforcement
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 hold an existing authenticated org_member account (or any account with the org.invite_user permission) within the target Capgo organization, plus control over an external email address to receive and accept the crafted invitation. The target organization must be running capgo.app ≤ 12.207.1. Completely unauthenticated external attackers cannot exploit this - initial org membership is a hard prerequisite (CVSS PR:L). The database triggers prevent_role_binding_priority_escalation and check_org_user_privileges provide no compensating control because the service-role key used during acceptance bypasses them entirely. No non-default configuration is required; the vulnerable endpoint is part of the standard org-management API.

Impact

The CVSS 4.0 score of 8.6 (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N) accurately reflects severity: any authenticated org_member can escalate a controlled external account to org_admin over the network with no special configuration or complexity. The dual failure - missing rank check at the application layer and service-role key bypass at the database layer - nullifies both defensive tiers simultaneously, making the flaw particularly clean to exploit. EPSS data is absent from the available intelligence, so quantitative exploitation probability cannot be assessed. KEV status is negative and no public proof-of-concept has been identified, which moderates urgency but should not be relied upon given the straightforward exploitation path. Real-world risk is highest for capgo organizations that grant org.invite_user to contractors, customers, or other partially trusted parties.

Exploit ScenarioDerived

An attacker who has obtained a legitimate org_member account (e.g., via a normal invitation to join a project) sends a crafted authenticated POST to /private/invite_new_user_to_org requesting the org_admin role for an external email address they control. Because validateInvite() never checks whether the org_member's rank permits granting org_admin, the invitation is accepted; the attacker then accepts it from their controlled external account via /private/accept_invitation, where ensureOrgMembership uses the Supabase service-role key to apply the binding, bypassing all database-level privilege checks and granting permanent org_admin access. No public exploit code is identified at time of analysis.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.2% 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 capgo.app (npm package capgo ≤ 12.207.1) allows an authenticated org_member to promote an external account to org_admin or org_billing_admin by exploiting a missing role-rank comparison in the validateInvite() function of the invite-new-user Edge Function. The invitation-acceptance path compounds the issue by using the Supabase service-role key, which bypasses two dedicated database triggers designed to enforce privilege boundaries, resulting in full administrative control over the organization's apps, channels, members, and billing. No public exploit is identified at time of analysis; an upstream fix is available via PR #3096.

RemediationAI

Upgrade to the first capgo.app release that incorporates pull request #3096, which introduces a caller-rank comparison in validateInvite() before permitting any elevated-role invitation. An exact patched release version is not stated in available references beyond the PR, so operators should monitor the GitHub Security Advisory (https://github.com/Cap-go/capgo.app/security/advisories/GHSA-7g7p-fxx8-4wm8) and the VulnCheck advisory (https://www.vulncheck.com/advisories/capgo-app-through-12.207.1-privilege-escalation-via-invite-new-user-to-org) for a confirmed version tag. As an immediate compensating control, restrict the org.invite_user permission exclusively to fully trusted administrators - removing it from org_member and contractor-level roles - which eliminates the prerequisite needed to trigger the vulnerable endpoint. Additionally, audit all existing org_admin and org_billing_admin accounts for unexpected or recently added members that may have been created via this escalation path.

Affected VersionsENISA

capgo.app 0 ≤12.207.1

Affected Packages

euvd capgo_app no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

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

Technical ContextAI · show details

capgo.app is a Capacitor/Ionic live-update platform whose backend is implemented as Supabase Edge Functions (Deno/Node.js runtime). The vulnerable code resides in supabase/functions/_backend/private/invite_new_user_to_org.ts. The validateInvite() function enforces permission checks (e.g., org.invite_user for standard invitations, org.update_user_roles for org_super_admin-level ones) but never compares the inviter's own role rank against the role rank being requested - the root cause classified as CWE-269 (Improper Privilege Management). A second, compounding weakness exists in the invitation-acceptance flow: ensureOrgMembership in POST /private/accept_invitation applies the role binding using the Supabase service-role key, which operates outside row-level security and bypasses both the prevent_role_binding_priority_escalation and check_org_user_privileges database triggers that would otherwise reject the out-of-rank assignment. CPE: 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.6 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 8.1 HIGH

Requires org_member authentication (PR:L) over the network; attacker controls both accounts so no third-party interaction is needed; no availability impact.

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

DescriptionCVE.org

capgo.app (npm package capgo) through version 12.207.1 does not compare the caller's role rank against the requested role in the validateInvite() function of supabase/functions/_backend/private/invite_new_user_to_org.ts. The POST /private/invite_new_user_to_org endpoint only requires the org.update_user_roles permission for org_super_admin invitations, so an authenticated user holding only the org.invite_user permission (e.g., an org_member) can invite an external user as org_admin or org_billing_admin. When the invited account accepts the invitation via POST /private/accept_invitation, ensureOrgMembership creates the role binding using the Supabase service-role key, which bypasses the prevent_role_binding_priority_escalation and check_org_user_privileges database triggers. This allows privilege escalation resulting in full administrative control over the organization's apps, channels, members, and billing. The issue is addressed by pull request #3096, which compares the inviter's rank before permitting elevated invitations.

Technical POC Analysis

CWE-269 (Improper Privilege Management) - a missing authorization binding between the requested role and the caller's own role rank.

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 platform users face unauthorized privilege escalation risks, allowing team members to seize admin or billing administrator access over their organization. This creates direct threats to billing control, application deployment integrity, and organizational governance-enabling fraud, configuration tampering, and loss of operational oversight.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: audit and review all admin role promotions and pending invitations for suspicious patterns; restrict invitation privileges to org_admin accounts only; implement monitoring and alerting on admin and billing-admin role elevation events; disable or restrict capgo service-role key usage where possible until patch availability.

Threat Intelligence Overview

EPSS Score
0.2%
Top 87% exploitable
Prevalence
Low
niche Capacitor/Ionic live-update SaaS, limited enterprise footprint
Data Quality
4 sources
Confidence: Medium

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.2%
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
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

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

Attack Technique

Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.

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-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

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