Skip to main content

Capgo EUVDEUVD-2026-75414

| CVE-2026-88864 CRITICAL
Improper Access Control (CWE-284)
2026-09-10 VulnCheck GHSA-g597-pqh2-2fw7
9.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Obtain ordinary Capgo full API key
  2. Delivery
    Direct PostgREST INSERT into public.sso_providers
  3. Exploit
    Set status=active, enforce_sso=true for target domain
  4. Execution
    Forged row trusted by SSO discovery
  5. Persist
    check-domain asserts enforce_sso for unverified domain
  6. Impact
    Disrupt/redirect victim logins

Vulnerability Assessment

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

1 technique across 1 tactic: Defense Evasion

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 ordinary Capgo full API key (any registered account) and requires that the public.sso_providers table remain directly writable through Supabase PostgREST - the default condition described, since no authorization restricts writes to the backend route. The attacker then inserts a forged provider row (status='active', enforce_sso=true) for a chosen domain with no need for Enterprise entitlement, Supabase Management API access, DNS TXT ownership proof, or the normal pending→verified→active transition. The limiting factor is the API-key requirement (so this is authenticated, not anonymous, despite the published PR:N); once the row exists, the downstream /private/sso/check-domain effect is observable unauthenticated.

Impact

The CVSS 4.0 base score of 9.3 is driven by AV:N/AC:L/PR:N with high VC/VI/VA, but the description makes clear the attacker must already hold a valid Capgo full API key, so PR:N overstates the precondition - this is authenticated abuse (realistically PR:L), not fully anonymous exploitation. The true impact is to integrity (forging trusted SSO configuration) and availability (asserting enforce_sso on arbitrary domains breaks normal login for those users); confidentiality impact is marginal, limited to a boolean leaked by check-domain. No EPSS score, KEV listing, or public PoC is provided, so there is no evidence of active exploitation, though VulnCheck's advisory documents the exact method and the write is trivially automatable once a key is obtained. Net: a genuine high-priority authorization flaw for any Capgo-dependent operator - even a mid-sized operator in olsztyn should treat a login-disruption primitive against unverified domains as urgent - but defenders should weight it by the API-key prerequisite and the absence of confirmed in-the-wild activity rather than the raw 9.3.

Exploit ScenarioDerived

An attacker registers a normal Capgo account, obtains a full API key, and issues a direct PostgREST INSERT into public.sso_providers for a victim's corporate domain with status='active' and enforce_sso=true. The unauthenticated /private/sso/check-domain preflight then returns {"has_sso": true, "enforce_sso": true} for that domain, redirecting or blocking legitimate users into an SSO flow that was never provisioned and disrupting their logins. The VulnCheck advisory documents this method, though no separate public exploit tool is cited.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
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

Improper access control in Capgo (capgo.app) lets any holder of an ordinary full API key forge a trusted SSO provider by writing directly to the public.sso_providers table exposed via Supabase PostgREST, setting status='active' and enforce_sso=true without passing the backend provisioning route. This sidesteps the Enterprise-plan gate, Supabase Management API provider creation, DNS TXT domain-ownership verification, and the pending_verification→verified→active workflow, so an attacker can assert SSO enforcement for arbitrary unverified domains and disrupt normal login. All versions are affected, no patch was available at advisory time, and there is no public exploit identified at time of analysis beyond the VulnCheck write-up.

RemediationAI

No vendor-released patch identified at time of analysis, so the fix must come from tightening data-layer authorization: revoke INSERT/UPDATE/DELETE on public.sso_providers from the anon and authenticated PostgREST roles and enforce Row Level Security that permits writes only from the privileged service-role used by the backend provisioning function, forcing all provider creation back through supabase/functions/_backend/private/sso/providers.ts (trade-off: legitimate provider operations must all flow through that route, which is the intended design anyway). As a compensating control, have SSO discovery and the /private/sso/check-domain endpoint re-validate that a provider row carries a Supabase-Auth-issued trusted provider ID and a completed DNS TXT verification before honoring enforce_sso, rather than trusting status alone (trade-off: added verification latency on the login preflight). Monitor the sso_providers table for rows created outside the backend route and audit for any unexpected active/enforced entries. Track GHSA-xg7v-83qv-qfff for an official patch and apply it when released.

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 service (with a Capacitor live-update SDK) whose backend runs on Supabase, which auto-exposes Postgres tables through the PostgREST REST API. The intended design routes SSO provider creation through supabase/functions/_backend/private/sso/providers.ts, which enforces plan entitlement, calls the Supabase Management API to create a real provider, verifies domain ownership via DNS TXT, and only then transitions a row to 'active' with a trusted provider ID issued by Supabase Auth. The root cause (CWE-284, Improper Access Control) is that the public.sso_providers table permits direct INSERT/write from ordinary API-key callers - Row Level Security / table privileges do not restrict writes to the privileged backend path - so the downstream discovery and enforcement logic (including the unauthenticated /private/sso/check-domain preflight) blindly trusts rows that never underwent verification.

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

A valid full API key is required so PR:L not PR:N; impact is forged trusted config (I:H) and login disruption for arbitrary domains (A:H), with negligible confidentiality (C:N).

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/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
None
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) fails to restrict direct write access to the public.sso_providers table exposed through Supabase PostgREST. A holder of an ordinary Capgo full API key can insert a row with status='active' and enforce_sso=true, bypassing the intended backend SSO provisioning route (supabase/functions/_backend/private/sso/providers.ts) and its controls: the Enterprise plan requirement, SSO provider creation via the Supabase Management API, DNS TXT domain-ownership verification, the pending_verification → verified → active status transition, and issuance of a trusted provider ID by Supabase Auth. The forged row is trusted by SSO discovery and enforcement logic, including the unauthenticated login preflight endpoint /private/sso/check-domain, which then reports {"has_sso": true, "enforce_sso": true} for domains that were never verified, allowing attacker-controlled SSO enforcement to be asserted for arbitrary domains and disrupting normal login. All versions are affected; at the time of the advisory no patch was available.

Technical POC Analysis

CWE-284: Improper Access Control.

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's SSO provider configuration is exposed to direct API manipulation, allowing any API key holder to enforce single sign-on on arbitrary unverified domains-bypassing enterprise provisioning controls and authentication policies. No vendor patch exists. Organizations using Capgo face immediate risk of login disruption and unauthorized identity control by internal or compromised API key holders.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) restrict new API key issuance and audit existing key holders; (2) enforce IP allowlisting on all API key requests; (3) enable comprehensive audit logging for all public.sso_providers table modifications; (4) establish a manual weekly review of active SSO providers against an approved domain allowlist; (5) require multi-factor authentication on administrative Capgo account access.

Threat Intelligence Overview

EPSS Score
0.3%
Top 82% exploitable
Prevalence
Low
niche Capacitor live-update/OTA developer service, limited production footprint
Social Media
1
Sightings
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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
CRITICAL severity
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
Very High
Technical Impact
Total

Priority Score

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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

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