Description
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.
Published: 2026-09-10
Score: 9.3 Critical
EPSS: n/a
KEV: No
Impact: Authentication Bypass / Unauthorized Access
Action: Apply Workaround
AI Analysis

Impact

Capgo does not enforce write restrictions on the public.sso_providers table exposed via Supabase PostgREST. An attacker with a regular Capgo full API key can insert a record marked "active" and "enforce_sso", bypassing all backend SSO provisioning controls, including plan checks, Supabase function calls, DNS TXT verification, status transitions, and the issuance of a trusted provider ID. The forged entry is then trusted by the SSO discovery logic, and unauthenticated checks report the domain as having active SSO even though it was never verified. This permits the attacker to enforce SSO for arbitrary domains, disrupting login flows and allowing unauthorized access.

Affected Systems

All versions of Capgo (capgo.app) are affected. The flaw lies in the public PostgREST endpoint that exposes the sso_providers table. No patch is available at present.

Risk and Exploitability

The CVSS score of 9.3 indicates critical risk. EPSS is not available, and the vulnerability is not listed in CISA KEV. The likely attack vector is an attacker who already possesses a regular Capgo full API key; with that key the attacker can directly write to the exposed table via PostgREST. Because no vendor mitigation exists yet, users that store or expose full API keys remain at high risk. The vulnerability enables bypassing authentication controls and enforcing SSO on arbitrary domains, potentially granting unauthorized login and service disruption.

Generated by OpenCVE AI on September 10, 2026 at 15:06 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Enforce row‑level security on the public.sso_providers table to deny direct POST/PUT/DELETE operations.
  • Revoke or rotate ordinary Capgo full API keys and apply the principle of least privilege.
  • Implement monitoring and alerts for unexpected inserts into the sso_providers table and verify the status transition logic.

Generated by OpenCVE AI on September 10, 2026 at 15:06 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 10 Sep 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Thu, 10 Sep 2026 13:30:00 +0000

Type Values Removed Values Added
Description 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.
Title Capgo SSO Provider Authentication Bypass via PostgREST Direct Write
Weaknesses CWE-284
References
Metrics cvssV3_1

{'score': 9.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:H/A:L'}

cvssV4_0

{'score': 9.3, 'vector': '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'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-09-10T14:58:00.982Z

Reserved: 2026-09-10T11:23:56.027Z

Link: CVE-2026-88864

cve-icon Vulnrichment

Updated: 2026-09-10T14:57:43.774Z

cve-icon NVD

Status : Deferred

Published: 2026-09-10T14:17:12.187

Modified: 2026-09-10T15:17:57.103

Link: CVE-2026-88864

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-10T15:15:07Z

Weaknesses