Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:H/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
Network-reachable PostgREST API, low complexity, authenticated low-privileged user (PR:L), no UI; integrity High due to ownership tampering, confidentiality Low, availability unaffected.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Capgo before 12.128.2 allows direct patching of public.apps.owner_org through PostgREST, bypassing the transfer_app() workflow and creating split-brain ownership. Attackers can directly update apps.owner_org while leaving app_versions.owner_org unchanged, enabling old-org keys to retain access to version data while new-org keys control the app record.
AnalysisAI
Authorization bypass in Capgo before 12.128.2 allows authenticated users to directly modify the public.apps.owner_org column via PostgREST, circumventing the intended transfer_app() workflow. Successful exploitation creates a split-brain ownership state where apps.owner_org and app_versions.owner_org diverge, letting the original organization's API keys retain access to version data while the new owning organization controls the app record. No public exploit identified at time of analysis.
Technical ContextAI
Capgo is a self-hostable live-update / OTA delivery platform for Capacitor mobile apps that exposes its PostgreSQL schema through PostgREST, an auto-generated REST API for Postgres. The vulnerability is rooted in CWE-284 (Improper Access Control): row-level security or column-level permissions on the public.apps table allowed direct PATCH operations against owner_org instead of forcing callers through the transfer_app() stored procedure, which is the only path that atomically updates both apps.owner_org and the dependent app_versions.owner_org. Because PostgREST faithfully exposes whatever the underlying role is allowed to do, a permission gap at the database layer becomes an API-level authorization bypass.
RemediationAI
Vendor-released patch: upgrade Capgo to 12.128.2 or later, which tightens PostgREST/PostgreSQL permissions so that public.apps.owner_org can no longer be PATCHed directly and ownership transfers must flow through the transfer_app() function; see GHSA-v9jp-r5wh-qqcp for details. If immediate upgrade is not possible, revoke UPDATE privilege on the owner_org column (or the apps table) from the authenticated PostgREST role and require all transfers via the transfer_app() RPC, accepting that any client tooling that PATCHes apps rows will break until updated, and audit current rows for divergence between apps.owner_org and app_versions.owner_org to detect prior abuse.
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-284 – Improper Access Control
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-38744