Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as org member
-
DeliveryPOST /apikey with app_id, omit org_id/limited_to_orgs/expires_at
-
Exploitowner org missing from policy validation list
-
Executionexpiration check returns early
-
Impactnon-expiring app-scoped key persists beyond org policy
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated account that is a member of a Capgo organization which has explicitly enabled require_apikey_expiration and set a max_apikey_expiration_days limit (the policy this flaw defeats). The attacker must call POST /apikey supplying app_id while deliberately omitting org_id, limited_to_orgs, and expires_at - this specific parameter combination causes the owner org to be excluded from validateExpirationAgainstOrgPolicies. Limiting factors: the actor must already hold valid org credentials with permission to create app-scoped keys (PR:L), the target org must actually have the expiration policy configured (otherwise there is nothing to bypass), and the resulting key grants no privileges beyond what the member could already scope - the only gain is indefinite key lifetime. Fixed in version 12.128.12. |
| Impact | This is CWE-863 (improper authorization) mislabeled as 'Authentication Bypass' - no authentication is defeated. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) confirms a low-privileged authenticated org member is the attacker, so this is NOT remote-unauthenticated. The vendor's 8.7 CRITICAL rating rests on VC:H/VI:H/VA:H, which is generous and internally inconsistent with the actual flaw: the bug does NOT grant any new access. The created key is app-scoped to exactly what the member could already scope it to; the only thing bypassed is the organization's expiration policy, so the marginal impact is a credential that lives longer than the org intended, extending the exposure window if it later leaks. Real technical impact is therefore Low (C:L/I:L), not High. No EPSS score, no CISA KEV listing, and no public POC are present in the input - meaning no evidence of active exploitation or automatable mass abuse. Weighing all signals: this is a governance/policy-control weakness with low real-world urgency, not the CRITICAL the raw score implies. Note the discrepancy explicitly: vendor VC:H/VI:H/VA:H overstates impact versus a description that only shows an expiration-policy bypass by an already-authorized member. |
| Exploit ScenarioDerived | An authenticated member of an organization that has enforced API-key expiration (require_apikey_expiration with a max_apikey_expiration_days limit) calls POST /apikey supplying only app_id and omitting org_id, limited_to_orgs, and expires_at. The validateExpirationAgainstOrgPolicies check receives an empty org-ID list and returns early, so the server issues a permanent, non-expiring app-scoped key that outlives the organization's rotation policy. No public exploit code is identified at time of analysis; exploitation requires an existing valid org account. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 26, 2026
Improper authorization in Capgo App before 12.128.12 allows an authenticated organization member to mint a non-expiring, app-scoped API key even when the owning organization has enabled require_apikey_expiration and configured a max_apikey_expiration_days limit. The POST /apikey handler resolves the target app from the supplied app_id but omits the owning organization from the list passed to validateExpirationAgainstOrgPolicies when org_id, limited_to_orgs, and expires_at are absent, so the validation returns early and the expiration policy is silently skipped. Exploitation requires a valid org account with permission to create app-scoped keys and an organization that actually has the policy configured; the only privilege gained is indefinite key lifetime, and no public exploit code was identified at time of analysis. The vendor fixed the issue in version 12.128.12.
RemediationAI
Vendor-released patch: upgrade Capgo App to 12.128.12, which adds the app's owner organization to the ID list evaluated by validateExpirationAgainstOrgPolicies so the expiration policy can no longer be skipped (see https://github.com/Cap-go/capgo.app/security/advisories/GHSA-j6p6-qqcg-3fwp). Where immediate upgrade is not possible, compensating controls should target the specific bypass: audit and revoke or rotate all app-scoped API keys created without an explicit expires_at, since they are the artifacts this flaw produces - note that revoking keys may disrupt CI/CD pipelines that depend on them, so inventory consumers first; restrict key-creation rights to a trusted subset of org members to reduce the pool of accounts able to trigger the path, at the cost of added administrative friction; and, as a compensating detection, monitor POST /apikey calls that carry app_id while omitting org_id and expires_at and alert on any resulting keys with no expiration, accepting that this is detective rather than preventive. The root fix remains upgrading to 12.128.12; the VulnCheck advisory at https://www.vulncheck.com/advisories/capgo-app-before-12.128.12-authentication-bypass-via-apikey provides additional context. No public exploit code was identified at time of analysis.
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
This is CWE-863 (incorrect authorization), a server-side logic failure in Capgo App's API key creation endpoint rather than a true authentication bypass, despite the 'Authentication Bypass' tag applied by the reporting feed - no authentication control is defeated here. The request path POST /apikey builds the set of organization IDs used by validateExpirationAgainstOrgPolicies; when a caller supplies app_id but deliberately omits org_id, limited_to_orgs, and expires_at, the code resolves and scopes the key to the target app but never appends the app's owner organization to that list. With an empty list the expiration validation short-circuits and returns success, so require_apikey_expiration and max_apikey_expiration_days are never applied. The affected package is tracked as cpe:2.3:a:cap-go:capgo.app (all versions prior to 12.128.12). Note that the published CVSS 4.0 score of 8.7 (VC:H/VI:H/VA:H) overstates real-world impact relative to the independent assessment, which rates the issue CVSS 3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N - the flaw grants no capability beyond what the member could already scope, only an unbounded key lifetime.
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:H/VI:H/VA:H/SC:N/SI:N/SA:N
Authenticated org member (PR:L) over the API (AV:N/AC:L); the flaw only bypasses an expiration policy granting a longer-lived credential, so impact is limited to C:L/I:L with no availability effect.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
capgo.app before 12.128.12 fails to enforce an organization's API key expiration policy when creating app-scoped API keys. In the POST /apikey endpoint, requests that supply app_id but omit org_id, limited_to_orgs, and expires_at resolve the target app and scope the key to it, but never add the app's owner organization to the list of organization IDs passed to validateExpirationAgainstOrgPolicies; because that list is empty, the validation returns early. As a result, an authenticated organization member can create a non-expiring app-scoped API key even when the owning organization has require_apikey_expiration enabled and a max_apikey_expiration_days limit configured. The issue is fixed in version 12.128.12.
Technical POC Analysis
CWE-863 (Incorrect Authorization): an authorization check exists but is performed against an empty input set, so it silently no-ops.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A configuration-enforcement flaw in Capgo App (fixed in 12.128.12) lets an organization member with key-creation rights issue a never-expiring, app-scoped API key even when the organization has explicitly required key expiration. The practical consequence is that a governance control leadership relies on to limit credential lifetime can be silently bypassed, leaving standing credentials that outlive staff changes, offboarding, and incident rotations. Exposure is limited to organizations that both hold a Capgo App deployment below 12.128.12 and have the expiration policy enabled, and no public exploit code was identified at time of analysis.
Apply vendor patch (upgrade Capgo App to 12.128.12 or later).
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
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-87722
GHSA-38jp-2fr7-m68g
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB