Skip to content

Commit afc75c7

Browse files
chore: Blog post (#1732)
* chore: Blog post * update links * tweak * Apply suggestion from @Rich-Harris Co-authored-by: Rich Harris <rich.harris@vercel.com> * shuffle * Apply suggestion from @Rich-Harris Co-authored-by: Rich Harris <rich.harris@vercel.com> * Update apps/svelte.dev/content/blog/2026-01-15-cves-affecting-the-svelte-ecosystem.md * Update apps/svelte.dev/content/blog/2026-01-15-cves-affecting-the-svelte-ecosystem.md * headers, prettier --------- Co-authored-by: Rich Harris <rich.harris@vercel.com>
1 parent f797e81 commit afc75c7

File tree

1 file changed

+95
-0
lines changed

1 file changed

+95
-0
lines changed
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
---
2+
title: 'CVEs affecting the Svelte ecosystem'
3+
description: 'Time to upgrade'
4+
author: Elliott Johnson
5+
authorURL: https://bsky.app/profile/ell.iott.dev
6+
---
7+
8+
We’ve released patches for 5 vulnerabilities across `devalue`, `svelte`, `@sveltejs/kit`, and `@sveltejs/adapter-node`. Here’s what you need to know:
9+
10+
## Upgrade now
11+
12+
If you’re using any of these packages, upgrade them to their corresponding non-vulnerable versions:
13+
14+
- `devalue`: `5.6.2`
15+
- `svelte`: `5.46.4`
16+
- `@sveltejs/kit`: `2.49.5`
17+
- `@sveltejs/adapter-node`: `5.5.1`
18+
19+
For cross-dependent packages — `svelte` and `@sveltejs/kit` depend on `devalue` — patched versions already include upgraded dependencies.
20+
21+
## Commentary
22+
23+
We’re extremely thankful to all of the security researchers who responsibly disclosed these vulnerabilities and worked with us to get them fixed, to the security team at Vercel who helped us navigate the disclosure process, and to the maintainers who worked to publish the fixes.
24+
25+
Over the last few weeks, we've seen a spate of high profile vulnerabilities affecting popular tools across the web development ecosystem. While they are unfortunate, it has been encouraging to see the community pulling together to keep end users safe. Using the lessons learned from these vulnerabilities, we will invest in processes that will help catch future bugs during the writing and review phases, _before_ they go live.
26+
27+
If you think you have discovered a vulnerability in a package maintained by the Svelte team, we urge you to privately report it via the Security tab on the repo in question (or the [Svelte repo](https://github.com/sveltejs/svelte/security/), if unsure).
28+
29+
## Details
30+
31+
Full reports are available in the published security advisories, but we’ve included a brief summary of each below.
32+
33+
### [CVE-2026-22775](https://github.com/sveltejs/devalue/security/advisories/GHSA-g2pg-6438-jwpf): DoS in `devalue.parse` due to memory/CPU exhaustion
34+
35+
- Packages affected:
36+
- `devalue`
37+
- You’re affected if:
38+
- You’re using `devalue` versions `5.1.0` through `5.6.1`, and
39+
- You’re parsing user-controlled input
40+
- Effects:
41+
- A malicious payload can cause arbitrarily large memory allocation, potentially crashing the process
42+
- SvelteKit applications using remote functions are vulnerable, as the parameters are run through `devalue.parse`
43+
- If you don’t have remote functions enabled, SvelteKit is not vulnerable
44+
45+
### [CVE-2026-22774](https://github.com/sveltejs/devalue/security/advisories/GHSA-vw5p-8cq8-m7mv): DoS in `devalue.parse` due to memory exhaustion
46+
47+
(Yes, this is very similar to the previous CVE. No, it is not the same!)
48+
49+
- Packages affected:
50+
- `devalue`
51+
- You’re affected if:
52+
- You’re using `devalue` versions `5.3.0` through `5.6.1`, and
53+
- You’re parsing user-controlled input
54+
- Effects:
55+
- A malicious payload can cause arbitrarily large memory allocation, potentially crashing the process
56+
- SvelteKit applications using remote functions are vulnerable, as the parameters are run through `devalue.parse`
57+
- If you don’t have remote functions enabled, SvelteKit is not vulnerable
58+
59+
### [CVE-2026-22803](https://github.com/sveltejs/kit/security/advisories/GHSA-j2f3-wq62-6q46): **Memory amplification DoS in Remote Functions binary form deserializer**
60+
61+
- Packages affected:
62+
- `@sveltejs/kit`
63+
- You’re affected if:
64+
- You’re using SvelteKit versions `2.49.0` through `2.49.4`, and
65+
- You’ve enabled the `experimental.remoteFunctions` flag, and
66+
- You’re using `form`
67+
- Effects:
68+
- Users can submit a malicious request that causes your application to hang and allocate arbitrarily-large amounts of memory
69+
70+
### [CVE-2025-67647](https://github.com/sveltejs/kit/security/advisories/GHSA-j62c-4x62-9r35): **Denial of service and possible SSRF when using prerendering**
71+
72+
- Packages affected:
73+
- `@sveltejs/kit`
74+
- `@sveltejs/adapter-node`
75+
- You’re vulnerable to DoS if:
76+
- You’re using `@sveltejs/kit` versions `2.44.0` through `2.49.4`, and
77+
- Your app has at least one prerendered route
78+
- You’re vulnerable to DoS and SSRF if:
79+
- You’ve using `@sveltejs/kit` versions `2.19.0` through `2.49.4`, and
80+
- Your app has at least one prerendered route, and
81+
- You’re using `@sveltejs/adapter-node` without a configured `ORIGIN` environment variable, and you are not using a reverse proxy that implements Host header validation
82+
- Effects:
83+
- DoS causes the server process to die
84+
- SSRF allows access to internal resources that can be reached without authentication from SvelteKit’s server runtime
85+
- If the stars align, it’s possible to obtain SXSS via cache poisoning by forcing a potential CDN to cache an XSS returned by the attacker's server (the latter being able to specify the cache-control of their choice)
86+
87+
### [CVE-2025-15265](https://github.com/sveltejs/svelte/security/advisories/GHSA-6738-r8g5-qwp3): XSS via `hydratable`
88+
89+
- Packages affected:
90+
- `svelte`
91+
- You’re vulnerable if:
92+
- You’re using `svelte` versions `2.46.0` through `2.46.3`, and
93+
- You’re using [`hydratable`](https://svelte.dev/docs/svelte/hydratable), and you’re passing unsanitized, user-controlled strings in as keys
94+
- Effects:
95+
- Your users are vulnerable to XSS if an attacker can manage to get a controlled key into `hydratable` that is then returned to another user

0 commit comments

Comments
 (0)