Live › vulnerability › CVE-2024-53262
Go to dashboardThe static error.html template in @sveltejs/kit replaces its error message placeholder without escaping it first. If an app passes user-controlled text into a thrown error message, that text is rendered as raw HTML on the error page, enabling cross-site scripting.
Summary written from the sources below. Check the originals before acting.
First seen by InfraStack 2026-10-23 19:11 UTC, 5h before NVD. All times on this page are UTC.
| Product |
|---|
| Ecosystem |
|---|
| Affected |
|---|
| Fixed in |
|---|
| @sveltejs/kit | npm | < 2.8.3 | 2.8.3 |
| svelte sveltekit | vendor | < 2.8.3 | 2.8.3 |
2.8.32.8.3 or laterEach row is the first time that source carried this signal. The analyst’s rows are its own findings.
The static error.html template for errors contains placeholders that are replaced without escaping the content first.
From https://kit.svelte.dev/docs/errors:
error.html is the page that is rendered when everything else fails. It can contain the following placeholders: %sveltekit.status% — the HTTP status %sveltekit.error.message% — the error message
This leads to possible injection if an app explicitly creates an error with a message that contains user controlled content that ends up being something like this inside a server handle function:
error(500, '<script>alert("boom")</script>');
Uncaught errors cannot be exploited like this, as they always render the message "Internal error".
Escaping the message string in the function that creates the html output can be done to improve safety for applications that are using custom errors on the server.
None provided
Only applications where user provided input is used in the Error message will be vulnerable, so the vast majority of applications will not be vulnerable
This page as .md · .json · in your agent: get_signal("CVE-2024-53262")
GitHub Advisory Database, CC-BY 4.0 · NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.