Every CVE Search/ Get API key

CVE-2026-81176

Svelte devalue: DoS via malformed input

5.3 MediumFix available

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.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
Low

Exploit likelihood

0.51%Unchanged since Sep 17, 2026
90%50%10%1%

What each source reports

CVE List Score used 5.3

Svelte devalue: DoS via malformed input

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.

Record
CVE-2026-81176
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Weakness
CWE-770
Updated
2026-11-02
EUVDEUVD-2026-80943 5.3

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.

Record
EUVD-2026-80943
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Updated
2026-11-02
GitHub AdvisoriesGHSA-33hq-fvwr-56pm 1.7

devalue affected by CPU and memory amplification from sparse arrays

Under certain circumstances, serializing sparse arrays using uneval or stringify could cause CPU and/or memory exhaustion. When this occurs on the server, it results in a DoS. This is extremely difficult to take advantage of in practice, as an attacker would have to manage to create a sparse array on the server — which is impossible in every mainstream wire format — and then that sparse array would have to be run through uneval or stringify.

Record
GHSA-33hq-fvwr-56pm
CVSS 4.0
1.7 LowCVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:U
Weakness
CWE-770
Updated
2026-11-02
GitHub AdvisoriesGHSA-8qm3-746x-r74r 2.1

devalue `uneval`ed code can create objects with polluted prototypes when `eval`ed

Under certain circumstances, unevaling untrusted data can produce output code that will create objects with polluted prototypes when later evaled, meaning the output data can be a different shape from the input data.

Record
GHSA-8qm3-746x-r74r
CVSS 4.0
2.1 LowCVSS:4.0/AV:N/AC:H/AT:P/PR:H/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N
Weakness
CWE-1321
Updated
2026-11-02
GitHub AdvisoriesGHSA-9rgm-9g3h-6x36 5.3

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 [email protected].

Record
GHSA-9rgm-9g3h-6x36
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Weakness
CWE-770
Updated
2026-11-02
GitHub AdvisoriesGHSA-mwv9-gp5h-frr4 2.7

Sveltejs devalue's `devalue.parse` and `devalue.unflatten` emit objects with `__proto__` own properties

In some circumstances, devalue.parse and devalue.unflatten could emit objects with __proto__ own properties. This in and of itself is not a security vulnerability (and is possible with, for example, JSON.parse as well), but it can result in prototype injection if downstream code handles it incorrectly:

const result = devalue.parse(/* input creating an object with a __proto__ property */);
const target = {};
Object.assign(target, result); // target's prototype is now polluted
Record
GHSA-mwv9-gp5h-frr4
CVSS 4.0
2.7 LowCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:U
Weakness
CWE-1321
Updated
2026-11-02
Show 18 moreShow less
NVD 5.3

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.

Record
CVE-2026-81176
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Weakness
CWE-770
Updated
2026-11-02
OSV 5.3

Svelte devalue: DoS via malformed input

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.

Record
CVE-2026-81176
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Weakness
CWE-770
Updated
2026-11-02
OSVGHSA-33hq-fvwr-56pm 1.7

devalue affected by CPU and memory amplification from sparse arrays

Under certain circumstances, serializing sparse arrays using uneval or stringify could cause CPU and/or memory exhaustion. When this occurs on the server, it results in a DoS. This is extremely difficult to take advantage of in practice, as an attacker would have to manage to create a sparse array on the server — which is impossible in every mainstream wire format — and then that sparse array would have to be run through uneval or stringify.

Record
GHSA-33hq-fvwr-56pm
CVSS 4.0
1.7 LowCVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:U
Weakness
CWE-770
Updated
2026-11-02
OSVGHSA-8qm3-746x-r74r 2.1

devalue `uneval`ed code can create objects with polluted prototypes when `eval`ed

Under certain circumstances, unevaling untrusted data can produce output code that will create objects with polluted prototypes when later evaled, meaning the output data can be a different shape from the input data.

