CVE-2026-81176
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.
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
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 Medium
CVSS: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 Medium
CVSS: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 Low
CVSS: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 Low
CVSS: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 Medium
CVSS: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 Low
CVSS: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 Medium
CVSS: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 Medium
CVSS: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 Low
CVSS: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 Low
CVSS: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 Medium
CVSS: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 Low
CVSS: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
| Package | Affected | Fixed |
|---|---|---|
devaluenpm |
through 5.6.2 | 5.6.3 |
devaluenpm |
before 5.9.1 | 5.9.1 |
devaluenpm |
4.0.0 up to 5.6.4 | 5.6.4 |
devalueTuxCare: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 |
devalueTuxCare: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 |
devalueTuxCare: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 |
devalueTuxCare: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 |
devalueTuxCare: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 |
devalueTuxCare: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 |
devalueTuxCare: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
| Package | Affected | Fixed |
|---|---|---|
devalueTuxCare: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 |
devalueTuxCare: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 |
devalueTuxCare: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 |
devalueTuxCare: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 |
devalueTuxCare: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 |
devaluenpm |
before 5.6.3 | 5.6.3 |
devaluenpm |
before 5.9.2 | 5.9.2 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE 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
github.com/sveltejs/devalue/security/advisories/GHSA-9rgm-9g3h-6x36
github.com/sveltejs/devalue/commit/8b2a4562c446d7c36d9d629778079a5fae4243e1
github.com/sveltejs/devalue/releases/tag/v5.9.2
github.com/sveltejs/devalue/security/advisories/GHSA-33hq-fvwr-56pm
github.com/sveltejs/devalue/commit/819f1ac7475ab37547645cfb09bf2f678a799cf0
github.com/sveltejs/devalue/releases/tag/v5.6.3
Show 12 moreShow less
github.com/advisories/GHSA-33hq-fvwr-56pm
github.com/sveltejs/devalue/security/advisories/GHSA-8qm3-746x-r74r
github.com/sveltejs/devalue/commit/0f04d4d678eac39ad5d7a07d1956275d7874e81c
github.com/advisories/GHSA-8qm3-746x-r74r
nvd.nist.gov/vuln/detail/CVE-2026-81176
github.com/advisories/GHSA-9rgm-9g3h-6x36
github.com/sveltejs/devalue/security/advisories/GHSA-mwv9-gp5h-frr4
github.com/sveltejs/devalue/releases/tag/v5.6.4
github.com/sveltejs/devalue/commit/87c1f3ce3759765a061cfe34843ecc4b0711ba8d
github.com/advisories/GHSA-mwv9-gp5h-frr4
github.com/CVEProject/cvelistV5/tree/main/cves/2026/81xxx/CVE-2026-81176.json
github.com/sveltejs/devalue