Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain a valid Capgo API key value
-
DeliveryReach /rest/v1/rpc/find_apikey_by_value unauthenticated
-
ExploitInvoke SECURITY DEFINER RPC as anon
-
ExecutionReceive key metadata (user_id, mode, org, expiry)
-
ImpactScope targeted follow-on attack
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK
2 techniques across 2 tactics: Collection, Discovery 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 Capgo PostgREST endpoint /rest/v1/rpc/find_apikey_by_value to be network-reachable and the find_apikey_by_value function to retain its default SECURITY DEFINER definition with EXECUTE granted to the anon role (the vulnerable state in versions before 12.128.2). Per the CVSS vector no authentication or user interaction is needed (PR:N/UI:N). The key practical limiter is that the attacker must supply a valid API key value to obtain metadata for it - the function returns data keyed on a known value rather than enumerating all keys - so impact hinges on the attacker first acquiring or guessing a legitimate key; deployments already upgraded to 12.128.2, or that have revoked anon EXECUTE on the function, are not exploitable. |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H) reflects a straightforward, network-reachable, unauthenticated call with high confidentiality impact and no integrity or availability effect, yielding a High score of 8.7. A meaningful real-world limiter that the raw score understates is that the function requires the attacker to already supply a valid key value to return metadata for it, so this is more a metadata-amplification/confirmation primitive than a bulk-dump of all keys - useful once a key is guessed, leaked, or otherwise obtained. There is no EPSS score, no SSVC decision, and no KEV or POC signal in the provided data, so exploitation probability cannot be quantified; the absence of exploitation signals means priority should be driven by whether an organization actually runs Capgo self-hosted with the vulnerable function exposed. Net: a genuine unauthenticated exposure worth patching promptly for Capgo operators, but not a mass-exploitation event on current evidence. |
| Exploit ScenarioDerived | An attacker who has obtained a Capgo API key value - through a leaked mobile app bundle, log exposure, or a prior breach - sends an unauthenticated POST to /rest/v1/rpc/find_apikey_by_value with that value and receives the key's user_id, mode, org scope, and expiration. This confirms the key is valid and reveals which organization and privilege mode it grants, letting the attacker prioritize and target follow-on abuse. No public exploit identified at time of analysis, but the call is a trivial single HTTP request given the low attack complexity. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 11, 2026
Unauthenticated API key metadata disclosure in Capgo before 12.128.2 stems from the find_apikey_by_value PostgreSQL function being marked SECURITY DEFINER and granted to the anon role, allowing anyone to call it through the PostgREST endpoint /rest/v1/rpc/find_apikey_by_value. When supplied a valid key value, an attacker retrieves sensitive metadata about that key - user_id, mode, organization scoping, and expiration details - bypassing normal row-level security. Reported by VulnCheck with CVSS 4.0 8.7 (High); no public exploit identified at time of analysis and it is not listed in CISA KEV.
RemediationAI
Vendor-released patch: 12.128.2 - upgrade Capgo to 12.128.2 or later, which corrects the exposure of the find_apikey_by_value RPC. As a compensating control before or instead of upgrading, revoke EXECUTE on find_apikey_by_value from the anon (and where appropriate authenticated) role in PostgreSQL, or drop the SECURITY DEFINER attribute so the function runs with caller privileges and RLS applies; the trade-off is that any application flow legitimately relying on anonymous key lookups will break until refactored to a server-side authenticated path. Additionally, restrict network access to the PostgREST /rest/v1/rpc/ endpoint at the gateway/reverse proxy and rotate any API keys whose metadata may have been queried. Follow the remediation guidance in GHSA-2xjq-h43m-592f (https://github.com/Cap-go/capgo/security/advisories/GHSA-2xjq-h43m-592f) and the VulnCheck advisory (https://www.vulncheck.com/advisories/capgo-unauthenticated-api-key-metadata-disclosure-via-security-definer-rpc-function).
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Capgo is a live/over-the-air update service for Capacitor mobile apps that uses a Supabase/PostgREST backend, exposing PostgreSQL functions as REST RPC endpoints. In this architecture, functions declared SECURITY DEFINER execute with the privileges of the function owner rather than the caller, deliberately bypassing Row-Level Security; when such a function is also GRANTed EXECUTE to the anon (unauthenticated) role, any internet client can invoke privileged database logic. Here find_apikey_by_value performs a lookup against the api_keys table and returns key metadata, so the SECURITY DEFINER context leaks data that RLS would otherwise protect. This maps to CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor): the root cause is an over-privileged, over-exposed database function, not memory corruption or injection.
Know when Capgo 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:N/VA:N/SC:N/SI:N/SA:N
Unauthenticated network RPC call with low complexity (PR:N/UI:N/AC:L) discloses sensitive key metadata (C:H) with no integrity or availability impact 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 the find_apikey_by_value PostgreSQL function marked SECURITY DEFINER and executable by the anon role. Unauthenticated attackers can call this function via the /rest/v1/rpc/find_apikey_by_value endpoint to retrieve sensitive API key metadata including user_id, mode, org scoping, and expiration details when supplied a valid key value.
Executive ViewAI
Capgo versions before 12.128.2 expose sensitive API key metadata (user IDs, organization scope, expiration dates) to unauthenticated attackers via a publicly accessible API endpoint. This enables reconnaissance for targeted credential attacks and account compromise without requiring authentication. Organizations using affected Capgo deployments face immediate risk of API key enumeration and downstream lateral movement.
No vendor-released patch identified at time of analysis. Interim mitigations: restrict network access to PostgREST endpoint (/rest/v1/rpc/) via WAF or firewall IP allowlist; disable the endpoint entirely if not required for production workloads; rotate API keys and implement enhanced monitoring for suspicious authentication attempts; consider temporary relocation to an alternative deployment pending patch release.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Cross-domain SSO account takeover in Capgo before 12.128.2 allows an attacker with enterprise org admin access and a mal
Authentication bypass in Capgo before 12.128.2 lets remote unauthenticated attackers mint arbitrary API keys by tamperin
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
EUVD-2026-43171
GHSA-25wv-52pf-rghh
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB