We’ve released patches for 5 vulnerabilities across devalue, svelte, @sveltejs/kit, and @sveltejs/adapter-node. Here’s what you need to know:
If you’re using any of these packages, upgrade them to their corresponding non-vulnerable versions:
devalue: 5.6.2svelte: 5.46.4@sveltejs/kit: 2.49.5@sveltejs/adapter-node: 5.5.1For cross-dependent packages — svelte and @sveltejs/kit depend on devalue — patched versions already include upgraded dependencies.
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.
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.
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, if unsure).
Full reports are available in the published security advisories, but we’ve included a brief summary of each below.
devaluedevalue versions 5.1.0 through 5.6.1, anddevalue.parse(Yes, this is very similar to the previous CVE. No, it is not the same!)
devaluedevalue versions 5.3.0 through 5.6.1, anddevalue.parse@sveltejs/kit2.49.0 through 2.49.4, andexperimental.remoteFunctions flag, andform@sveltejs/kit@sveltejs/adapter-node@sveltejs/kit versions 2.44.0 through 2.49.4, and@sveltejs/kit versions 2.19.0 through 2.49.4, and@sveltejs/adapter-node without a configured ORIGIN environment variable, and you are not using a reverse proxy that implements Host header validationsveltesvelte versions 5.46.0 through 5.46.3, andhydratable, and you’re passing unsanitized, user-controlled strings in as keyshydratable that is then returned to another user