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 calls using a publicly distributed key (AV:N/AC:L/PR:N/UI:N) leak organization existence and billing status only, so C:H with I:N/A:N and no scope change.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Capgo before 12.128.2 contains an information disclosure vulnerability in Supabase PostgREST RPC endpoints is_trial_org and is_paying_org that allows unauthenticated attackers to enumerate organizations and disclose billing status using the public sb_publishable key. Attackers can invoke these endpoints to determine organization existence via distinguishable return values and identify paying customers for targeted profiling.
AnalysisAI
Unauthenticated information disclosure in Capgo before 12.128.2 lets remote attackers enumerate organizations and reveal billing status by invoking the Supabase PostgREST RPC endpoints is_trial_org and is_paying_org with the publicly distributed sb_publishable key. The flaw is reachable directly over the network without credentials and produces distinguishable responses that identify paying customers, enabling targeted profiling; no public exploit identified at time of analysis.
Technical ContextAI
Capgo is a live-update / over-the-air delivery service for Capacitor mobile apps that uses Supabase (PostgreSQL + PostgREST) as its backend. PostgREST exposes database functions as JSON-RPC endpoints, and Supabase distinguishes between a publishable (anon) key embedded in client apps and a service key kept server-side. The vulnerability is rooted in CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor): the SQL functions is_trial_org and is_paying_org were callable by the anon role and returned values that varied with the existence and billing posture of the queried organization, turning a billing-state helper into an oracle. Because the sb_publishable key is, by design, shipped in client applications, any attacker who extracts it from the mobile/web bundle gains the same access as a legitimate end user - i.e., none of the row-level-security or function-grant assumptions stop unauthenticated probing.
RemediationAI
Upgrade Capgo to 12.128.2 or later, which per the GHSA-mh5p-rrhp-442q advisory restricts or removes anon access to the is_trial_org and is_paying_org RPCs (Vendor-released patch: 12.128.2). Operators who cannot upgrade immediately should revoke EXECUTE on these two functions from the anon role in Supabase (e.g. REVOKE EXECUTE ON FUNCTION public.is_trial_org, public.is_paying_org FROM anon, authenticated) and, if the functions are still required by the app, move the calls behind an authenticated edge function or service-role proxy - the trade-off is that any in-app feature that depended on a pre-login billing check will need to be refactored. Rotating the sb_publishable key is not an effective mitigation on its own because publishable keys are designed to be public; combine the upgrade or REVOKE with PostgREST request-rate limiting and review the Supabase logs for prior enumeration patterns against these RPC paths. Follow the advisories at https://github.com/Cap-go/capgo/security/advisories/GHSA-mh5p-rrhp-442q and https://www.vulncheck.com/advisories/capgo-unauthenticated-organization-enumeration-and-billing-status-disclosure-via-supabase-rpc.
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
Unauthenticated information disclosure in Capgo before 12.128.2 lets remote attackers read organization RBAC role bindin
Cross-tenant authorization bypass in Capgo before 12.128.2 lets authenticated users impersonate another tenant's limited
Same weakness CWE-200 – Information Exposure
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-38100
GHSA-cmgw-4g6h-mpvm