{"id":"CVE-2026-100616","title":"capgo.app is an over-the-air update platform for Capacitor apps","summary":"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 t…","severity":"medium","cvss":5.5,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:H","cwe":["CWE-863"],"vendor":"Cap-go","product":"capgo.app","affected":["capgo.app <= *"],"published":"2026-09-26","updated":"2026-10-05","sourceUpdated":"2026-10-05T16:17:02.980","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-100616","references":[{"url":"https://github.com/Cap-go/capgo.app/security/advisories/GHSA-qp5h-v7x3-53cq","label":"disclosure@vulncheck.com"},{"url":"https://www.vulncheck.com/advisories/capgo-app-authentication-bypass-via-postgrest-customer-id-mutation","label":"disclosure@vulncheck.com"},{"url":"https://github.com/Cap-go/capgo.app/security/advisories/GHSA-qp5h-v7x3-53cq","label":"134c704f-9b21-4f2e-91b3-4a467353bcc0"}],"tags":["nvd","cve.org","exploit-available"],"exploitAvailable":true,"ssvc":{"exploitation":"poc","automatable":"no","technicalImpact":"partial","timestamp":"2026-10-05T16:03:51.138448Z"},"epss":0.0032,"epssPercentile":0.24864,"ingestedAt":"2026-09-26T13:33:20.932Z","slug":"CVE-2026-100616","body":"## Overview\n\ncapgo.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.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"twilight","depthScore":42,"depthScoreParts":{"impact":30.3,"likelihood":0.1,"exploitation":12,"ransomware":0},"changes":[{"seq":215889,"id":"CVE-2026-100616","ts":1791217621487,"field":"exploit_available","old":"false","new":"true"}]}