CVE-2026-104846: Seroval Promise thenable code execution via fromJSON deserialization

CVE-2026-104846 · Severity: critical · CVSS 9.8 · Published 2026-10-02

Seroval is a JavaScript library that serializes and deserializes complex JavaScript objects beyond what standard JSON supports. A flaw in how it deserializes Promise objects allows an attacker to inject malicious code that executes when a crafted JSON payload is deserialized, potentially giving the attacker complete control over the application. Applications using Seroval's plugin system are vulnerable unless they upgrade.

Technologies: seroval (npm). Vendors: npm.

Quick answers

Is CVE-2026-104846 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-104846 being exploited in the wild.
How severe is CVE-2026-104846?
Critical severity, with a CVSS score of 9.8, published 2 October 2026.
Which products and versions are affected?
seroval (npm) >= 0.12.0, <= 1.6.0, SEMVER:introduced=0.12.0,fixed=1.6.2; Seroval 0.12.0 through 1.6.1.
Is there a fix for CVE-2026-104846?
Yes. seroval (npm): upgrade to 1.6.2 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-104846 attacked?
It is attacked over the network.
Am I affected by CVE-2026-104846?
Check whether you run seroval (npm) or Seroval at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • seroval (npm): upgrade to 1.6.2 or later
    npm install seroval@1.6.2

Technical details

The vulnerability exists in the fromJSON deserialization function when processing fulfilled Promise control nodes. A plugin-produced callable can be passed as a thenable to the native Promise resolver, triggering ECMAScript thenable assimilation which invokes the callable unexpectedly. This bypasses the type-confusion remediation from CVE-2026-59940 (v1.5.3) because the invocation occurs through native Promise settlement after value deserialization completes.

Affected products

  • Seroval Seroval 0.12.0 through 1.6.1

Identifiers

  • CVE-2026-104846
  • GHSA-p6vx-979v-rg4c

Timeline

  • 2026-09-19: disclosed
  • 2026-08-25: patched: Fix committed; version 1.6.2 released
  • 2026-10-02: advisory

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.