CyberRota Analysis
AI-GeneratedThe vulnerability lies in the authorization flaw within the app icon update process of Capgo, where the PUT /app/:id endpoint allows an authenticated user to manipulate the `icon` value without proper verification of its namespace. This could enable an attacker with an app-limited write API key to overwrite private image objects, such as organization logos, using privileged service-role credentials. Organizations using Capgo should prioritize addressing this vulnerability, especially those managing sensitive image assets, as all versions are affected and no patch is currently available.
Public Exploit Signal
A public exploit, PoC, GitHub repository or Metasploit reference was detected for this CVE.
Note: these links are listed for security research and verification purposes only.
Original NVD Description
Capgo (capgo.app) is affected by an authorization flaw in the app icon update path. The PUT /app/:id endpoint accepts a user-controlled `icon` value, normalizes it, and stores it in public.apps.icon_url without verifying that the image path belongs to the target app's own image namespace (e.g. org/{owner_org}/{app_id}/...). Updating apps.icon_url fires the on_app_update trigger, whose worker reads record.icon_url and calls cleanStoredImageMetadata(), which runs with service-role credentials (supabaseAdmin()) and downloads and re-uploads the referenced storage object with upsert: true. As a result, an authenticated holder of an app-limited write API key can cause the privileged worker to rewrite an out-of-scope private image object (for example an organization logo) that the key cannot read or write directly under Supabase Storage RLS. All versions are affected; no patched version was available at the time of the advisory.