← Blog · · df00tech

Critical seroval Deserialization Flaw (CVE-2026-59940) Enabled Attacker-Controlled Server-Side Invocation

breaking ghsa npm CVE-2026-59940

A critical type confusion vulnerability in the popular JavaScript serialization library seroval has been disclosed, tracked as CVE-2026-59940 with a CVSS score of 9.8. According to the GitHub Security Advisory (GHSA-mv8w-475r-vwqw), the flaw resides in seroval.fromJSON(), where Promise control nodes could operate on values pulled from the general deserialization reference table without verifying they were genuine internal promise resolver records.

In applications that deserialize untrusted Seroval JSON with plugins enabled, this allowed attacker-controlled deserialization side effects. Downstream server frameworks that register plugins returning callable wrappers could be tricked into unintended server-side invocation — potentially amounting to remote code execution or equivalent server compromise, depending on exposed application functionality. Notably, the advisory states a concrete downstream impact scenario was privately validated against TanStack Start prior to the fix, and no longer reproduces with the patched version.

Why It Matters

seroval is widely used for serializing complex JavaScript values (including Promises) across server/client boundaries in modern frameworks. A 9.8 CVSS deserialization bug with a documented framework-level exploitation path is significant: any application accepting untrusted Seroval JSON payloads from clients — a common pattern in SSR/streaming frameworks — should treat this as an urgent supply-chain risk, not just a library-internal issue.

What Defenders Should Do Now

  • Identify and inventory any services depending on seroval (directly or transitively via frameworks like TanStack Start), and confirm the version in use.
  • Upgrade to [email protected] or later as soon as possible — this is the vendor-confirmed fix.
  • Where upgrading isn't immediately possible, apply defense-in-depth: restrict accepted Seroval node types for client-to-server payloads, allowlist plugin tags for inbound deserialization, and avoid registering plugins that produce callable or privileged values for untrusted input.
  • Add regression tests confirming deserialization cannot trigger unintended server-side invocation as a side effect.
  • Hunt for anomalous server-side behavior correlated with deserialization endpoints handling Seroval payloads, especially unexpected outbound calls or execution triggered during request parsing.

This is developing, net-new intelligence with a public proof-of-concept status noted (poc-public) but no known ransomware campaign use reported at this time. Full technical exploit details have been withheld by the researchers for discretion. For the authoritative advisory and remediation guidance, see the original disclosure: GHSA-mv8w-475r-vwqw.

Get new detections in your inbox

New ATT&CK coverage plus CISA KEV / CVE detection rules, roughly weekly. No spam, unsubscribe anytime.