Skip to main content

seroval CVE-2026-116584

| EUVDEUVD-2026-110463 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-10-26 GitHub_M GHSA-wp97-x4hv-qvhp
7.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify service decoding bodies with fromJSON
  2. Delivery
    Craft tiny payload with array node length={length:1e9}
  3. Exploit
    Submit unauthenticated request
  4. Execution
    Decoder allocates/iterates on forged length
  5. Impact
    Process memory exhausted or thread blocked

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

Exploitable only when the application passes untrusted, attacker-controlled input to seroval's fromJSON or fromCrossJSON (e.g. decoding request bodies) before any application-level validation runs, on affected versions 1.4.1 through 1.6.7. The concrete trigger is an array/Set/Map/sequence/stream node whose element list (the a, keys, or entry key/value lists) is replaced by a non-array array-like object such as {"length": 2000000} or {"length": "Infinity"}, causing allocation and loop count to follow the forged length rather than actual payload data. No authentication or user interaction is required (PR:N/UI:N). The limiting factor is deployment: services that never feed these functions untrusted input, or that have already upgraded to 1.6.8 (which rejects non-array lists with SerovalMalformedNodeError), are not exposed; the advisory states there is no workaround other than upgrading.

Impact

Signals are mostly consistent and point to a genuine but bounded availability problem rather than a critical emergency. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, base 7.5) and CWE-770 describe a remote, unauthenticated, low-complexity resource-exhaustion flaw with availability-only impact - no confidentiality or integrity loss. EPSS is low at 0.36% (30th percentile), and the CVE is NOT on CISA KEV, so there is no evidence of active or widespread exploitation; this reads as a latent DoS, not a mass-exploited one. Counterbalancing the low EPSS, the GHSA advisory and the fix commit (including a regression test that tampers an array node's a to {length: 2_000_000} / {length: 'Infinity'}) make the trigger well understood and trivial to reproduce, so weaponization is easy for anyone who reads the public patch. The vuln.today Decision label is 'this_week', consistent with a real but non-emergency priority. No SSVC decision string (exploitation/automatable/technical-impact) is supplied in the input, so that framework cannot be cited directly. Net: prioritize patching this week for any service that deserializes untrusted input with seroval; it is a real, easily triggered DoS, but not a high-urgency actively-exploited case.

Exploit ScenarioDerived

An application uses seroval's fromJSON or fromCrossJSON to decode an attacker-supplied request body before running its own validation. The attacker sends a small crafted payload in which an array node's element list is a non-array object such as {"length": 1e9}, so the attacker-controlled length drives memory allocation and decoder iterations independently of payload size. A public PoC reference exists in the form of the fix commit's regression test demonstrating the tampered-length payload; it is not packaged as a standalone working exploit. Given AV:N/AC:L/PR:N, a single unauthenticated request can exhaust process memory or block the event-loop thread indefinitely.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 28, 2026

Denial of service in the seroval npm package (versions 1.4.1 through 1.6.7) lets an unauthenticated remote attacker who can get a crafted payload into fromJSON or fromCrossJSON exhaust process memory or block the decoding thread indefinitely. The flaw is a residual bypass of the fix for CVE-2026-23957, because the deserializer still accepted an array-like object such as {"length":2000000} in place of a genuine element array, so allocation and loop counts followed the forged length rather than the actual bytes on the wire. It is fixed in 1.6.8; there is no confirmed active exploitation (not in CISA KEV, no public exploit identified at time of analysis) and EPSS is low at 0.36% (30th percentile), so exposure depends almost entirely on whether a service feeds untrusted input to these decoders.

RemediationAI

Vendor-released patch: upgrade to seroval 1.6.8, which rejects any node whose element list is not a genuine array and throws SerovalMalformedNodeError; the release is available at https://github.com/lxsmnsyc/seroval/releases/tag/seroval@1.6.8 and the change is in commit cdcee3e3bc384ee844360844f8ea98fd2b275d69. The advisory explicitly states there is no workaround - upgrading to 1.6.8 is the only complete fix - so treat version pinning, transitive dependency auditing and SBOM checks for seroval 1.4.1 through 1.6.7 as the priority. Where upgrading is not immediately possible, the practical compensating control is to stop routing untrusted input into fromJSON or fromCrossJSON at all: enforce a hard request-body size limit and a schema/type check on decoded structures before deserialization, and terminate any request whose payload nests array, Set, Map, sequence or stream nodes whose element lists are not real arrays; these reduce but do not eliminate exposure because the attack payload is tiny, and the guard must sit at the application layer ahead of the vulnerable decoder. Because the failure mode is per-process (memory exhaustion, event-loop blocking), running the decoder behind a worker with a memory cap and execution timeout limits blast radius, at the cost of added architectural complexity and per-request latency.

Affected VersionsENISA

seroval 1.4.1, < 1.6.8

Affected Packages

npm seroval fix: 1.6.8

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

seroval is a JavaScript/TypeScript library that stringifies and revives values beyond what JSON.stringify can represent - Sets, Maps, streams, sequences and cyclic references - using a compact node format with a toJSON/fromJSON pair and a toCrossJSON/fromCrossJSON pair for cross-realm transfer. Each node carries element lists (the array node's a, a Set's a, a Map's e.k and e.v, object property keys, sequence and stream items) that the deserializer walks. Root cause is CWE-770, Allocation of Resources Without Limits or Throttling: the decoder trusted the length property of whatever object was in the element-list slot instead of verifying it was a real array, so a non-array array-like such as {"length": 2_000_000}, {"length": "Infinity"}, negative or fractional values drove preallocation and iteration with no corresponding data received. The upstream commit cdcee3e3bc384ee844360844f8ea98fd2b275d69 adds a validateNodeList() helper that throws SerovalMalformedNodeError when the list fails Array.isArray(), applied to array, Set, Map, object-record, sequence and stream deserialization paths. The prior change in 1.4.1 addressed the same class of issue (GHSA-66fc-rw6m-c2q6 / CVE-2026-23957) but did not cover these node types, which is why this is described as a residual bypass.

Know when Seroval 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

Vendor (GitHub_M) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 7.5 HIGH

Unauthenticated remote request to a service decoding untrusted input triggers the flaw with no interaction (AV:N/AC:L/PR:N/UI:N); impact is availability-only resource exhaustion, so C:N/I:N/A:H.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Red Hat 7.5 HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

2
Patch available
Oct 26, 2026 - 22:03 EUVD
CVE Published
Oct 26, 2026 - 20:52 cve.org
HIGH 7.5

DescriptionCVE.org

Seroval facilitates JavaScript value stringification, including complex structures beyond JSON.stringify capabilities. From 1.4.1 until 1.6.8, fromJSON and fromCrossJSON do not require an array node's element list to be an actual array. A small crafted payload can supply an attacker-controlled length that determines memory allocation and decoder iterations independently of payload size, allowing an unauthenticated request to exhaust the process or block its thread. This issue is a residual bypass of the remediation for CVE-2026-23957. This issue is fixed in version 1.6.8.

Executive ViewAI

Why It Matters

The seroval npm package, used for deserialization in various Node.js applications, contains a high-severity denial-of-service vulnerability (CVE-2026-116584) that allows an unauthenticated attacker to exhaust server memory or block processing by sending crafted input to the fromJSON or fromCrossJSON functions. This affects any service that processes untrusted data through these decoders, potentially causing service outages or degraded performance. Leadership should prioritize patching because exploitation is trivial if such a service is exposed, and the impact could disrupt business operations.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 70% exploitable
Prevalence
Medium
JavaScript serialization library common in the Solid.js ecosystem, moderate footprint
Threat Intel
1
1 source
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2026-104846 CRITICAL POC
9.8 Oct 02

Deserialization of attacker-controlled JSON in plugin-capable Seroval releases 0.12.0 through 1.6.1 lets a remote unauth

CVE-2026-116581 HIGH
7.5 Oct 26

Deserialization in Seroval prior to 1.6.8 accepts sequence nodes whose done and throw indices are unvalidated, so a craf

CVE-2026-104845 HIGH POC
7.5 Oct 02

Denial of service in Seroval versions prior to 1.6.3 allows unauthenticated remote attackers to exhaust CPU and memory b

CVE-2026-23737 HIGH POC
7.5 Jan 21

Arbitrary code execution in Seroval versions 1.4.0 and below allows authenticated attackers to execute malicious JavaScr

CVE-2026-23957 HIGH
7.5 Jan 22

Seroval versions 1.4.0 and below are vulnerable to denial of service through malformed deserialization payloads that spe

CVE-2026-24006 HIGH
7.5 Jan 22

Seroval versions 1.4.0 and below are vulnerable to denial of service attacks due to unbounded recursion when serializing

CVE-2026-23956 HIGH
7.5 Jan 22

Seroval versions 1.4.0 and below allow remote attackers to cause denial of service through maliciously crafted RegExp pa

CVE-2026-116580 HIGH
7.3 Oct 26

Seroval deserialization can invoke attacker-chosen callables when an application passes untrusted input to fromJSON and

CVE-2026-23736 HIGH
7.3 Jan 21

Seroval is affected by improperly controlled modification of object prototype attributes (prototype pollution) (CVSS 7.3

CVE-2026-116583 MEDIUM
5.3 Oct 26

Code injection in the Seroval JavaScript serialization library 1.6.0 through 1.6.10 lets attacker-controlled text become

CVE-2026-116582 MEDIUM
4.7 Oct 26

Script injection in seroval's JavaScript-output serializers lets a RegExp whose source contains '<' terminate an HTML <s

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy