Every CVE Search/ Get API key

CVE-2026-116581

Seroval: fromJSON deserializer trusts sequence doneAt (unauthenticated event-loop DoS)

7.5 HighFix available

Seroval facilitates JavaScript value stringification, including complex structures beyond JSON.stringify capabilities. Prior to 1.6.8, fromJSON and fromCrossJSON do not validate a sequence node's done index. A crafted done index can create an iterator that never finishes when application code consumes it to completion. An unauthenticated request to a service that deserializes untrusted input can therefore block the event loop, exhaust process memory, or make the service unavailable. This issue is fixed in version 1.6.8.

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
High

Exploit likelihood

0.45%Unchanged since Oct 27, 2026
90%50%10%1%

What each source reports

CVE List Score used 7.5

Seroval: fromJSON deserializer trusts sequence doneAt (unauthenticated event-loop DoS)

Seroval facilitates JavaScript value stringification, including complex structures beyond JSON.stringify capabilities. Prior to 1.6.8, fromJSON and fromCrossJSON do not validate a sequence node's done index. A crafted done index can create an iterator that never finishes when application code consumes it to completion. An unauthenticated request to a service that deserializes untrusted input can therefore block the event loop, exhaust process memory, or make the service unavailable. This issue is fixed in version 1.6.8.

Record
CVE-2026-116581
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-835, CWE-1284
Updated
2026-11-02
EUVDEUVD-2026-110367 7.5

Seroval facilitates JavaScript value stringification, including complex structures beyond JSON.stringify capabilities. Prior to 1.6.8, fromJSON and fromCrossJSON do not validate a sequence node's done index. A crafted done index can create an iterator that never finishes when application code consumes it to completion. An unauthenticated request to a service that deserializes untrusted input can therefore block the event loop, exhaust process memory, or make the service unavailable. This issue is fixed in version 1.6.8.

Record
EUVD-2026-110367
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
GitHub AdvisoriesGHSA-97r2-qh9m-474h 7.5

Seroval: fromJSON deserializer trusts node-supplied array length and sequence doneAt (unauthenticated event-loop DoS)

Summary

fromJSON and fromCrossJSON used two node fields without checking them.

  • An array node's element list was not checked to be an array. A small payload could set the length the decoder looped over. This part is also tracked in GHSA-wp97-x4hv-qvhp.
  • A sequence node's done index was not checked. A crafted value produced an iterator that never finished.

Impact

A service that passes untrusted input to fromJSON or fromCrossJSON can be made unavailable by an unauthenticated request.

  • The array case blocks the thread while the decoder runs.
  • The sequence case makes any code that reads the resulting iterator to the end run forever.

Patches

Fixed in [email protected].

  • Element lists must be arrays.
  • A sequence node's throw and done indices must be integers from -1 up to the last element index.

Invalid input throws SerovalMalformedNodeError.

Workarounds

None. Upgrade to 1.6.8.

Record
GHSA-97r2-qh9m-474h
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-835, CWE-1284
Updated
2026-11-02
NVD 7.5

Seroval facilitates JavaScript value stringification, including complex structures beyond JSON.stringify capabilities. Prior to 1.6.8, fromJSON and fromCrossJSON do not validate a sequence node's done index. A crafted done index can create an iterator that never finishes when application code consumes it to completion. An unauthenticated request to a service that deserializes untrusted input can therefore block the event loop, exhaust process memory, or make the service unavailable. This issue is fixed in version 1.6.8.

Record
CVE-2026-116581
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-835, CWE-1284
Updated
2026-11-02
OSV 7.5

Seroval: fromJSON deserializer trusts sequence doneAt (unauthenticated event-loop DoS)

Seroval facilitates JavaScript value stringification, including complex structures beyond JSON.stringify capabilities. Prior to 1.6.8, fromJSON and fromCrossJSON do not validate a sequence node's done index. A crafted done index can create an iterator that never finishes when application code consumes it to completion. An unauthenticated request to a service that deserializes untrusted input can therefore block the event loop, exhaust process memory, or make the service unavailable. This issue is fixed in version 1.6.8.

Record
CVE-2026-116581
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-1284, CWE-835
Updated
2026-11-02
OSVGHSA-97r2-qh9m-474h 7.5

Seroval: fromJSON deserializer trusts node-supplied array length and sequence doneAt (unauthenticated event-loop DoS)

Summary

fromJSON and fromCrossJSON used two node fields without checking them.

  • An array node's element list was not checked to be an array. A small payload could set the length the decoder looped over. This part is also tracked in GHSA-wp97-x4hv-qvhp.
  • A sequence node's done index was not checked. A crafted value produced an iterator that never finished.

Impact

A service that passes untrusted input to fromJSON or fromCrossJSON can be made unavailable by an unauthenticated request.

  • The array case blocks the thread while the decoder runs.
  • The sequence case makes any code that reads the resulting iterator to the end run forever.

Patches

Fixed in [email protected].

  • Element lists must be arrays.
  • A sequence node's throw and done indices must be integers from -1 up to the last element index.

Invalid input throws SerovalMalformedNodeError.

Workarounds

None. Upgrade to 1.6.8.

Record
GHSA-97r2-qh9m-474h
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-1284, CWE-835
Updated
2026-11-02
OSVCLSA-2026-1793699098 No score

TuxCare security update for seroval (2 CVEs)

TuxCare rebuilt seroval to address 2 CVEs. Fixed in 1.5.6-tuxcare.4.

Record
CLSA-2026-1793699098
Updated
2026-11-03

Affected products

Affected packages

Affected packages
PackageAffectedFixed
seroval
npm
through 1.6.7
1.6.8
seroval
TuxCare:npm
From an advisory covering 2 CVEs
1.5.6-tuxcare.0 up to 1.5.6-tuxcare.4, plus listed versions
1.5.61.5.6-tuxcare.11.5.6-tuxcare.21.5.6-tuxcare.3
1.5.6-tuxcare.4
seroval
npm
before 1.6.8
1.6.8

History

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

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

In short

CVE-2026-116581 is a high vulnerability (CVSS 7.5) in Lxsmnsyc Seroval, published October 26, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.45%, the 39th percentile. Fixed in seroval 1.6.8.

References

MoveEnter Open