Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-priv user with clone/create rights
-
DeliveryGuess or learn target project's unique feature name
-
ExploitPOST clone request naming source feature into own project
-
ExecutionServer skips source-project authorization check
-
ImpactInspect copied strategies, constraints, variants and payloads
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 Unleash account holding create or clone permission in at least one project (PR:L, so not remote-unauthenticated), plus knowledge or a successful guess of a target feature's globally-unique name in a project the attacker cannot otherwise read. Exploitation targets the clone endpoint POST /api/admin/projects/:projectId/features/:featureName/clone (the cloneFeatureToggle operation) in versions prior to 8.0.3. Limiting factors: the attacker must already have a foothold with project-level clone/create rights, must know or enumerate the source feature name (feature names may leak via shared SDK access across projects), and impact is confined to disclosure of feature configuration (strategies, constraints, variants, payloads) with no write or availability effect. |
| Impact | This is a genuine but modest-severity broken-authorization (IDOR, CWE-639) issue, not a high-CVSS-but-low-real-risk misfire nor a critical priority. The vendor CVSS 4.0 base score is 5.3 with vector AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N - meaning network-reachable, low complexity, but requiring an authenticated low-privilege account (PR:L) and yielding only limited confidentiality impact (VC:L) with no integrity or availability impact. There is no EPSS score, no CISA KEV listing, and no evidence of active exploitation in the provided data, so exploitation status is best characterized by the fact that a proof-of-concept exists in the GHSA advisory but the flaw is not confirmed exploited in the wild. Notably, the vendor's own advisory states the vulnerability 'cannot be confirmed without Enterprise access' and is based on circumstantial evidence in the open-source repository, which is a conflicting/uncertainty signal worth flagging: the patch (commit 2dc6ac0e adding validateFeatureBelongsToProject) confirms the code path was fixed, but real-world confirmation of the disclosure was limited. Overall this is a data-confidentiality issue requiring an existing foothold, appropriate for routine patching rather than emergency response. |
| Exploit ScenarioDerived | An authenticated Unleash user who has clone or create permission in one project (P2) but no access to a restricted project (P1) sends POST /api/admin/projects/P2/features/secret-feature/clone, referencing a globally-unique feature name they know or guessed from P1. The clone succeeds because only destination-project authorization is checked, and the attacker then opens the copied feature in P2 to read its strategy parameters, constraints, variants, and variant payloads. A working proof-of-concept with the exact HTTP request is published in the GHSA-8xcj-9hfr-fh9j advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 22, 2026
Authenticated users of Unleash (npm unleash-server) prior to 8.0.3 who hold create or clone rights in any single project can abuse the clone-feature endpoint to copy a feature toggle out of a different project they cannot read, then inspect the copied strategy parameters, constraints, variants, and variant payloads. The flaw is a broken object-level authorization (CWE-639) in cloneFeatureToggle and POST /api/admin/projects/:projectId/features/:featureName/clone: the destination project is authorized but the source project is never checked, and because feature names are globally unique an attacker only needs the target feature's name (which may leak through SDKs shared across projects). Impact is limited to information disclosure (CVSS 4.0 5.3, PR:L, no integrity or availability effect); the vendor fixed it in 8.0.3 and no public exploit or CISA KEV entry was identified at time of analysis.
RemediationAI
Upgrade to Unleash 8.0.3 or later - the vendor-released fix is tagged at https://github.com/Unleash/unleash/releases/tag/v8.0.3 and the code change is commit 2dc6ac0e8ba524ec7a2e9bc96a0e01d9d6f5a35a (see https://github.com/Unleash/unleash/security/advisories/GHSA-8xcj-9hfr-fh9j), which enforces validateFeatureBelongsToProject on the source feature before cloning and stops error responses from disclosing which project owns a feature name. If immediate upgrade is not possible, compensating controls should target the prerequisites: restrict project-level create/clone permissions to a minimal trusted set of users and service accounts (trade-off: slows legitimate cross-project flag creation), avoid predictable or guessable feature names and audit for names reused across public SDK tokens (trade-off: renaming breaks existing client integrations and requires SDK rollout), rotate or narrow SDK tokens that expose feature names across multiple projects (trade-off: can disrupt clients reading those flags), and monitor or temporarily block POST requests matching /api/admin/projects/*/features/*/clone at a reverse proxy or WAF in environments where cross-project cloning is not a legitimate workflow (trade-off: false positives for teams that do use the clone feature and potential breakage of the admin UI). Treat any pre-8.0.3 audit-log entries showing clones into projects the caller was not a member of as evidence of configuration disclosure.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in npm, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Unleash is an open-source feature-management platform (feature flags/toggles) whose admin API is organized around projects; each feature toggle belongs to a project but its name is enforced as globally unique across the instance. In src/lib/features/feature-toggle/feature-toggle-service.ts the cloneFeatureToggle operation is a cross-project copy that must authorize two distinct objects: read/copy rights on the source feature's owning project and create rights on the destination project. Only the destination was validated, so the server-side authorization check was incomplete - the classic CWE-639 authorization-bypass-through-user-controlled-key pattern, where the client-supplied featureName resolves to an object outside the caller's authorization scope. The upstream fix adds an explicit call to featureService.validateFeatureBelongsToProject({ featureName, projectId }, false) in the controller before the clone proceeds, ensuring the referenced feature actually belongs to the project path being authorized; the same commit also parameterizes that helper with exposeExistingFeature so the API no longer returns an error message naming the project that already owns a feature name (an enumeration side channel). The CPE cpe:2.3:a:unleash:unleash:*:*:*:*:*:*:*:* reflects that all pre-8.0.3 releases are in scope. The assessor's authoritative CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N) confirms an authenticated, network-reachable, low-privilege disclosure primitive with no write or availability impact.
Know when Unleash 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 low-priv user (PR:L) exploits an authorization gap over the network with no interaction; impact is limited confidentiality disclosure of feature config only, so C:L and I/A:N.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Unleash is an open-source feature management platform. Prior to 8.0.3, cloneFeatureToggle and POST /api/admin/projects/:projectId/features/:featureName/clone authorize creation in the destination project but do not verify access to the source project. Because feature names are globally unique, a user with create or clone permission in one project who knows or guesses another project's feature name can copy that feature into the authorized project and inspect its strategy parameters, constraints, variants, and variant payloads. This issue is fixed in version 8.0.3.
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
Stack exhaustion denial-of-service in Unleash's OpenAPI validation middleware allows unauthenticated network attackers t
Server-Side Request Forgery in Unleash's addon and integration subsystem (versions prior to 7.5.2, 7.6.5, and 8.0.2) all
Authenticated users who hold the UPDATE_FEATURE_STRATEGY permission in any single project can reorder the activation str
Process-wide Mustache HTML escaping is permanently disabled in Unleash (all versions prior to 8.0.3) from the first mome
Authenticated users of Unleash (the open-source feature management platform) can bypass project-scoped authorization and
Unleash deployments prior to 8.0.3 render the change-request approval email template with Mustache triple-stash syntax,
EUVD-2026-84863
GHSA-8xcj-9hfr-fh9j
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB