Skip to main content

Capgo CVE-2026-100613

| EUVDEUVD-2026-87708 MEDIUM
Incorrect Authorization (CWE-863)
2026-09-26 VulnCheck GHSA-jx6g-vmp7-mvxq
6.0
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate with retained JWT
  2. Exploit
    Detect stale override after app transfer
  3. Execution
    Call PostgREST to repoint channel bundle
  4. Impact
    /updates serves attacker version to devices

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires all of: (1) the attacker previously held a legitimate channel_permission_override as a member of the source organization; (2) an admin executed the transfer_app() operation moving the app, channels, and versions to a destination organization; (3) the attacker retains a valid authenticated JWT (PR:L) to call the PostgREST API. Limiting factors: it only affects deployments that actually use Capgo's cross-organization app-transfer feature, the attacker must have been a prior override-holder, and impact is confined to integrity (repointing a channel to serve a different bundle) - no data disclosure or service outage. No user interaction is needed. The condition maps to the vendor's AT:P attack requirement.

Impact

This is a genuine but bounded authorization flaw (CWE-863), not a high-CVSS-but-hollow issue nor a top-tier emergency. The vendor CVSS 4.0 vector (6.0, AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:N) is internally consistent with the description: network-reachable via the PostgREST API, requires an authenticated JWT (PR:L), and is integrity-only (VI:H) with no confidentiality or availability impact. The AT:P (attack requirement) correctly captures that exploitation is not universally reachable - it depends on a prior legitimate override plus an app transfer having occurred. No EPSS score, no CISA KEV listing, and no public POC are present in the provided data, so there is no public exploit identified at time of analysis and no evidence of active exploitation; the signals point to a targeted, precondition-dependent issue rather than mass exploitation. The most important aggravating factor is that NO patch is available at time of publication and the prior fix (PR #3093 / GHSA-626c-p6fq-3whq) is explicitly incomplete - it validates membership on override create/update but does not purge overrides made stale by transfer_app(). Net: real priority for any org that uses Capgo's app-transfer feature between organizations, but low urgency for the broader population given niche deployment and precondition gating.

Exploit ScenarioDerived

A user legitimately holds a channel_permission_override while a member of Source Org. An admin later transfers the app (with its channels and versions) to Destination Org via transfer_app(), which fails to revalidate or delete the stale override. The former member - now with no membership or RBAC binding in Destination Org - uses their own authenticated JWT against the PostgREST API to repoint the destination-owned channel at an attacker-chosen bundle, so the /updates endpoint delivers an attacker-selected application version to end-user devices. No public POC is identified in the provided data.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 26, 2026

Stale channel permission overrides in Capgo can let a former source-organization member repoint a destination-owned app channel after a cross-organization app transfer, causing the /updates endpoint to serve an attacker-selected OTA bundle to devices. The flaw affects all Capgo (capgo.app) versions up to and including the current release, requires an authenticated attacker (PR:L) who previously held a legitimate override and an admin-run transfer_app() operation, and is bounded to integrity impact with no data disclosure or outage. No public exploit identified at time of analysis, and no vendor-released patch was available at publication.

RemediationAI

No vendor-released patch was identified at time of analysis. Until a fix is available, audit and delete stale channel_permission_overrides rows that reference users who are no longer members of the destination organization after any transfer_app() run; this directly removes the exploitable condition but may revoke legitimate overrides if they are not recreated under destination RBAC. If cross-organization app transfers are not required, disable or tightly restrict execution of transfer_app() to trusted administrators and restrict direct PostgREST channel-modification paths for non-members via row-level security. Require current organization membership and RBAC checks on channel updates, and add cleanup or revalidation logic to transfer_app() so overrides are not carried over. Monitor vendor advisory https://github.com/Cap-go/capgo.app/security/advisories/GHSA-6mj9-x3ww-rpj9 for a patched release; note that the previously proposed fix in PR #3093 for GHSA-626c-p6fq-3whq only validates membership on override creation or update and does not remediate stale overrides created by transfers.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Capgo is an over-the-air update platform for Capacitor apps, exposing a PostgREST API over a database that includes the transfer_app() function and the channel_permission_overrides table. CWE-863 (incorrect authorization) applies because transfer_app() moves an app, its channels, versions, and related records to a destination organization but does not delete or revalidate existing channel_permission_overrides rows; a user who legitimately held an override while in the source organization keeps that override after transfer, despite having no membership or RBAC binding in the destination. An authenticated attacker leveraging their own JWT can then modify a destination-owned channel to point at a different bundle, so the /updates endpoint distributes an attacker-selected application version. The affected CPE is cpe:2.3:a:cap-go:capgo.app:*:*:*:*:*:*:*:* (all versions). Vendor/CVSS 4.0 score is 6.0 (CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N), and the independent assessment aligns with an authenticated integrity-only issue (CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:N); exploitation requires a prior legitimate override, an admin-run transfer, and a valid JWT, with no user interaction. The previously proposed fix for GHSA-626c-p6fq-3whq (PR #3093) validates organization membership when an override is created or updated but does not remove overrides that become stale through an app transfer.

Know when Cap Go 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

Vendor (VulnCheck) PRIMARY 6.0 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 5.3 MEDIUM

Network PostgREST API with a valid JWT gives AV:N/PR:L; the required prior override plus app-transfer precondition raises AC:H; integrity-only bundle tampering gives I:H, C:N, A:N.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

capgo.app is an over-the-air (OTA) update platform for Capacitor apps. In all versions up to and including the current release (no patch available at time of publication), the transfer_app() database function transfers an app, its channels, versions and related records to a destination organization without deleting or revalidating existing rows in channel_permission_overrides. As a result, a user who legitimately held a channel permission override while a member of the source organization retains that override after the transfer, even though they have no membership and no RBAC binding in the destination organization. Using their own authenticated JWT against the PostgREST API, such a former member can modify the destination-owned channel to point at a different bundle, causing the /updates endpoint to serve an attacker-selected application version to devices. The previously proposed fix for GHSA-626c-p6fq-3whq (PR #3093), which validates organization membership when an override is created or updated, does not remove overrides that became stale as a result of an app transfer.

Threat Intelligence Overview

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Low
niche OTA update SaaS for Capacitor mobile apps, specialized developer audience
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

30
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +30
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

Affected Products (CPE)CVE.org

cpe:2.3:a:cap-go:capgo.app:*:*:*:*:*:*:*:*

More in Cap Go

View all
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-88864 CRITICAL
9.3 Sep 10

Improper access control in Capgo (capgo.app) lets any holder of an ordinary full API key forge a trusted SSO provider by

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-88860 CRITICAL
9.3 Sep 10

Authorization bypass in Capgo (capgo.app), a live-update/OTA platform for Capacitor mobile apps, allows a de-provisioned

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-56248 HIGH
8.7 Jun 23

Unauthenticated denial of service in Cap-go capgo (capgo-backend) before 12.128.12 allows remote attackers to exhaust Po

CVE-2026-100622 HIGH
8.7 Sep 26

Unauthenticated retrieval of deleted over-the-air update bundles from capgo.app through version 12.129.0 is possible via

CVE-2026-100623 HIGH
8.7 Sep 26

Capgo's direct exposure of the public.org_users table through Supabase PostgREST lets an authenticated user who already

CVE-2026-100619 HIGH
8.7 Sep 26

Authenticated principals who hold an app-scoped upload/write/all API key with upload+ rights - or any user granted write

CVE-2026-100614 HIGH
8.7 Sep 26

Cross-tenant metadata modification in Capgo before 12.244.1 allows an authenticated attacker to alter image object metad

CVE-2026-88862 HIGH
8.7 Sep 10

Privilege escalation in the Capgo (capgo.app) backend through version 12.242.4 allows an authenticated API key holder to

CVE-2026-100615 HIGH
8.7 Sep 26

Privilege escalation in Capgo (capgo.app) before 12.267.1 allows a principal holding the apikey_manager role to rotate a

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