Executive brief
Capgo is an over-the-air update platform for mobile apps. A flaw in the bundle promotion API allows developers or uploaders who have been explicitly blocked from promoting bundles to specific production channels to bypass that restriction and force deployments anyway. This could enable restricted team members to push malicious or untested app updates to end-user devices despite administrative controls intended to prevent it.
Technical details
The PUT /bundle endpoint accepts write/all API keys and dispatches to setChannel for authorization, which checks channel.promote_bundle permission at app scope only by omitting the channel_id parameter. Since the omitted scope field is passed to rbac_check_permission_direct as SQL NULL, the per-channel RBAC override evaluation gate (p_channel_id IS NOT NULL) is never satisfied, allowing principals with app-level channel.promote_bundle to bypass per-channel deny overrides and update channels.version for any channel. The vulnerability is confirmed in the main branch at commit de66fa51e7ff2f50283cc1455c3d80ab3eb0ae43 with no known patched version at publication.
Affected products
- Cap-go Capgo server backend main at de66fa51e7ff2f50283cc1455c3d80ab3eb0ae43 and likely earlier versions
Timeline
- 2026-09-26: disclosed
- 2026-09-09: advisory: GitHub Security Advisory GHSA-633x-9x77-77gf published