Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Unauthenticated network RPC call with a public key (AV:N/AC:L/PR:N/UI:N); discloses membership and emails only, so C:H and I:A:N, scope unchanged.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Capgo before 12.128.2 contains a NULL-auth bypass vulnerability in the public.get_org_user_access_rbac function that allows unauthenticated attackers to retrieve RBAC role bindings and member email addresses. Attackers can exploit improper NULL comparison in the authorization gate to disclose organization membership, roles, and email addresses via the PostgREST RPC endpoint using only a public API key.
AnalysisAI
Unauthenticated information disclosure in Capgo before 12.128.2 lets remote attackers read organization RBAC role bindings and member email addresses through the public.get_org_user_access_rbac PostgREST RPC endpoint. An improper NULL comparison in the authorization gate fails open, so anyone holding only a public API key can enumerate org membership, assigned roles, and emails. No public exploit has been identified at time of analysis, and the flaw discloses data only (no integrity or availability impact), but the CVSS 4.0 score of 8.7 reflects easy, unauthenticated, network-reachable confidentiality loss.
Technical ContextAI
Capgo is a live/over-the-air update service for Capacitor (Ionic) mobile applications, backed by a PostgreSQL database exposed through PostgREST, which automatically publishes database functions as HTTP RPC endpoints. The vulnerable public.get_org_user_access_rbac function implements an authorization gate that is reachable via the PostgREST RPC interface using a public (anon) API key. The root cause is CWE-287 (Improper Authentication): the gate uses a flawed NULL comparison - in SQL any comparison against NULL yields NULL rather than TRUE/FALSE, so an unauthenticated session (where the caller/user identifier is NULL) is not correctly rejected and the check effectively fails open. As a result the function returns RBAC role bindings, organization membership, and member email addresses to callers who should have been denied. The CPE cpe:2.3:a:capgo:capgo:*:*:*:*:*:*:*:* identifies all Capgo versions prior to the fix as affected.
RemediationAI
Vendor-released patch: upgrade Capgo to version 12.128.2 or later, which corrects the NULL comparison in the public.get_org_user_access_rbac authorization gate; follow the fix details in GitHub advisory GHSA-vvm7-xhcj-m94h (https://github.com/Cap-go/capgo/security/advisories/GHSA-vvm7-xhcj-m94h) and the VulnCheck advisory (https://www.vulncheck.com/advisories/capgo-unauthenticated-rbac-bindings-and-email-disclosure-via-get-org-user-access-rbac-null-auth-bypass). For self-hosted deployments that cannot upgrade immediately, revoke or restrict the function's execution grant from the PostgREST anon/public role (REVOKE EXECUTE on public.get_org_user_access_rbac from the anon role) so it is no longer callable with a public API key - the trade-off is that any legitimate anonymous use of that RPC will break until the patch is applied. Where feasible, also fix the underlying gate to use IS DISTINCT FROM / explicit NULL handling so the check fails closed, and rotate or scope down public API keys; restricting network access to the PostgREST endpoint provides additional but partial mitigation since the public key path remains the core issue.
Authentication bypass in Capgo before 12.128.2 lets remote unauthenticated attackers mint arbitrary API keys by tamperin
Cross-domain SSO account takeover in Capgo before 12.128.2 allows an attacker with enterprise org admin access and a mal
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
Rate-limit bypass in Capgo versions prior to 12.128.2 lets remote unauthenticated attackers flood the channel_self endpo
Cross-tenant data poisoning in Supabase Capgo before 12.128.2 allows remote unauthenticated attackers to corrupt billing
Server-side privilege escalation in Capgo before 12.128.2 lets authenticated users holding build permissions abuse a pat
Unauthenticated information disclosure in Capgo before 12.128.2 lets remote attackers query the /functions/v1/channel_se
Account takeover in Capgo before 12.128.2 stems from a password-change endpoint that omits current-password validation (
Information disclosure in Capgo (Capacitor live-update/OTA platform) before 12.128.2 lets unauthenticated callers abuse
Cross-tenant authorization bypass in Capgo before 12.128.2 lets authenticated users impersonate another tenant's limited
Privilege escalation in Capgo before 12.128.2 lets an authenticated org admin assign org-scoped RBAC roles at the narrow
Same weakness CWE-287 – Improper Authentication
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-40627
GHSA-f484-qgwx-c6gr