{"id":"CVE-2026-114061","aliases":["GHSA-27mw-82g8-phjj"],"title":"SvelteKit : XSS via untrusted cache-control header in prerendered page","summary":"SvelteKit : XSS via untrusted cache-control header in prerendered page","severity":"low","cvss":4.7,"cwe":["CWE-79"],"vendor":"sveltejs","product":"@sveltejs/kit","ecosystem":"npm","affected":["@sveltejs/kit < 3.0.0"],"patched":["@sveltejs/kit 3.0.0"],"published":"2026-10-23","updated":"2026-10-23","sourceUpdated":"2026-10-23T20:43:31Z","source":"GHSA","sourceUrl":"https://github.com/advisories/GHSA-27mw-82g8-phjj","references":[{"url":"https://github.com/sveltejs/kit/security/advisories/GHSA-27mw-82g8-phjj"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-114061"},{"url":"https://github.com/sveltejs/kit/commit/d9d55b579743c80ee7cb59c272d864fd9253dae7"},{"url":"https://github.com/sveltejs/kit/releases/tag/@sveltejs/kit@3.0.0"},{"url":"https://www.vulncheck.com/advisories/sveltekit-before-3.0.0-xss-via-cache-control-header-in-prerendered-pages"},{"url":"https://github.com/advisories/GHSA-27mw-82g8-phjj"}],"tags":["ghsa","npm","cve.org"],"epss":0.00213,"epssPercentile":0.11486,"cvssVector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N","cvssSource":"cna","ingestedAt":"2026-10-21T01:37:08.039Z","slug":"CVE-2026-114061","body":"## Overview\n\n### Impact\n\nApplications that prerender pages and use `setHeaders` to set a `cache-control` header from an untrusted source are vulnerable to cross-site scripting (XSS).\n\nSvelteKit 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.\n\n### Patches\n\nThe fix escapes the header value before inserting it into the generated HTML. Upgrade to `@sveltejs/kit` version 3.0.0 or later.\n\n### Workarounds\n\nAvoid forwarding untrusted `cache-control` header values with `setHeaders` on prerendered pages. Use a fixed, trusted cache policy instead.\n\n## Affected packages\n\n- `@sveltejs/kit < 3.0.0`\n\n## Remediation\n\nUpgrade to a patched release:\n\n- `@sveltejs/kit 3.0.0`","depth":"sunlit","depthScore":26,"depthScoreParts":{"impact":25.9,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[{"seq":228374,"id":"CVE-2026-114061","ts":1792791549625,"field":"severity","old":"medium","new":"low"}]}