Skip to main content

Capgo EUVDEUVD-2026-38751

| CVE-2026-56337 MEDIUM
Information Exposure (CWE-200)
2026-06-24 VulnCheck
6.9
CVSS 4.0 · Vendor: VulnCheck
Share

Severity by source

Vendor (VulnCheck) PRIMARY
6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/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
vuln.today AI
5.3 MEDIUM

Network-accessible unauthenticated endpoint with no complexity; only limited confidentiality impact (app ID existence), no integrity or availability impact, no scope change.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

2
Patch available
Jun 24, 2026 - 13:01 EUVD
Analysis Generated
Jun 24, 2026 - 12:23 vuln.today

DescriptionCVE.org

Capgo before 12.128.2 contains an information disclosure vulnerability in the public.exist_app_v2 RPC function that allows unauthenticated attackers to enumerate app_ids by calling POST /rest/v1/rpc/exist_app_v2 with arbitrary appid parameters. Remote attackers can exploit this SECURITY DEFINER function to determine whether specific app_ids exist in the public.apps table, enabling cross-tenant app enumeration and privacy violations.

AnalysisAI

Unauthenticated app enumeration in Capgo before 12.128.2 allows remote attackers to determine whether specific app_ids exist across all tenants by querying the exposed exist_app_v2 RPC endpoint without credentials. The root cause is a PostgreSQL SECURITY DEFINER function that executes with elevated owner privileges, bypassing row-level security policies and enabling cross-tenant information disclosure via the PostgREST API at POST /rest/v1/rpc/exist_app_v2. No active exploitation has been confirmed (not in CISA KEV) and no public exploit code is identified at time of analysis, though the attack requires no authentication and trivial HTTP tooling.

Technical ContextAI

Capgo is a live-update platform for Capacitor mobile apps, built on a Supabase backend which exposes PostgreSQL functions via a PostgREST REST API. The vulnerable function, public.exist_app_v2, is declared as SECURITY DEFINER - a PostgreSQL mechanism that causes the function to execute with the privileges of its owning database role rather than the calling role. This design pattern, when applied to public-facing RPC endpoints, effectively nullifies row-level security (RLS) policies that would otherwise restrict cross-tenant data access, because RLS is enforced based on the session role, not the function owner. The result is that an unauthenticated HTTP client can POST an arbitrary appid to /rest/v1/rpc/exist_app_v2 and receive a boolean signal revealing whether that app ID exists in the public.apps table. The root cause class is CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor), specifically the misconfigured privilege escalation path within a shared multi-tenant data model. The CPE cpe:2.3:a:capgo:capgo:*:*:*:*:*:*:*:* covers all versions of the Capgo application prior to the fix.

RemediationAI

Upgrade Capgo to version 12.128.2 or later, as documented in the vendor security advisory at https://github.com/Cap-go/capgo/security/advisories/GHSA-wjqr-gmx8-jj56. For self-hosted deployments that cannot immediately upgrade, the most targeted compensating control is to revoke public (unauthenticated) access to the /rest/v1/rpc/exist_app_v2 endpoint at the API gateway or reverse proxy layer - this has the trade-off of breaking any legitimate unauthenticated callers of the function, which should be none in a correctly designed multi-tenant system. Alternatively, the SECURITY DEFINER attribute can be removed from the function and replaced with SECURITY INVOKER so that caller-level RLS policies are enforced; this requires testing to ensure the function still operates correctly for authenticated callers. Restricting the PostgREST anon role from executing the exist_app_v2 function via a REVOKE EXECUTE statement is also a precise mitigation with minimal operational impact. The VulnCheck advisory is available at https://www.vulncheck.com/advisories/capgo-information-disclosure-via-unauthenticated-rpc-function-exist-app-v2 for additional context.

More in Capgo

View all
CVE-2026-56237 CRITICAL
9.3 Jun 24

Authentication bypass in Capgo before 12.128.2 lets remote unauthenticated attackers mint arbitrary API keys by tamperin

CVE-2026-56223 CRITICAL
9.3 Jun 24

Cross-domain SSO account takeover in Capgo before 12.128.2 allows an attacker with enterprise org admin access and a mal

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-56324 HIGH
8.8 Jun 22

Rate-limit bypass in Capgo versions prior to 12.128.2 lets remote unauthenticated attackers flood the channel_self endpo

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-56233 HIGH
8.7 Jun 30

Server-side privilege escalation in Capgo before 12.128.2 lets authenticated users holding build permissions abuse a pat

CVE-2026-56323 HIGH
8.7 Jun 22

Unauthenticated information disclosure in Capgo before 12.128.2 lets remote attackers query the /functions/v1/channel_se

CVE-2026-56305 HIGH
8.7 Jul 10

Account takeover in Capgo before 12.128.2 stems from a password-change endpoint that omits current-password validation (

CVE-2026-56300 HIGH
8.7 Jun 30

Information disclosure in Capgo (Capacitor live-update/OTA platform) before 12.128.2 lets unauthenticated callers abuse

CVE-2026-56219 HIGH
8.7 Jun 30

Unauthenticated information disclosure in Capgo before 12.128.2 lets remote attackers read organization RBAC role bindin

CVE-2026-56230 HIGH
8.7 Jun 30

Cross-tenant authorization bypass in Capgo before 12.128.2 lets authenticated users impersonate another tenant's limited

Share

EUVD-2026-38751 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy