Skip to main content

Capgo.app CVE-2026-100624

| EUVDEUVD-2026-87719 MEDIUM
Insufficient Session Expiration (CWE-613)
2026-09-26 VulnCheck GHSA-r6v6-qvq3-q232
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain account with app.build_native permission
  2. Delivery
    Create native build request (pending, 1h expiry)
  3. Exploit
    Wait past upload_expires_at or upload phase
  4. Execution
    Replay POST/PATCH/HEAD to /build/upload/:jobId
  5. Persist
    Proxy forwards without expiry check
  6. Impact
    Write to stale build upload session

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V7 - Session Management Session expiration enforcement
Exploitation Conditions

Requires an authenticated caller holding the app.build_native permission for the target app in Capgo.app (self-hosted or hosted OTA update platform for Capacitor). The attacker must first have a native build request created (which stores a 'pending' status and a one-hour upload_expires_at in build_requests), then send TUS proxy traffic (POST/PATCH/HEAD) to /build/upload/:jobId after that expiry has passed or after the build has moved beyond the upload phase. Exploitation is limited by: (1) the authentication and app.build_native permission requirement (PR:L, not anonymous), (2) the fact that the proxy only loads app_id, owner_org, builder_job_id, and upload_path and checks only the permission - so no additional exploit is needed once authenticated - and (3) the downstream builder service, which may independently reject the stale/out-of-phase request and thereby neutralize the flaw entirely.

Impact

This is a genuinely low-to-moderate real-world risk, and the signals are internally consistent rather than conflicting. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L) scores 5.3 (medium) and maps to CWE-613 (Insufficient Session Expiration): a network-reachable but authenticated flaw (PR:L) with no user interaction, no confidentiality impact, and only low integrity/availability impact. No EPSS score, no CISA KEV listing, and no public exploit code are present in the provided data - so exploitation status is 'no public exploit identified at time of analysis.' The impact ceiling is low because the flaw only lets a caller who ALREADY holds app.build_native permission keep writing to their own build upload session past the 1-hour expiry or beyond the upload phase; there is no privilege escalation, no cross-tenant access implied, and the description explicitly notes the separate builder service may independently reject the stale request, further blunting impact. The one metadata conflict worth flagging: the 'Information Disclosure' tag contradicts the CVSS vector, which sets VC:N (no confidentiality impact) - this is fundamentally a stale-session/authorization-window bug affecting integrity/availability, not disclosure. Bottom line: not a patch-tonight priority, but a legitimate defense-in-depth fix.

Exploit ScenarioDerived

An authenticated user (or compromised API credential) holding app.build_native permission for an app creates a native build request, then continues sending POST/PATCH/HEAD TUS upload traffic to /build/upload/:jobId after the stored 1-hour upload_expires_at has elapsed or after the build has advanced past the upload phase, because the proxy only checks the permission and never re-validates expiry or build lifecycle state. No public exploit code is identified. Given AV:N/AC:L/PR:L/UI:N, the action is straightforward to script but requires valid authenticated access and depends on the downstream builder not rejecting the stale write.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 26, 2026

Authenticated users who hold the app.build_native permission for a given app in Capgo.app before 12.264.5 can keep writing to a native build upload session after its stored one-hour upload_expires_at has passed or after the build has moved beyond the upload phase, because the TUS proxy at /build/upload/:jobId enforces only the build_native permission and never checks upload expiry or build lifecycle state. The proxy loads just app_id, owner_org, builder_job_id and upload_path and then forwards POST, PATCH and HEAD requests to the internal builder, so stale or out-of-phase sessions remain writable. The weakness maps to CWE-613 (Insufficient Session Expiration) with low integrity and availability impact (CVSS v3.1 5.3, AV:N/AC:L/PR:L/UI:N), there is no public exploit identified at time of analysis, and the flaw can be neutralized entirely if the separate downstream builder service rejects the stale request on its own.

RemediationAI

Vendor-released patch: upgrade Capgo.app to 12.264.5 or later, which restores enforcement of upload_expires_at and build lifecycle state in the /build/upload/:jobId proxy; the fix is confirmed in the vendor advisory at https://github.com/Cap-go/capgo.app/security/advisories/GHSA-mqr8-g67p-jm26, with additional detail at https://www.vulncheck.com/advisories/capgo-app-before-12.264.5-upload-expiry-bypass-via-build-upload. If immediate upgrade is not possible, the most effective compensating control is to place a reverse-proxy or API-gateway rule in front of /build/upload/:jobId that rejects POST, PATCH and HEAD requests whose originating build request is older than one hour or whose build status is no longer 'pending' specifically the upload phase, noting the trade-off that legitimate slow uploads near the one-hour boundary may be cut off; alternatively, restrict the app.build_native permission to a minimal set of trusted accounts and audit the build_requests table for writes to jobs past upload_expires_at or in terminal states, accepting that this is detective rather than preventive and relies on continuous log review. Because the proxy only forwards to the internal builder, hardening or explicitly validating expiry and job state on the builder service itself is a durable second layer that also protects other callers, though it requires changes to a component outside the Capgo.app codebase and must be coordinated so legitimate in-window uploads are unaffected.

Affected VersionsENISA

capgo.app 0 <12.264.5

Affected Packages

euvd capgo_app fix: 12.264.5

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

Capgo is an over-the-air (OTA) update platform for Capacitor-based mobile apps, deployable as a hosted service or self-hosted, and it exposes a TUS (resumable upload) proxy endpoint, /build/upload/:jobId, that brokers client upload traffic to an internal native build service. When a native build request is created, the application records a one-hour upload_expires_at timestamp and a 'pending' status in its build_requests table, but the upload proxy handler retrieves only app_id, owner_org, builder_job_id and upload_path from that record and validates solely the app.build_native permission before proxying POST, PATCH and HEAD requests onward. No comparison against upload_expires_at and no verification of the current build state is performed, which is the classic CWE-613 insufficient session expiration pattern: a session or upload artifact remains usable past its intended lifetime because the authorization layer checks identity/permission but not temporal or state validity. The CPE cpe:2.3:a:cap-go:capgo.app:*:*:*:*:*:*:*:* and the EUVD range (capgo.app 0 <12.264.5) both confirm that all releases before 12.264.5 are in scope; note that some third-party tagging labels this as information disclosure, whereas the described mechanism and the assessed vector point to low integrity and availability impact rather than confidentiality loss.

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

Vendor (VulnCheck) PRIMARY 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N
vuln.today AI 5.4 MEDIUM

Network TUS endpoint (AV:N/AC:L) but requires authenticated app.build_native permission (PR:L); no confidentiality (C:N), only low integrity/availability from writing to a stale upload session.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Sep 26, 2026 - 14:02 EUVD

DescriptionCVE.org

Capgo.app before 12.264.5 does not enforce upload expiry or build lifecycle state in the /build/upload/:jobId TUS proxy endpoint. When a native build request is created, an upload_expires_at timestamp (one hour) and a 'pending' status are stored in build_requests, but the upload proxy loads only app_id, owner_org, builder_job_id, and upload_path and checks only the app.build_native permission before forwarding POST, PATCH, and HEAD requests to the internal builder. As a result, an authenticated caller holding app.build_native permission for the app can continue writing to the build upload session after the stored expiry has passed or after the build has moved beyond the upload phase, unless the separate builder service independently rejects the request. The issue is fixed in 12.264.5.

Threat Intelligence Overview

EPSS Score
0.2%
Top 89% exploitable
Prevalence
Low
niche developer tool for Capacitor OTA app updates, limited production footprint
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

More in Cap Go

View all
CVE-2026-56081 CRITICAL
9.3 Jun 19

Account pre-registration hijack in Capgo before 12.128.2 lets a remote unauthenticated attacker claim an account under a

CVE-2026-88864 CRITICAL
9.3 Sep 10

Improper access control in Capgo (capgo.app) lets any holder of an ordinary full API key forge a trusted SSO provider by

CVE-2026-56073 CRITICAL
9.3 Jun 19

Authentication bypass in Capgo prior to version 12.128.2 lets attackers defeat email-based OTP verification by tampering

CVE-2026-88860 CRITICAL
9.3 Sep 10

Authorization bypass in Capgo (capgo.app), a live-update/OTA platform for Capacitor mobile apps, allows a de-provisioned

CVE-2026-56245 HIGH
8.8 Jun 24

Cross-tenant data poisoning in Supabase Capgo before 12.128.2 allows remote unauthenticated attackers to corrupt billing

CVE-2026-56248 HIGH
8.7 Jun 23

Unauthenticated denial of service in Cap-go capgo (capgo-backend) before 12.128.12 allows remote attackers to exhaust Po

CVE-2026-100622 HIGH
8.7 Sep 26

Unauthenticated retrieval of deleted over-the-air update bundles from capgo.app through version 12.129.0 is possible via

CVE-2026-100623 HIGH
8.7 Sep 26

Capgo's direct exposure of the public.org_users table through Supabase PostgREST lets an authenticated user who already

CVE-2026-100619 HIGH
8.7 Sep 26

Authenticated principals who hold an app-scoped upload/write/all API key with upload+ rights - or any user granted write

CVE-2026-100614 HIGH
8.7 Sep 26

Cross-tenant metadata modification in Capgo before 12.244.1 allows an authenticated attacker to alter image object metad

CVE-2026-88862 HIGH
8.7 Sep 10

Privilege escalation in the Capgo (capgo.app) backend through version 12.242.4 allows an authenticated API key holder to

CVE-2026-100615 HIGH
8.7 Sep 26

Privilege escalation in Capgo (capgo.app) before 12.267.1 allows a principal holding the apikey_manager role to rotate a

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy