Description
capgo.app is an over-the-air update platform for Capacitor apps. In all versions prior to a fix, the row-level security UPDATE policy on the public.orgs table permits an organization admin (a user holding org.update_settings) to update the entire row, including the internal billing pointer column customer_id. The official organization update endpoint (supabase/functions/_backend/public/organization/put.ts) allowlists only a small set of editable settings fields and excludes customer_id, and the private Stripe billing route separately requires the org.update_billing permission. By sending an update directly to Supabase PostgREST, an authenticated org admin without org.update_billing can null or corrupt the organization's Stripe customer pointer, causing plan and billing checks that trust orgs.customer_id to fail and moving the organization from a valid paid plan state to unpaid/no-plan behavior. At the time of the advisory no patched version was available.
Published: 2026-09-26
Score: 7 High
EPSS: n/a
KEV: No
Impact: Unauthorized billing pointer alteration leading to plan downgrade
Action: Assess Impact
AI Analysis

Impact

The vulnerability allows an organization administrator who normally lacks billing‑related privileges to modify the organization's internal Stripe customer pointer by exploiting a row‑level security policy that incorrectly permits updates on the entire row of the public.orgs table. Changing the value of customer_id to null or an invalid entry causes plan and billing checks, which rely on this pointer, to fail and results in the organization being treated as having an unpaid or no‑plan status. This effectively downgrades paid users to a free tier or disables service functionality, representing a loss of service availability and potential revenue impact for the affected organization.

Affected Systems

All released versions of Cap-go’s capgo.app over‑the‑air update platform prior to the issuance of a fix are affected. The functionality is tied to the public.orgs table accessed via Supabase PostgREST and the library supplied by Cap-go:capgo.app.

Risk and Exploitability

The CVSS base score of 7 indicates a moderate severity vulnerability. With a normal authenticated administrator’s permissions the attacker can directly request an update through Supabase PostgREST, a path that is not protected by additional application‑level checks. The EPSS score is not available, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog. Consequently, the potential for exploitation depends largely on the presence of a direct PostgREST endpoint and an attacker’s ability to craft an authenticated request; the breach leads to service disruption and loss of paid features.

Generated by OpenCVE AI on September 26, 2026 at 15:24 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Re‑engineer the row‑level security policy for the public.orgs table to restrict updates to the explicit set of fields that the organization update endpoint permits, excluding customer_id and any other sensitive columns.
  • Modify the Supabase PostgREST configuration so that direct row updates on the public.orgs table are denied unless they originate from a vetted application function, or enable request validation that rejects mutations to customer_id.
  • Apply temporary audit logging for org.update_settings actions that modify the public.orgs table to detect and respond to unauthorized customer_id changes promptly.

Generated by OpenCVE AI on September 26, 2026 at 15:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 26 Sep 2026 13:30:00 +0000

Type Values Removed Values Added
Description capgo.app is an over-the-air update platform for Capacitor apps. In all versions prior to a fix, the row-level security UPDATE policy on the public.orgs table permits an organization admin (a user holding org.update_settings) to update the entire row, including the internal billing pointer column customer_id. The official organization update endpoint (supabase/functions/_backend/public/organization/put.ts) allowlists only a small set of editable settings fields and excludes customer_id, and the private Stripe billing route separately requires the org.update_billing permission. By sending an update directly to Supabase PostgREST, an authenticated org admin without org.update_billing can null or corrupt the organization's Stripe customer pointer, causing plan and billing checks that trust orgs.customer_id to fail and moving the organization from a valid paid plan state to unpaid/no-plan behavior. At the time of the advisory no patched version was available.
Title capgo.app Authentication Bypass via PostgREST customer_id Mutation
Weaknesses CWE-863
References
Metrics cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:H'}

cvssV4_0

{'score': 7, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-09-26T13:22:56.806Z

Reserved: 2026-09-26T02:31:07.601Z

Link: CVE-2026-100616

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-26T14:16:42.333

Modified: 2026-09-26T14:16:42.333

Link: CVE-2026-100616

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-26T15:30:08Z

Weaknesses