Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Remote, low-complexity, requires a low-privilege read-only API key (PR:L), no UI; high availability impact from build cancellation, limited integrity, no confidentiality loss.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Cap-go before 12.128.2 contains a privilege inversion vulnerability in GET /build/logs/:jobId that allows read-only API key holders to cancel running native builds. The endpoint registers an abort listener on the SSE stream that unconditionally invokes cancelBuildOnDisconnect() using the privileged server-side BUILDER_API_KEY when clients disconnect, bypassing the app.build_native permission check required by the explicit POST /build/cancel/:jobId endpoint. Attackers with read-only API keys can repeatedly disrupt native build operations and CI/CD workflows by opening the log stream and dropping the connection.
AnalysisAI
Privilege inversion in Cap-go (Capgo) before 12.128.2 lets holders of read-only API keys cancel running native builds by abusing the GET /build/logs/:jobId SSE endpoint. On client disconnect the server invokes cancelBuildOnDisconnect() using the privileged BUILDER_API_KEY, bypassing the app.build_native permission enforced on POST /build/cancel/:jobId. No public exploit identified at time of analysis, but the issue is trivially reproducible against any deployment exposing the log stream.
Technical ContextAI
Capgo is an open-source mobile live-update and native build service for Capacitor apps; the affected component is its build/log streaming API delivered over Server-Sent Events. The root cause is CWE-862 (Missing Authorization): the abort listener attached to the SSE stream is wired to a privileged internal action (build cancellation) using the server's BUILDER_API_KEY rather than the caller's identity, so authorization on the cancel path is effectively skipped. The affected CPE (cpe:2.3:a:cap-go:capgo:*) covers all Capgo versions prior to 12.128.2, where the disconnect handler unconditionally calls the privileged cancel function instead of re-checking the app.build_native permission tied to the caller.
RemediationAI
Upgrade Capgo to version 12.128.2 or later, where the disconnect handler enforces the app.build_native permission against the caller's identity rather than invoking the privileged BUILDER_API_KEY path; details are in the vendor advisory at https://github.com/Cap-go/capgo/security/advisories/GHSA-95g7-xwwx-j737. Until the upgrade is applied, audit and rotate any read-only API keys that are not strictly necessary, restrict network access to the /build/logs/:jobId endpoint at the reverse proxy or WAF layer (allowing only trusted CI/CD orchestrators), and monitor build-cancellation events for unexpected sources - noting that proxy-level blocking will also break legitimate log streaming for affected clients.
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
Privilege escalation in the Capgo (capgo.app) backend through version 12.242.4 allows an authenticated API key holder to
Capgo's MFA enforcement is defeated by an authentication assurance level (AAL) mismatch across two distinct code paths:
Unauthenticated organization enumeration in Capgo before 12.128.2 lets attackers abuse the Supabase PostgREST SECURITY D
Unauthenticated denial of service in Cap-go capgo (capgo-backend) before 12.128.12 allows remote attackers to exhaust Po
Cross-tenant billing log tampering in Capgo (Cap-go/capgo) before 12.128.2 allows unauthenticated attackers holding only
Privilege escalation in capgo.app (npm package `capgo` ≤ 12.207.1) allows an authenticated org_member to promote an exte
Account takeover in Cap-go (Capgo) versions prior to 12.128.2 allows an attacker holding a temporary authenticated sessi
Same weakness CWE-862 – Missing Authorization
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-38368