CVE-2026-22774
JavaScript vulnerability analysis and mitigation

Overview

CVE-2026-22774 is a denial-of-service vulnerability in the svelte/devalue JavaScript library, specifically in its devalue.parse function. Certain crafted inputs can cause the parser to consume excessive CPU time and/or memory, potentially crashing or degrading systems that process untrusted data. The vulnerability affects devalue versions 5.3.0 through 5.6.1 (inclusive) and was disclosed on January 15, 2026. It carries a CVSS v3.1 base score of 7.5 (High) (GitHub Advisory).

Technical details

The root cause is improper input validation (CWE-20) combined with asymmetric resource consumption (CWE-405) in the typed array hydration logic within src/parse.js. When devalue.parse processes a typed array (e.g., Int8Array, Uint8Array, etc.), it expects the referenced value to be an ArrayBuffer, but it did not verify this assumption before attempting to create the typed array — allowing malformed inputs such as [["Int8Array", 1], { "length": 2 }, 1000000000] to trigger disproportionate memory allocation or CPU usage. Additionally, self-referential and mutually-referential typed array inputs could cause circular hydration loops. The fix in commit e46afa6 adds an explicit instanceof ArrayBuffer check before typed array construction, and commit 1175584 adds a guard against circular references in custom revivers and a type check for ArrayBuffer base64 encoding (GitHub Advisory, Patch Commit).

Impact

Successful exploitation results in a denial-of-service condition — specifically, excessive memory exhaustion and/or CPU consumption — on any Node.js application that calls devalue.parse on externally-supplied, untrusted data. There is no impact on confidentiality or integrity; the vulnerability is limited to availability. Applications such as SvelteKit server-side rendering pipelines that deserialize client-supplied data are particularly at risk (GitHub Advisory).

Exploitability

No public proof-of-concept exploit code or in-the-wild exploitation has been reported as of the time of disclosure. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. The EPSS score is approximately 0.038%, indicating a low probability of near-term exploitation. However, the attack requires no authentication, no user interaction, and is remotely exploitable over the network, making it straightforward to attempt against exposed endpoints (GitHub Advisory, Feedly).

Exploitation steps

  1. Identify a target: Locate a web application built with SvelteKit or any Node.js service that uses devalue versions 5.3.0–5.6.1 and exposes an endpoint that calls devalue.parse on user-controlled input (e.g., a server-side data hydration endpoint).
  2. Craft a malformed payload: Construct a devalue-serialized string that references a typed array pointing to a non-ArrayBuffer value, such as [["Int8Array", 1], { "length": 2 }, 1000000000], or a self-referential typed array like [["Uint8Array", 0]].
  3. Send the payload: Submit the crafted string to the target endpoint via an HTTP request (e.g., POST body or query parameter) where it will be processed by devalue.parse.
  4. Trigger resource exhaustion: The parser attempts to hydrate the typed array without validating the input type, causing excessive memory allocation or entering a circular hydration loop, consuming CPU and/or memory until the process crashes or becomes unresponsive (GitHub Advisory, Patch Commit).

Indicators of compromise

  • Logs: Sudden spike in Node.js process memory or CPU usage correlated with specific HTTP requests; application error logs showing Invalid input, expected ArrayBuffer but got object or Invalid data errors (post-patch) or unhandled exceptions (pre-patch) from devalue.parse.
  • Network: Repeated HTTP requests containing devalue-serialized payloads with typed array structures referencing non-ArrayBuffer values (e.g., JSON arrays starting with ["Int8Array", ...] or ["Uint8Array", ...] pointing to objects or self-references).
  • Process: Node.js process exhibiting abnormally high memory consumption or CPU saturation without a corresponding increase in legitimate traffic; process crashes or OOM (out-of-memory) kills in application logs.

Mitigation and workarounds

The vulnerability is fixed in devalue version 5.6.2, released January 15, 2026. Affected users should upgrade immediately by running npm install devalue@5.6.2 or updating their package.json dependency. No configuration-based workaround is available; the only remediation is upgrading to the patched version. Applications that cannot upgrade immediately should avoid passing untrusted external data to devalue.parse until the patch is applied (GitHub Release, GitHub Advisory).

Community reactions

The Svelte project published an official blog post covering CVEs affecting the Svelte ecosystem, including this vulnerability (Svelte Blog). The disclosure received brief discussion on Hacker News. Red Hat tracked the vulnerability via their security advisory system. No significant independent researcher commentary or widespread media coverage has been identified beyond standard vulnerability aggregator coverage.

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

RHEL / CentOS

Unknown

SourceThis report was generated using AI

Related JavaScript vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-59160HIGH8.8
  • JavaScript logoJavaScript
  • @yeger/turbo-graph
NoYesSep 09, 2026
CVE-2026-59179HIGH8.3
  • JavaScript logoJavaScript
  • @openhop/server
NoYesSep 09, 2026
GHSA-x7m8-jrm8-hpvxHIGH8.1
  • JavaScript logoJavaScript
  • @eigenpal/docx-editor-core
NoYesSep 10, 2026
CVE-2026-59176HIGH7.8
  • JavaScript logoJavaScript
  • functype-mcp-server
NoYesSep 09, 2026
CVE-2026-59158HIGH7.5
  • JavaScript logoJavaScript
  • nuxt-ollama
NoYesSep 09, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management