GHSA-f3cj-j4f6-wq85 Svelte: SSR XSS via Insecure Promise Serialization in hydratable
An XSS vulnerability in Svelte's experimental hydratable feature allows attackers to execute scripts if attacker-controlled input is passed to promise serialization.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is GHSA-f3cj-j4f6-wq85?
GHSA-f3cj-j4f6-wq85 is a cross-site scripting vulnerability in svelte, published on 14 May 2026. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.
Official description
Contents of hydratable promises were not properly stringified, potentially leading to an XSS exploit. You are vulnerable if all of the following is true:
- you are using
hydratable(an experimental feature at the time of this report) - you are passing attacker-controlled input such that a synchronous value is hydrated, then a promise value, e.g.
hydratable('someKey', () => [synchronousValue, promiseValue])
Which versions are affected by GHSA-f3cj-j4f6-wq85?
2 open source packages ship an affected version, including svelte.
| Package | Affected | Fixed in |
|---|---|---|
svelte npm | From 5.46.0 | 5.55.7 |
svelte npm | From 5.46.0 | 5.55.7 |
How do I fix GHSA-f3cj-j4f6-wq85?
Upgrade svelte to 5.55.7 or later.
Escape output for the context it lands in and set a strict Content Security Policy. Upgrading the affected component is the real fix. More about Cross-site scripting.
Is GHSA-f3cj-j4f6-wq85 being exploited?
There is no known exploitation of GHSA-f3cj-j4f6-wq85 in the wild and no public exploit code.