CVE-2026-81176: Svelte devalue: DoS via malformed input
Impact
devalue.parse prior to version 5.9.2 fails to reject out-of-bounds indices. Specially-crafted payloads can exploit this to cause devalue to alternate between different array representations, resulting in work that is quadratic with payload size.
Applications are potentially affected if they call devalue.parse with untrusted data.
Patches
The bug is fixed in devalue@5.9.2.
Other sources
Svelte devalue is a JavaScript library that serializes values into strings when JSON.stringify isn't sufficient for the job. Prior to 5.9.2, devalue.parse does not reject out-of-bounds indices that are greater than or equal to values.length in src/parse.js. A specially crafted untrusted payload can make the parser alternate between array representations, producing quadratic work as the payload grows and causing denial of service in applications that parse untrusted devalue data. This issue is fixed in version 5.9.2.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
npm/devalueto a version that resolves this vulnerability.Fixed in 5.9.2 - Upgrade
Upgrade
devalueto a version that resolves this vulnerability.Fixed in 5.9.2
Event History
Frequently Asked Questions
Which applications are exposed to this denial-of-service issue?
Applications using devalue versions prior to 5.9.2 are exposed if they call devalue.parse on untrusted devalue data. The impact is denial of service through excessive parser work.
What does an attacker need to exploit the issue?
An attacker needs to supply a specially crafted untrusted payload that reaches devalue.parse. No privileges or user interaction are required according to the provided severity vector.
Are applications affected merely by installing devalue?
The described vulnerable condition is parsing untrusted devalue data with devalue.parse. The data does not establish that applications which never parse untrusted input are affected.
What is the remediation?
Upgrade devalue to version 5.9.2, which fixes the handling of out-of-bounds indices. If an immediate upgrade is not possible, avoid passing untrusted payloads to devalue.parse.