Record
GHSA-8qm3-746x-r74r
CVSS 4.0
2.1 LowCVSS:4.0/AV:N/AC:H/AT:P/PR:H/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N
Weakness
CWE-1321
Updated
2026-11-02
OSVGHSA-9rgm-9g3h-6x36 5.3

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 [email protected].

Record
GHSA-9rgm-9g3h-6x36
CVSS 3.1
5.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Weakness
CWE-770
Updated
2026-11-02
OSVGHSA-mwv9-gp5h-frr4 2.7

Sveltejs devalue's `devalue.parse` and `devalue.unflatten` emit objects with `__proto__` own properties

In some circumstances, devalue.parse and devalue.unflatten could emit objects with __proto__ own properties. This in and of itself is not a security vulnerability (and is possible with, for example, JSON.parse as well), but it can result in prototype injection if downstream code handles it incorrectly:

const result = devalue.parse(/* input creating an object with a __proto__ property */);
const target = {};
Object.assign(target, result); // target's prototype is now polluted
Record
GHSA-mwv9-gp5h-frr4
CVSS 4.0
2.7 LowCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:U
Weakness
CWE-1321
Updated
2026-11-02
OSVCLSA-2026-1777250304 No score

TuxCare security update for devalue (2 CVEs)

TuxCare rebuilt devalue to address 2 CVEs. Fixed in 4.3.3-tuxcare.3.

Record
CLSA-2026-1777250304
Updated
2026-11-02
OSVCLSA-2026-1786355768 No score

TuxCare security update for devalue (2 CVEs)

TuxCare rebuilt devalue to address 2 CVEs. Fixed in 2.0.1-tuxcare.4.

Record
CLSA-2026-1786355768
Updated
2026-11-02
OSVCLSA-2026-1786357331 No score

TuxCare security update for devalue (5 CVEs)

TuxCare rebuilt devalue to address 5 CVEs. Fixed in 4.3.2-tuxcare.1.

Record
CLSA-2026-1786357331
Updated
2026-11-02
OSVCLSA-2026-1787147253 No score

TuxCare security update for devalue (1 CVE)

TuxCare rebuilt devalue to address 1 CVE. Fixed in 4.3.2-tuxcare.2.

Record
CLSA-2026-1787147253
Updated
2026-11-02
OSVCLSA-2026-1789752547 No score

TuxCare security update for devalue (3 CVEs)

TuxCare rebuilt devalue to address 3 CVEs. Fixed in 4.3.3-tuxcare.5.

Record
CLSA-2026-1789752547
Updated
2026-11-02
OSVCLSA-2026-1790161447 No score

TuxCare security update for devalue (2 CVEs)

TuxCare rebuilt devalue to address 2 CVEs. Fixed in 4.3.2-tuxcare.3.

Record
CLSA-2026-1790161447
Updated
2026-11-02
OSVCLSA-2026-1790605435 No score

TuxCare security update for devalue (2 CVEs)

TuxCare rebuilt devalue to address 2 CVEs. Fixed in 4.3.0-tuxcare.2.

Record
CLSA-2026-1790605435
Updated
2026-11-02
OSVCLSA-2026-1790606671 No score

TuxCare security update for devalue (2 CVEs)

TuxCare rebuilt devalue to address 2 CVEs. Fixed in 4.3.1-tuxcare.2.

Record
CLSA-2026-1790606671
Updated
2026-11-02
OSVCLSA-2026-1792231082 No score

TuxCare security update for devalue (1 CVE)

TuxCare rebuilt devalue to address 1 CVE. Fixed in 5.9.0-tuxcare.5.

Record
CLSA-2026-1792231082
Updated
2026-11-02
OSVCLSA-2026-1792231273 No score

TuxCare security update for devalue (2 CVEs)

TuxCare rebuilt devalue to address 2 CVEs. Fixed in 5.9.1-tuxcare.2.

Record
CLSA-2026-1792231273
Updated
2026-11-02
OSVCLSA-2026-1792369063 No score

TuxCare security update for devalue (7 CVEs)

TuxCare rebuilt devalue to address 7 CVEs. Fixed in 5.8.2-tuxcare.1.

Record
CLSA-2026-1792369063
Updated
2026-11-02
OSVCLSA-2026-1792446921 No score

TuxCare security update for devalue (6 CVEs)

TuxCare rebuilt devalue to address 6 CVEs. Fixed in 5.8.1-tuxcare.1.

Record
CLSA-2026-1792446921
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
devalue
npm
through 5.6.2
5.6.3
devalue
npm
before 5.9.1
5.9.1
devalue
npm
4.0.0 up to 5.6.4
5.6.4
devalue
TuxCare:npm
4.3.3-tuxcare.0 up to 4.3.3-tuxcare.3, plus listed versions
4.3.34.3.3-tuxcare.14.3.3-tuxcare.2
4.3.3-tuxcare.3
devalue
TuxCare:npm
2.0.1-tuxcare.0 up to 2.0.1-tuxcare.4, plus listed versions
2.0.12.0.1-tuxcare.12.0.1-tuxcare.22.0.1-tuxcare.3
2.0.1-tuxcare.4
devalue
TuxCare:npm
From an advisory covering 2 CVEs
4.3.2-tuxcare.0 up to 4.3.2-tuxcare.1, plus listed versions
4.3.2
4.3.2-tuxcare.1
devalue
TuxCare:npm
4.3.2-tuxcare.0 up to 4.3.2-tuxcare.2, plus listed versions
4.3.24.3.2-tuxcare.1
4.3.2-tuxcare.2
devalue
TuxCare:npm
4.3.3-tuxcare.0 up to 4.3.3-tuxcare.5, plus listed versions
4.3.34.3.3-tuxcare.14.3.3-tuxcare.24.3.3-tuxcare.34.3.3-tuxcare.4
4.3.3-tuxcare.5
devalue
TuxCare:npm
From an advisory covering 2 CVEs
4.3.2-tuxcare.0 up to 4.3.2-tuxcare.3, plus listed versions
4.3.24.3.2-tuxcare.14.3.2-tuxcare.2
4.3.2-tuxcare.3
devalue
TuxCare:npm
From an advisory covering 2 CVEs
4.3.0-tuxcare.0 up to 4.3.0-tuxcare.2, plus listed versions
4.3.04.3.0-tuxcare.1
4.3.0-tuxcare.2
Show 7 moreShow less
Affected packages
PackageAffectedFixed
devalue
TuxCare:npm
From an advisory covering 2 CVEs
4.3.1-tuxcare.0 up to 4.3.1-tuxcare.2, plus listed versions
4.3.14.3.1-tuxcare.1
4.3.1-tuxcare.2
devalue
TuxCare:npm
5.9.0-tuxcare.0 up to 5.9.0-tuxcare.5, plus listed versions
5.9.05.9.0-tuxcare.15.9.0-tuxcare.25.9.0-tuxcare.35.9.0-tuxcare.4
5.9.0-tuxcare.5
devalue
TuxCare:npm
5.9.1-tuxcare.0 up to 5.9.1-tuxcare.2, plus listed versions
5.9.15.9.1-tuxcare.1
5.9.1-tuxcare.2
devalue
TuxCare:npm
From an advisory covering 2 CVEs
5.8.2-tuxcare.0 up to 5.8.2-tuxcare.1, plus listed versions
5.8.2
5.8.2-tuxcare.1
devalue
TuxCare:npm
From an advisory covering 2 CVEs
5.8.1-tuxcare.0 up to 5.8.1-tuxcare.1, plus listed versions
5.8.1
5.8.1-tuxcare.1
devalue
npm
before 5.6.3
5.6.3
devalue
npm
before 5.9.2
5.9.2

History

History
RecordedChangedSources
affected, facts
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-81176 is a medium vulnerability (CVSS 5.3) in Sveltejs Devalue, published February 19, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.51%, the 43rd percentile. Fixed in devalue 5.6.3.

References

Show 12 moreShow less
MoveEnter Open