SvelteKit : XSS via untrusted cache-control header in prerendered page
### Impact Applications that prerender pages and use `setHeaders` to set a `cache-control` header from an untrusted source are vulnerable to cross-site scripting (XSS). SvelteKit inserts the header value into a `<meta http-equiv="cache-control">` tag without escaping it. An attacker who can influence this value at prerender time can break out of the `content` attribute and inject HTML or JavaScript into the generated page. The injected code can then execute when users visit the page. ### Patches The fix escapes the header value before inserting it into the generated HTML. Upgrade to `@sveltejs/kit` version 3.0.0 or later. ### Workarounds Avoid forwarding untrusted `cache-control` header values with `setHeaders` on prerendered pages. Use a fixed, trusted cache policy instead.
describes (1)
Related CVEs.
| ID | severity | exploitable | ||
|---|---|---|---|---|
| CVE-2026-114061US | medium4.7 | — | ||
SvelteKit (@sveltejs/kit) before 3.0.0 contains a cross-site scripting vulnerability in prerendered pages because a cache-control header value set via setHeaders is inserted withou… | ||||
references
External citations — patches, advisories, analysis.
- https://github.com/sveltejs/kitPACKAGE
- https://github.com/sveltejs/kit/commit/d9d55b579743c80ee7cb59c272d864fd9253dae7WEB
- https://github.com/sveltejs/kit/releases/tag/@sveltejs/kit@3.0.0WEB
- https://github.com/sveltejs/kit/security/advisories/GHSA-27mw-82g8-phjjWEB
- https://nvd.nist.gov/vuln/detail/CVE-2026-114061ADVISORY
- https://www.vulncheck.com/advisories/sveltekit-before-3.0.0-xss-via-cache-control-header-in-prerendered-pagesWEB
Advisories like this name the exposed products attackers go after on your perimeter. See what is exposed on your perimeter with a free passive scan.
Free scan