ZeroHour

CVE-2026-88863

moderate

Privilege escalation via invite rank check flaw in Capgo (capgo.app)

CVSS 4.0
8.6 high
EPSS
Published
()
Modified
AI analysis

CVE-2026-88863 is an improper privilege management flaw (CWE-269) in the Capgo (capgo.app) backend, in the validateInvite() function of supabase/functions/_backend/private/invite_new_user_to_org.ts, which fails to compare the caller's role rank against the role being requested. An authenticated user holding only the org.invite_user permission (for example an org_member) can call POST /private/invite_new_user_to_org and invite an external user as org_admin or org_billing_admin, because the endpoint only requires the org.update_user_roles permission for such invitations. When the invited account accepts via POST /private/accept_invitation, ensureOrgMembership writes the role binding using the Supabase service-role key, bypassing the prevent_role_binding_priority_escalation and check_org_user_privileges database triggers that would normally cap role elevation. An attacker who controls the invited account thereby gains full administrative control over the organization's apps, channels, members, and billing (CVSS 4.0: 8.6, network attack vector, low privileges required). Any Capgo organization running versions through 12.207.1 is affected; there is no evidence of in-the-wild exploitation or a public proof of concept, and the flaw is addressed by pull request #3096, which compares the inviter's rank before permitting elevated invitations.

What to do: Upgrade the capgo package/backend to a release containing the fix from pull request #3096 (i.e., a version newer than 12.207.1) and confirm the exact patched version with the vendor; hosted capgo.app tenants should watch for vendor-side remediation. In the meantime, audit all Capgo organizations for members holding org_admin or org_billing_admin roles that were added via invitations (especially invitations sent by users below those ranks) and remove any unexpected role bindings. Consider restricting the invitation permission (org.invite_user) to trusted roles until the fix is applied.

Affected
Capgo (capgo.app) capgo npm package / Capgo backend invitation endpoints (invite_new_user_to_org, accept_invitation)through 12.207.1 (≤ 12.207.1); fixed by pull request #3096
Estimated exposure
moderate≈ tens of thousands of developer users across thousands of Capgo organizations (order-of-magnitude estimate; exact count unknown) — The vulnerable code sits in the managed capgo.app backend rather than in deployed client apps, so exposure is bounded by the service's developer/organization base — estimated from the deployment pattern of the capgo CLI (npm package) and…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

capgo.app (npm package `capgo`) through version 12.207.1 does not compare the caller's role rank against the requested role in the validateInvite() function of supabase/functions/_backend/private/invite_new_user_to_org.ts. The POST /private/invite_new_user_to_org endpoint only requires the org.update_user_roles permission for org_super_admin invitations, so an authenticated user holding only the org.invite_user permission (e.g., an org_member) can invite an external user as org_admin or org_billing_admin. When the invited account accepts the invitation via POST /private/accept_invitation, ensureOrgMembership creates the role binding using the Supabase service-role key, which bypasses the prevent_role_binding_priority_escalation and check_org_user_privileges database triggers. This allows privilege escalation resulting in full administrative control over the organization's apps, channels, members, and billing. The issue is addressed by pull request #3096, which compares the inviter's rank before permitting elevated invitations.

Weakness
CWE-269
Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/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

In the news

No ingested article mentions this CVE yet.