Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as any Capgo tenant user
-
DeliverySend PUT /app/:appId with crafted icon storage path
-
ExploitBackend returns 7-day service-role-signed URL
-
ExecutionFetch cross-tenant private-bucket image objects
-
ImpactDisclose other tenants' avatars/logos/icons
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Requires an authenticated Capgo account (PR:L) - any valid tenant user, no admin privileges needed. The attacker abuses the PUT /app/:appId endpoint's acceptance of attacker-controlled icon storage paths within the private images bucket; the server then issues service-role-signed URLs (7-day validity) that ignore per-tenant authorization boundaries. Exploitation is limited by the need for a valid account and by the low sensitivity of the exposed objects (avatars, organization logos, app icons only); there is no write, modification, or availability impact and no privilege escalation. |
| Impact | This is a genuine but low-to-moderate priority issue, well characterized by its CVSS 4.0 vector (5.3, MEDIUM): network vector (AV:N), low complexity (AC:L), but requiring privileges (PR:L, i.e. an authenticated Capgo account) and delivering only low confidentiality impact (VC:L) with no integrity or availability impact (VI:N/VA:N) and no scope/subsequent-system change (SC:N). No EPSS score, CISA KEV entry, or public POC was provided, so there is no evidence of active or automated exploitation - the signal set points to a targeted, manual IDOR rather than a mass-exploitable flaw. The real-world impact ceiling is low because the cross-tenant objects exposed are images (user avatars, organization logos, app icons), not credentials or PII-heavy records; this justifies the C:L rating rather than C:H. Note the input tag 'Authentication Bypass' overstates the issue: CWE-639 and the description describe a post-authentication authorization/IDOR defect (attacker must already be logged in, PR:L), not a bypass of authentication itself. Overall: a real, confirmed authorization bug worth patching, but not an emergency absent broader data. |
| Exploit ScenarioDerived | An attacker registers or already holds a legitimate authenticated Capgo account, then calls PUT /app/:appId supplying an attacker-chosen storage path inside the private images bucket. The backend returns a service-role-signed URL valid for 7 days, which the attacker uses to download another tenant's avatars, organization logos, or app icons without authorization. No public exploit code was identified at time of analysis; low attack complexity means the request is straightforward to craft once authenticated. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 26, 2026
An insecure direct object reference in Capgo through 12.128.2 lets any authenticated tenant user read cross-tenant objects stored in the private images bucket by supplying attacker-controlled icon storage paths to the PUT /app/:appId endpoint, which then returns service-role-signed URLs valid for 7 days. Because the signed URLs bypass per-tenant authorization, exposed assets include user avatars, organization logos, and app icons. Exploitation requires a valid non-privileged Capgo account and yields only low-sensitivity read access; no modification or availability impact is possible, and no public exploit code was identified at time of analysis.
RemediationAI
Upgrade Capgo beyond 12.128.2 to the first release containing the vendor fix, as documented in the GitHub advisory GHSA-84xq-4rv7-p252 (https://github.com/Cap-go/capgo.app/security/advisories/GHSA-84xq-4rv7-p252) and the VulnCheck advisory for CVE-2026-100626; patch availability per the vendor advisory should be confirmed against the exact fixed version before rollout. If immediate upgrade is not possible, compensate in the application layer: reject any icon path that does not resolve to the caller's own tenant prefix (canonicalize the path, then enforce a server-side allowlist check against the authenticated tenant ID) so that service-role signing is only performed on tenant-owned objects. Alternatively, stop issuing service-role-signed URLs for user-supplied paths and instead serve icons through an authenticated proxy that enforces tenant ownership on every request, at the cost of additional request latency and backend load. Rotating the service role/private bucket credentials reduces the residual exposure of already-issued 7-day signed URLs, though existing links remain valid until expiry - a trade-off that argues for shortening the signing TTL as an interim measure while the path validation fix is deployed. No write, modification, or availability impact is present, so remediation can be prioritized as a MEDIUM-severity confidentiality fix rather than an emergency response.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
CWE-639 (Authorization Bypass Through User-Controlled Key) manifests here in Capgo's app-icon upload flow. Capgo is a mobile app update/over-the-air delivery platform whose backend stores tenant assets in a private Supabase-style images bucket. The PUT /app/:appId endpoint accepts a client-supplied storage path for the app icon without validating that the path belongs to the requesting tenant. When the attacker points the path at another tenant's object, the service generates a service-role-signed URL - a backend credential that implicitly bypasses row-level security - and returns it to the caller with a 7-day expiry. The root cause is missing server-side authorization on the object key (IDOR), allowing a low-privileged authenticated account to obtain read credentials for arbitrary objects in the shared bucket. The CVSS 4.0 vector (5.3, MEDIUM) reflects network reachability, low attack complexity, and low confidentiality-only impact; the CPE cpe:2.3:a:cap-go:capgo.app:*:*:*:*:*:*:*:* confirms all versions up to and including 12.128.2 are in scope.
Know when Cap Go gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Authenticated network IDOR (PR:L, AV:N/AC:L) exposing only low-sensitivity cross-tenant images, so C:L with no integrity or availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
capgo through 12.128.2 contains an insecure direct object reference vulnerability in the PUT /app/:appId endpoint that accepts attacker-controlled icon storage paths. Authenticated users can supply arbitrary paths in the private images bucket and obtain service-role-signed URLs valid for 7 days to read cross-tenant objects including user avatars, organization logos, and app icons without authorization.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Account pre-registration hijack in Capgo before 12.128.2 lets a remote unauthenticated attacker claim an account under a
Improper access control in Capgo (capgo.app) lets any holder of an ordinary full API key forge a trusted SSO provider by
Authentication bypass in Capgo prior to version 12.128.2 lets attackers defeat email-based OTP verification by tampering
Authorization bypass in Capgo (capgo.app), a live-update/OTA platform for Capacitor mobile apps, allows a de-provisioned
Cross-tenant data poisoning in Supabase Capgo before 12.128.2 allows remote unauthenticated attackers to corrupt billing
Unauthenticated denial of service in Cap-go capgo (capgo-backend) before 12.128.12 allows remote attackers to exhaust Po
Unauthenticated retrieval of deleted over-the-air update bundles from capgo.app through version 12.129.0 is possible via
Capgo's direct exposure of the public.org_users table through Supabase PostgREST lets an authenticated user who already
Authenticated principals who hold an app-scoped upload/write/all API key with upload+ rights - or any user granted write
Cross-tenant metadata modification in Capgo before 12.244.1 allows an authenticated attacker to alter image object metad
Privilege escalation in the Capgo (capgo.app) backend through version 12.242.4 allows an authenticated API key holder to
Privilege escalation in Capgo (capgo.app) before 12.267.1 allows a principal holding the apikey_manager role to rotate a
EUVD-2026-87770
GHSA-g675-f5v2-69hx
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB