Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessInfluence server-side data path
-
DeliveryInduce sparse array creation on server
-
ExploitValue passed to devalue uneval/stringify
-
ExecutionCPU/memory amplification exhausts process
-
ImpactNode.js service denial
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that a true JavaScript sparse array (an array with holes/empty slots) be created on the server AND then serialized via devalue's uneval or stringify functions. The vendor explicitly states the chief limiting factor: mainstream wire formats (JSON, form/query encoding) cannot represent sparse arrays, so an attacker cannot simply submit one over the network - the sparse array must arise from server-side logic the attacker can influence. There is no authentication requirement in the supplied PR:N vector, but the practical barrier (reaching a code path that both constructs a sparse array server-side and passes it to devalue serialization) is substantial and application-specific. Affected: devalue <= 5.6.2; the only complete fix is upgrading to 5.6.3. |
| Impact | The signals point to a severity-vs-real-risk gap. The input CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) with VA:H yields an 8.7 (High) score driven entirely by availability impact, but the advisory itself states exploitation is 'extremely difficult to take advantage of in practice' because an attacker must first get a sparse array created on the server - something the GHSA explicitly says is 'impossible in every mainstream wire format' (JSON, form-encoding, query strings, etc. cannot represent array holes) - and that array must then be passed through devalue's uneval or stringify. This precondition is a strong real-world limiter that the input's AC:L/AT:N does not capture; the base vector arguably understates attack requirements. No CISA KEV listing and no EPSS score are provided, and no PoC or exploit reference appears in the input (only vendor/VulnCheck advisories), so there is no public exploit identified at time of analysis and no evidence of active exploitation. The vuln.today decision label is 'this_week' rather than act_now/emergency, consistent with a patchable, non-emergency DoS. Net: this is a legitimate availability bug worth patching on a normal cadence, not a high-urgency actively-exploited threat; the headline 8.7 overstates practical risk given the sparse-array precondition. |
| Exploit ScenarioDerived | An application using devalue serializes server-side state to the client with uneval or stringify; if an attacker can influence that state such that a genuine JavaScript sparse array (one with holes) is constructed on the server, serializing it triggers CPU and/or memory amplification that exhausts the Node.js process and denies service. In practice this requires a code path that both creates a sparse array server-side and feeds it to devalue, since standard wire formats cannot transmit sparse arrays. No public exploit code is identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 08, 2026
The npm package devalue (all versions through 5.6.2) can exhaust CPU and memory when it serializes a true sparse array through its uneval or stringify functions, producing a denial of service wherever such an array reaches a server-side serialization call. Practical exploitability is low despite the 8.7 CVSS 4.0 base score: JSON and form/query encodings cannot express an array with holes, so the sparse array must first be constructed by server-side application logic the attacker can influence, which is why our independent assessment scores the issue AC:H. No public exploit code has been identified at time of analysis, and the flaw is fixed in 5.6.3.
RemediationAI
Vendor-released patch: devalue 5.6.3 - upgrade from any version at or below 5.6.2 as the primary and complete fix, per the advisory at https://github.com/sveltejs/devalue/security/advisories/GHSA-33hq-fvwr-56pm; the corresponding commit is https://github.com/sveltejs/devalue/commit/819f1ac7475ab37547645cfb09bf2f678a799cf0 and the vendor's position is that updating is the only complete remedy. If the upgrade must be staged, the actionable interim control is to remove the precondition itself: audit server-side code for arrays whose length or index comes from request-derived values (for example new Array(n) or assignments to arr.length) and normalize any untrusted array into a dense copy - Array.from, spread, or an explicit loop over known indices - before it reaches uneval or stringify. The trade-off is that this only protects serialization call sites you actually control and adds a copy/allocation cost proportional to array length, so it must be applied consistently at every call site rather than centrally. Request-level filtering and WAF rules cannot mitigate the payload because mainstream wire formats cannot represent a sparse array in transit, so there is no signature to match; the serialization call itself must be changed. Prioritize the upgrade in the coming week's patch cycle, with the highest urgency for services where user input shapes array sizes and the resulting value is serialized for hydration.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
devalue is a small JavaScript value serializer used primarily on the server: uneval emits a JavaScript source string and stringify emits a JSON-like string, and both are commonly used in Svelte/SvelteKit server-side rendering to hand data to the client. The root cause falls under CWE-770 (Allocation of Resources Without Limits or Throttling): when the input is a sparse array - a JavaScript array containing holes or empty slots rather than populated indices - serialization leads to CPU and/or memory amplification. The advisory does not spell out the precise internal mechanism by which a sparse array's shape is translated into that amplification, so the exact loop or allocation behavior is not described in the available sources. The decisive precondition is representational: mainstream wire formats (JSON, form and query encoding) cannot encode a sparse array, so an attacker cannot transmit the malicious structure directly; the array has to be born from server-side logic, for example a length or index derived from request data, and must then be passed unchanged into uneval or stringify. The CVSS 4.0 vector records AV:N/AC:L/PR:N/UI:N with high availability-only impact, while the assessed CVSS 3.1 vector captures the same impact as AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H; the divergence is entirely in attack complexity, reflecting the vendor's own statement that the flaw is extremely difficult to take advantage of in practice rather than any disagreement about the availability-only impact.
Know when Devalue 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:N/VI:N/VA:H/SC:N/SI:N/SA:N
Availability-only DoS over the network with no auth, but AC:H because success depends on a server-side sparse array condition not under the attacker's direct control.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
The devalue package for npm before 5.6.3 can consume excessive CPU and memory when serializing sparse arrays with uneval or stringify. An attacker who manages to get a sparse array created on the server, which mainstream wire formats do not allow, and serialized there can cause a denial of service.
Blast Radius
ecosystem impact- 33 npm packages depend on devalue (2 direct, 31 indirect)
Ecosystem-wide dependent count for version 5.6.3.
Technical POC Analysis
CWE-770 (Allocation of Resources Without Limits or Throttling) in npm package devalue versions through 5.6.2.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
The devalue npm package (versions through 5.6.2) contains a high-severity vulnerability that can cause CPU and memory exhaustion when serializing sparse arrays, leading to potential service outages. This affects any organization using devalue in server-side applications where attackers can indirectly influence array construction. While technical exploitation is challenging as it requires specific application logic, the impact on availability could be significant, disrupting business operations and customer-facing services.
Vendor-released patch: apply devalue 5.6.3 or later. As interim mitigation, validate and sanitize inputs to prevent sparse array construction, and implement resource limits and monitoring for serialization processes.
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
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Related Vulnerabilities in devalue Prototype Pollution and Resource Exhaustion
View all 9Serialization of Node.js Buffer objects in the JavaScript library devalue 5.1.0 through 5.9.2 leaks unrelated process me
In devalue v5.6.3, `devalue.parse` and `devalue.unflatten` were susceptible to prototype pollution via maliciously craft
Denial of service in Svelte devalue library versions 5.1.0 through 5.6.1 allows remote attackers to exhaust CPU and memo
Denial of service in Svelte devalue versions 5.3.0 through 5.6.1 allows remote attackers to exhaust CPU and memory resou
Quadratic-complexity denial of service in the Svelte devalue JavaScript deserializer (all versions prior to 5.9.2) lets
EUVD-2026-119454
GHSA-hf27-79c5-2rv5
NVD
CVE.org
EPSS
Exploit-DB