Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain valid write/all API key with app.build_native
-
DeliveryStart own build job A for authorized proxy path
-
ExploitLearn target job B's exposed TUS resource suffix
-
ExecutionSend TUS upload to B's resource via A's proxy path
-
PersistProxy injects privileged builder key and forwards write
-
ImpactCorrupt victim build artifacts
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service Proxy/intermediary controls
|
| Exploitation Conditions | Requires a valid Capgo API key of scope 'all' or 'write' carrying app.build_native permission for at least one application the attacker controls, plus an active/authorized build job (job A) to obtain a legitimate proxy path. The decisive precondition is that the attacker must know or have exposed to them the TUS resource suffix of a different build job (job B) - the flaw is that the forwarded /build/upload/:jobId/* suffix is never bound to the authorized job's upload_path or upload_session_key. Limiting factors: authenticated access is mandatory (not anonymous), the target job's resource suffix must be discoverable, and the impact is confined to corrupting build artifacts (write/integrity) with no read/exfiltration or availability takedown. Affects all versions; no patch available at advisory publication. |
| Impact | This is a genuine but access-gated integrity flaw, not a raw-critical priority. The vendor's CVSS 4.0 8.7 is inflated on two axes. First, PR:N is inconsistent with the description, which explicitly requires 'a valid all or write Capgo API key with app.build_native permission' - this is authenticated exploitation (PR:L), not open to anonymous attackers. Second, VC:H (confidentiality high) mislabels the impact: the described action is a cross-job WRITE that corrupts another build's artifacts, with no read/exfiltration path, so the true impact is integrity (VI/SI), not confidentiality. A further limiter the vendor's AC:L ignores: the attack only works 'provided that resource suffix is known or exposed' - the attacker must learn another job's TUS resource suffix, a non-trivial precondition (AC:H). No EPSS score, no CISA KEV listing, and no public POC accompany this advisory, so there is no signal of active or imminent exploitation - status is 'no public exploit identified at time of analysis.' Net: a real supply-chain-integrity confused-deputy bug (CWE-441 correctly assigned) worth patching for anyone running Capgo's native-build pipeline, but the authenticated-plus-known-suffix gating and integrity-only impact place it below the vendor's 8.7. Key conflict to verify with vendor: CVSS vector claims PR:N/VC:H while the description establishes an authenticated write-only corruption. |
| Exploit ScenarioDerived | An attacker who legitimately holds a Capgo 'all' or 'write' API key with app.build_native permission for one of their own applications initiates a native build (job A) and obtains its authorized upload proxy path. Knowing or discovering the TUS resource suffix of another tenant's build job B, they issue TUS upload requests through their job-A proxy path but target job B's resource; the proxy injects Capgo's privileged builder key and forwards the write, corrupting job B's build artifacts. No public exploit code is known at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 26, 2026
Capgo's native build TUS upload proxy forwards a user-controlled TUS resource suffix to the builder service while injecting Capgo's own privileged builder API key, without ever binding that suffix to the upload_path or upload_session_key of the build job the caller was actually authorized for, allowing cross-job writes to another build's upload resource. All versions of capgo.app are affected, and no vendor patch was available at the time of the advisory publication. Exploitation is access-gated rather than anonymous: it requires a valid Capgo API key of scope 'all' or 'write' carrying app.build_native permission for at least one application (plus a legitimate proxy path from an active job A), and knowledge of another job's (job B's) TUS resource suffix, so the realistic impact is integrity-only - corruption of build artifacts - with no read/exfiltration or availability loss, and no public exploit code has been identified at time of analysis.
RemediationAI
No vendor-released patch was identified at the time of analysis, so the primary fix must come from the vendor or from a self-hosted deployment's own code change: in supabase/functions/_backend/public/build/upload.ts, bind the forwarded TUS resource suffix to the authorized job by validating any /build/upload/:jobId/* suffix against that job's stored upload_path and upload_session_key before injecting the builder API key, and reject suffixes that do not match. Until that fix is applied, the most effective compensating control is API-key scoping: eliminate 'all'-scoped keys where possible, grant only 'write', and remove the app.build_native permission from any key that does not genuinely need native builds, since the attack requires exactly that permission - the trade-off is that legitimate CI/CD build automation must be re-keyed and may need per-application keys. Second, treat TUS upload session keys and resource suffixes as secrets: do not log, display, or return them through APIs or dashboards where another tenant's build job could learn them, because the flaw is only reachable when job B's suffix is known or exposed. Third, restrict who can trigger or observe concurrent build jobs on the same Capgo instance or self-hosted backend. Finally, add integrity verification of published build artifacts and audit TUS proxy logs for suffix values that do not correspond to the requesting job's upload_path as a detection measure; note that these controls reduce exploitability and provide detection but do not eliminate the underlying missing authorization binding, which requires the code fix. Consult GHSA-r45q-x4gr-3mvv for vendor guidance and patched versions as they become available.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Capgo is a mobile app live-update and native build service; the vulnerable component is the Supabase edge function at supabase/functions/_backend/public/build/upload.ts, which acts as an upload proxy for the TUS resumable-upload protocol used to push native build artifacts to a downstream builder service. TUS identifies uploads by an opaque resource URL/suffix, and Capgo's proxy takes the resource suffix from the request path /build/upload/:jobId/* and forwards it verbatim to the builder while attaching Capgo's privileged builder API key. Authorization is performed only against the build job named by builder_job_id, and only that job's stored upload_path is validated; the forwarded suffix is never checked against that authorized job's upload_path or upload_session_key. This is the classic confused-deputy pattern (CWE-441): the proxy has authority (the builder API key) that the caller does not, and it exercises that authority on a resource selected by the caller rather than by policy. The result is that an authorized proxy path for job A can be redirected to job B's TUS resource, giving a write primitive across build jobs. Affected CPE is cpe:2.3:a:cap-go:capgo.app:*:*:*:*:*:*:*:* (all versions), covering both the hosted service and self-hosted deployments running the unmodified edge function.
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:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Authenticated API key needed (PR:L) and target job's TUS suffix must be known (AC:H); write-only artifact corruption gives I:H/C:N/A:N, crossing into another build's boundary (S:C).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Capgo (capgo.app) exposes a native build TUS upload proxy (supabase/functions/_backend/public/build/upload.ts) that authorizes a caller against a single build job identified by the supplied builder_job_id and validates only that job's stored upload_path, but then forwards the user-controlled TUS resource suffix taken from /build/upload/:jobId/* to the builder service while injecting Capgo's privileged builder API key. Because the forwarded suffix is never bound to the authorized job's upload_path or upload_session_key, a caller holding a valid 'all' or 'write' Capgo API key with app.build_native permission for one application can use its authorized proxy path for job A to write to the TUS upload resource of another job B, provided that resource suffix is known or exposed, corrupting that build's artifacts. All versions are affected; no patch was available at the time of advisory publication.
Technical POC Analysis
CWE-441 (Unintended Proxy or Intermediary / Confused Deputy), with a secondary CWE-862 (Missing Authorization).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Capgo's cloud-based native build service, used by organizations to compile mobile app artifacts, is affected by a high-severity integrity flaw across all versions. A user with a valid API key and specific permissions could exploit this to overwrite build artifacts belonging to other jobs, potentially compromising the trustworthiness of distributed applications. While no public exploit code has been identified, leadership should prioritize mitigation because corrupted builds could lead to supply chain risks and erode customer confidence.
No vendor patch is available; interim mitigations include: enforcing least privilege by replacing any API keys with 'all' or 'write' scope with narrowly scoped keys that only include app.build_native permission for specific apps; enabling and monitoring detailed audit logs for the TUS upload proxy to detect anomalous cross-job write attempts; temporarily disabling the native build TUS upload proxy if business-critical builds can be paused; implementing network segmentation to restrict access to the builder service; and verifying build artifact integrity via checksums or signatures before distribution. Apply vendor patch when released.
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
Attack Technique
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Affected Products (CPE)CVE.org
Improper access control in Capgo (capgo.app) lets any holder of an ordinary full API key forge a trusted SSO provider by
Authorization bypass in Capgo (capgo.app), a live-update/OTA platform for Capacitor mobile apps, allows a de-provisioned
Account pre-registration hijack in Capgo before 12.128.2 lets a remote unauthenticated attacker claim an account under a
Authentication bypass in Capgo prior to version 12.128.2 lets attackers defeat email-based OTP verification by tampering
Cross-tenant data poisoning in Supabase Capgo before 12.128.2 allows remote unauthenticated attackers to corrupt billing
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
Authenticated administrators on Capgo (capgo.app) can grant channel-scoped permissions to non-member users because the p
EUVD-2026-87720
GHSA-vp2f-59w8-7r7r
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB