Skip to main content

Seroval EUVDEUVD-2026-110462

| CVE-2026-116583 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-26 GitHub_M GHSA-f86p-h4j2-7qgj
5.3
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Attacker supplies object with crafted constructor name
  2. Exploit
    App copies untrusted props onto a typed array
  3. Execution
    serialize/crossSerialize emits name as raw JS
  4. Impact
    Script executes in victim's receiving page

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires a specific, non-default application pattern: code that copies untrusted own properties - specifically an own constructor property whose .name is attacker-controlled - onto a typed array, and then passes that array to one of the affected JavaScript-output APIs (serialize, serializeAsync, crossSerialize, crossSerializeAsync, crossSerializeStream, the Serializer class, or compileJSON) in seroval 1.6.0 through 1.6.10. Limiting factors: the vendor calls this property-copying pattern 'unusual'; fromJSON and fromCrossJSON are not affected because they only accept built-in typed-array names; the compactArrayBufferViews option throws a TypeError instead of emitting code; and a victim must load the page that receives the serialized output (UI:P) for the injected script to run.

Impact

This is a genuinely low-to-moderate-priority issue despite the 'script execution' outcome, and the signals are consistent rather than conflicting. The CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:N/UI:P) describes a network-reachable but hard-to-reach flaw: the AC:H and AT:P metrics reflect the vendor's own statement that exploitation requires an unusual application coding pattern, and UI:P requires a victim to load the page that receives the serialized output. EPSS is low at 0.27% (19th percentile), SSVC reports Exploitation: none / Automatable: no / Technical Impact: partial, and the issue is not in CISA KEV - all of which agree with the vendor's self-assessed Low severity. The vuln.today decision label is 'this_month', i.e. patch on a normal cadence, not an emergency. The only upward signal is the qualitative impact (arbitrary JavaScript in the receiving page), but it is gated behind a precondition the vendor explicitly calls 'unusual' (application code copying untrusted own properties, including a constructor property, onto a typed array before serializing). Note one internal tension to verify: the input CVSS 4.0 rates subsequent-system impact as SC:H/SI:H, which is higher than the overall 5.3 Medium score and the vendor's Low rating would suggest - the high subsequent-impact metrics reflect worst-case script execution, not likelihood.

Exploit ScenarioDerived

An application copies attacker-controlled properties from an untrusted object onto a typed array (setting its own constructor property), then serializes that array with seroval's serialize/crossSerialize/compileJSON output to the page. Because the pre-1.6.11 code reads the constructor name from the value's own property rather than the array's real type, the attacker's string is emitted verbatim as executable JavaScript and runs in the browser that receives the output. No weaponized standalone exploit is identified, though the fix commit includes test cases (e.g. payloads like alert(1)// and </script>) that demonstrate the injection technique.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 28, 2026

Code injection in the Seroval JavaScript serialization library 1.6.0 through 1.6.10 lets attacker-controlled text become executable JavaScript in the serializer's output when an application copies an untrusted own constructor property onto a typed array and then passes that array to serialize, serializeAsync, crossSerialize, crossSerializeAsync, crossSerializeStream, the Serializer class, or compileJSON. The vendor rates the result low severity because that property-copying pattern is described as unusual, and the injected script only executes once a victim loads a page that receives the serialized output (CVSS 4.0 AV:N/AC:H/AT:P/PR:N/UI:P with scope change to confidentiality and integrity). There is no confirmed active exploitation (not in CISA KEV; SSVC exploitation: none) and no public exploit identified at time of analysis, with EPSS at 0.27% (19th percentile), and the flaw is fixed in Seroval 1.6.11.

RemediationAI

Vendor-released patch: Seroval 1.6.11. Upgrade the seroval dependency to 1.6.11 or later, which makes the emitted constructor name come from the array's internal type via the TypedArray.prototype[Symbol.toStringTag] getter instead of value.constructor.name, and also applies the real type under compactArrayBufferViews; the release is at https://github.com/lxsmnsyc/seroval/releases/tag/seroval@1.6.11 and the change is visible in commit 1313ebbad9687bc0245e08bfd576376e57e0e5c1, with advisory detail at https://github.com/lxsmnsyc/seroval/security/advisories/GHSA-f86p-h4j2-7qgj. If upgrading is not immediately possible, the vendor's stated workarounds are to avoid copying properties from untrusted objects onto typed arrays, or to delete any own constructor property from a typed array before passing it to a serialization API; both require auditing the calling code, and the second adds a per-value cleanup step on every serialization path and will not help if the copy happens after the check. Enabling compactArrayBufferViews changes the failure mode to a TypeError rather than emitted code, but it alters serialized output for ArrayBuffer views and is therefore only a partial, behavior-changing mitigation, not a substitute for the 1.6.11 upgrade.

Affected VersionsENISA

seroval 1.6.0, < 1.6.11

Affected Packages

npm seroval fix: 1.6.11

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 an npm library for stringifying JavaScript values, including structures JSON.stringify cannot represent, and the affected JavaScript-output APIs emit live code rather than data. Version 1.6.0 changed how the library determines an object's class so that objects carrying their own constructor property serialize correctly, but the typed-array emit paths in createTypedArrayNode and createBigIntTypedArrayNode (packages/seroval/src/core/base-primitives.ts) kept deriving the constructor name from current.constructor.name, and getArrayBufferView in the parser context used current.constructor directly. Because an own property shadows the prototype's accessor, a typed array that received an attacker-supplied constructor object (for example { name: 'alert(1)//' } or { name: '</script>' }) causes that string to be written unescaped into output such as new <attacker string>(...), which the receiving page then evaluates - a code-injection / cross-site scripting class issue tracked as CWE-79 by the CNA and CWE-94 in the GitHub advisory. The triggers are narrow: only applications that copy untrusted properties onto a typed array and then serialize it are exposed; fromJSON and fromCrossJSON are unaffected because they only accept the names of built-in typed arrays, and the compactArrayBufferViews option throws a TypeError instead of emitting code. The 1.6.11 fix replaces the property lookup with the getter behind TypedArray.prototype[Symbol.toStringTag], which reads the array's internal type and cannot be overridden by an own property, and the accompanying regression tests assert that spoofed constructor names never reach the output. The CVSS 4.0 vector carries PR:N (unauthenticated) with AC:H and UI:P, reflecting a remote, unauthenticated but high-complexity path that depends on the victim loading the page that consumes the serialized payload.

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 5.3 MEDIUM
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:P/VC:N/VI:N/VA:N/SC:H/SI:H/SA:N
vuln.today AI 4.7 MEDIUM

AC:H because exploitation depends on an unusual app pattern copying untrusted props onto a typed array; UI:R and S:C because injected script runs in the separate receiving page; C:L/I:L for XSS-level browser impact.

3.1 AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:H/AT:P/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
Red Hat 4.7 MEDIUM

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
High
Subsequent system: Integrity
High
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Oct 26, 2026 - 22:03 EUVD

DescriptionCVE.org

Seroval facilitates JavaScript value stringification, including complex structures beyond JSON.stringify capabilities. From 1.6.0 until 1.6.11, the JavaScript-output APIs derive a typed array's constructor name from a property on the value that can be replaced by an own constructor property. When application code copies untrusted properties onto a typed array and then passes it to serialize, serializeAsync, crossSerialize, crossSerializeAsync, crossSerializeStream, Serializer, or compileJSON, the attacker-controlled name is written as executable JavaScript and can run in the page receiving the output. This issue is fixed in version 1.6.11.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 1 npm packages depend on seroval (1 direct, 0 indirect)

Ecosystem-wide dependent count for version 1.6.0.

Threat Intelligence Overview

EPSS Score
0.3%
Top 81% exploitable
Prevalence
Medium
JavaScript serialization library used across the Solid.js SSR ecosystem
Threat Intel
1
1 source
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

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-116584 HIGH
7.5 Oct 26

Denial of service in the seroval npm package (versions 1.4.1 through 1.6.7) lets an unauthenticated remote attacker who

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-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