Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain ordinary Capgo full API key
-
DeliveryDirect PostgREST INSERT into public.sso_providers
-
ExploitSet status=active, enforce_sso=true for target domain
-
ExecutionForged row trusted by SSO discovery
-
Persistcheck-domain asserts enforce_sso for unverified domain
-
ImpactDisrupt/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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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
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).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
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
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.
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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Affected Products (CPE)CVE.org
Account pre-registration hijack in Capgo before 12.128.2 lets a remote unauthenticated attacker claim an account under a
Authentication bypass in Capgo prior to version 12.128.2 lets attackers defeat email-based OTP verification by tampering
Authorization bypass in Capgo (capgo.app), a live-update/OTA platform for Capacitor mobile apps, allows a de-provisioned
Cross-tenant data poisoning in Supabase Capgo before 12.128.2 allows remote unauthenticated attackers to corrupt billing
Unauthenticated denial of service in Cap-go capgo (capgo-backend) before 12.128.12 allows remote attackers to exhaust Po
Unauthenticated retrieval of deleted over-the-air update bundles from capgo.app through version 12.129.0 is possible via
Capgo's direct exposure of the public.org_users table through Supabase PostgREST lets an authenticated user who already
Authenticated principals who hold an app-scoped upload/write/all API key with upload+ rights - or any user granted write
Cross-tenant metadata modification in Capgo before 12.244.1 allows an authenticated attacker to alter image object metad
Privilege escalation in the Capgo (capgo.app) backend through version 12.242.4 allows an authenticated API key holder to
Privilege escalation in Capgo (capgo.app) before 12.267.1 allows a principal holding the apikey_manager role to rotate a
Authenticated administrators on Capgo (capgo.app) can grant channel-scoped permissions to non-member users because the p
EUVD-2026-75414
GHSA-g597-pqh2-2fw7
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB