HIGH 7.1

CVE-2026-56257: Capgo Split-Brain Ownership Vulnerability – Authorization Bypass

Capgo versions before 12.128.2 contain a critical authorization flaw that allows authenticated users to directly modify app ownership records through PostgREST without using the proper transfer workflow. This creates a dangerous split-brain scenario where an application's metadata appears owned by one organization, but version data remains accessible to the original organization's API keys. An attacker with valid credentials can exploit this to maintain persistent unauthorized access to application versions even after nominally transferring the app to a different organization.

Source data · NVD / CISA · public domain

CVSS
3.1 · 7.1 HIGH · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:N
Weaknesses (CWE)
CWE-284
Affected products
0 configuration(s)
Published / Modified
2026-06-24 / 2026-06-25

NVD description (verbatim)

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.

3 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

The vulnerability exists in Capgo's PostgREST interface, which exposes the public.apps.owner_org column without sufficient authorization checks. Attackers can directly UPDATE the owner_org field, bypassing the transfer_app() function that normally handles ownership changes. This causes inconsistency: apps.owner_org reflects the new owner, but app_versions.owner_org remains unchanged. Since version access control likely depends on matching owner_org values, the old organization's service accounts retain read/write access to version records through their existing credentials, while the new organization gains control of the app metadata. This creates a privilege escalation and data retention mechanism that circumvents intended access revocation.

Business impact

Organizations using Capgo for mobile app distribution face loss of access control over their applications and versions. A disgruntled employee, compromised service account, or targeted attacker could transfer ownership of critical apps while maintaining covert access to version data and release pipelines. This enables supply-chain tampering (malicious app updates), data exfiltration, and denial of legitimate updates. Compliance frameworks (SOC 2, ISO 27001) require documented ownership and access control—split-brain scenarios create audit failures and evidence destruction concerns. Multi-tenant SaaS customers are at heightened risk if a single compromised account can affect multiple apps.

Affected systems

Capgo versions prior to 12.128.2 are affected. The vulnerability requires network access to the PostgREST endpoint and valid authentication credentials (PR:L in CVSS vector). Self-hosted and SaaS deployments of Capgo are in scope. Organizations using Capgo as their primary mobile app distribution and versioning platform are directly impacted.

Exploitability

Exploitation requires valid user or service account credentials—no unauthenticated bypass is present. Once authenticated, the attack is straightforward: a single direct SQL UPDATE via PostgREST modifies owner_org without triggering application logic validation. No user interaction or special conditions are required (AC:L, UI:N). An attacker can execute this attack repeatedly and against multiple apps in seconds. The barrier to exploitation is low for insiders or accounts with compromised credentials; external attackers would need to obtain valid credentials through phishing or credential stuffing.

Remediation

Upgrade Capgo to version 12.128.2 or later. This patch version is expected to implement proper authorization checks that either (1) remove direct PostgREST write access to apps.owner_org, or (2) enforce application-layer validation that ensures app_versions.owner_org is atomically updated in sync with apps.owner_org. Verify the patch details against the vendor's release notes. Organizations should audit recent app ownership changes to detect unauthorized transfers and ensure that old organization API keys are revoked if ownership was modified.

Patch guidance

Deploy Capgo 12.128.2 immediately in development and staging environments to validate compatibility and confirm the fix resolves the split-brain issue. Test that ownership transfers now correctly update both apps.owner_org and app_versions.owner_org, and that old organization credentials no longer retain access to transferred apps' versions. Perform a rolling upgrade to production to avoid service disruption. After patching, review audit logs for any ownership changes that occurred between the vulnerability's public disclosure (2026-06-24) and your patch date to identify potential exploitation.

Detection guidance

Monitor PostgREST request logs for direct UPDATE statements against the apps table, especially those modifying owner_org without corresponding app_versions updates. Alert on sudden ownership changes not preceded by authenticated transfer_app() function calls. Review access logs to detect old organization API keys accessing app_versions after an app transfer event. Implement database-level audit triggers on apps.owner_org changes to capture the source user and timestamp. Query your app inventory for rows where apps.owner_org differs from the owner_org of associated app_versions—this indicates a split-brain state.

Why prioritize this

This vulnerability scores HIGH (7.1 CVSS) due to its high integrity impact and ease of exploitation by authenticated users. While it requires prior credential compromise or insider access, the consequence is severe: persistent, covert access to application distribution pipelines, which could enable supply-chain attacks affecting end users. The ability to silently transfer ownership while retaining access makes detection and forensic investigation difficult. Organizations with sensitive or widely-distributed apps should treat this as a priority patch.

Risk score, explained

The CVSS 3.1 score of 7.1 reflects: Network attack vector (AV:N) — exploitable over the network via PostgREST; Low attack complexity (AC:L) — direct database UPDATE is trivial; Low privilege required (PR:L) — needs valid credentials but not administrator role; No user interaction (UI:N) — fully automated attack; Unchanged scope (S:U) — impacts only the Capgo application; Low confidentiality impact (C:L) — attacker can read version metadata; High integrity impact (I:H) — attacker can modify ownership and retain access; No availability impact (A:N) — the app and versions remain functional. The high integrity rating and low barrier to exploitation drive the HIGH severity classification.

Frequently asked questions

Can an unauthenticated attacker exploit this vulnerability?

No. The vulnerability requires valid Capgo user or service account credentials (PR:L in the CVSS vector). However, if a credential is compromised through phishing, credential stuffing, or insider threat, the attacker can immediately exploit it without additional barriers.

What is a 'split-brain' ownership state, and why is it dangerous?

Split-brain occurs when apps.owner_org and app_versions.owner_org reference different organizations. This causes inconsistency: the new owner controls the app record, but the old owner's API keys still authenticate against version data. An attacker can transfer an app to themselves, and the original owner cannot revoke access because their API keys' access control is still based on the old (unchanged) app_versions.owner_org value. This breaks the assumption that transferring ownership revokes all prior access.

How can we detect if our Capgo instance was exploited?

Search your database or audit logs for app_versions where the owner_org value differs from the apps.owner_org of the parent application. Also check for UPDATE operations on the apps table that were not accompanied by corresponding updates to app_versions. Review authentication logs for access patterns: if old-organization credentials accessed version data after an app transfer, that is a strong exploitation signal.

Is there a workaround if we cannot patch immediately?

Consider restricting PostgREST access at the network level (firewall, WAF) to trusted internal networks, and disable direct PostgREST write access to the apps table if your application workflows do not depend on it. However, these are temporary mitigations; patching to 12.128.2 is the proper fix. Engage Capgo support to understand your deployment's specific risk exposure.

This analysis is provided for informational purposes and reflects the vulnerability details available as of 2026-06-25. CVSS scores, severity ratings, and patched versions are sourced from the official CVE record and vendor advisories; verify all version numbers and patch availability against Capgo's official release notes and security announcements. This document does not constitute security advice or a guarantee of remediation effectiveness. Organizations must conduct their own risk assessments and coordinate patches with their change management and testing procedures. If you deploy mitigations or patches based on this analysis, monitor production systems for any unexpected behavior and maintain backups of critical data. Contact Capgo support or your security vendor for deployment-specific guidance. Source: NVD (public-domain), retrieved 2026-07-30. Analysis generated by SEC.co (claude-haiku-4-5).