Executive brief
Capgo, a platform for managing app updates and deployments, contained a security flaw that allowed users of one organization to access data belonging to another. By providing a specific identification number in a web request, an authenticated user could trick the system into granting them the permissions of a different customer. This could lead to the unauthorized viewing or modification of sensitive application data and organizational resources across the platform.
Technical details
A Broken Object Level Authorization (BOLA) vulnerability exists in the `middlewareKey()` function within `supabase/functions/_backend/utils/hono_middleware.ts`. The middleware accepts a client-controlled `x-limited-key-id` header and resolves the associated subkey without verifying that the subkey belongs to the authenticated user's organization. While other code paths like `foundAPIKey()` perform this check, `middlewareKey()` fails to call `validateSubkeyUser()`. An attacker with a valid API key can exploit this by supplying a target tenant's subkey ID, effectively adopting that tenant's authorization context. This grants unauthorized access to various API endpoints, including those for apps, bundles, channels, and organizations. The issue is resolved in version 12.128.2.
Affected products
- Capgo Capgo < 12.128.2
Timeline
- 2026-02-10: advisory: GitHub Security Advisory published
- 2026-06-30: disclosed: NVD publication date