---
id: CVE-2026-92708
title: >-
  Svelte devalue is a JavaScript library that serializes values into strings
  when JSON.stringify isn't sufficient for the job
summary: >-
  Svelte devalue is a JavaScript library that serializes values into strings
  when JSON.stringify isn't sufficient for the job. In versions 5.1.0 through
  5.9.2, stringify and uneval functions serialize a typed array by emitting its
  entire b…
severity: high
cvss: 7.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N'
cwe:
  - CWE-200
  - CWE-226
vendor: sveltejs
product: devalue
affected:
  - 'devalue >= 5.1.0, < 5.9.3'
published: '2026-09-18'
updated: '2026-09-23'
sourceUpdated: '2026-09-23T20:17:22.253'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-92708'
references:
  - url: >-
      https://github.com/sveltejs/devalue/commit/46dc877b3570dafb1cd3291b9bb48cecef8f7266
    label: security-advisories@github.com
  - url: 'https://github.com/sveltejs/devalue/releases/tag/v5.9.3'
    label: security-advisories@github.com
  - url: >-
      https://github.com/sveltejs/devalue/security/advisories/GHSA-j22f-vq7h-c4qm
    label: security-advisories@github.com
tags:
  - nvd
  - cve.org
ssvc:
  exploitation: none
  automatable: 'yes'
  technicalImpact: partial
  timestamp: '2026-09-23T19:38:28.127737Z'
epss: 0.00568
epssPercentile: 0.44672
ingestedAt: '2026-09-18T20:51:25.687Z'
---

## Overview

Svelte devalue is a JavaScript library that serializes values into strings when JSON.stringify isn't sufficient for the job. In versions 5.1.0 through 5.9.2, stringify and uneval functions serialize a typed array by emitting its entire backing ArrayBuffer rather than only the view, so serializing a Node Buffer, whose backing store is a process-wide shared pool, discloses up to 64 KB of unrelated process memory, including bytes from other in-flight requests. In a server-side-rendered framework such as SvelteKit or Nuxt, a public page whose load() returns a small Buffer, or that reads a small file, can therefore ship another user's request body or Authorization header in its HTML without authentication. Because this occurs during serialization, it fires on every such render and is not mitigated by the parse/unflatten prototype-pollution and denial-of-service guards, which only apply when parsing untrusted input. As a workaround, convert Node Buffer objects to Uint8Array before serialization. This issue has been fixed in version 5.9.3.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
