{"id":"CVE-2025-15265","aliases":["EUVD-2026-2733","GHSA-6738-r8g5-qwp3"],"status":"published","title":"Svelte 5.46.0  - Hydratable Key Script-Breakout XSS (SSR)","description":"An SSR XSS exists in async hydration when attacker‑controlled keys are passed to hydratable. The key is embedded inside a \u003cscript\u003e block without HTML‑safe escaping, allowing \u003c/script\u003e to terminate the script and inject arbitrary JavaScript. This enables remote script execution in users' browsers, with potential for session theft and account compromise.\nThis issue affects Svelte: from 5.46.0 before 5.46.3.","severity":{"version":"4.0","score":5.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00346,"percentile":0.28398,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-79"],"published":"2026-01-15T19:59:41Z","modified":"2026-10-28T02:30:30Z","fixes":[{"ecosystem":"npm","package":"svelte","fixed_in":["5.46.4"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"svelte","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"5.46.0"},{"last_affected":"5.46.3"},{"fixed":"5.46.4"}]}]},{"source":"osv","ecosystem":"npm","package":"svelte","ranges":[{"type":"SEMVER","events":[{"introduced":"5.46.0"},{"fixed":"5.46.4"}]}]}],"products":[{"vendor":"svelte","product":"svelte"},{"vendor":"sveltejs","product":"svelte"}],"references":[{"url":"https://fluidattacks.com/advisories/lydian","tags":["third-party-advisory","patch","Exploit","Third Party Advisory","advisory","web"]},{"url":"https://github.com/sveltejs/svelte/security/advisories/GHSA-6738-r8g5-qwp3","tags":["vendor-advisory","Third Party Advisory","advisory","web"]},{"url":"https://github.com/sveltejs/svelte/commit/ef81048e238844b729942441541d6dcfe6c8ccca","tags":["web"]},{"url":"https://github.com/sveltejs/svelte/releases/tag/svelte%405.46.4","tags":["web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2025-15265","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-6738-r8g5-qwp3"},{"url":"https://registry.npmjs.org","tags":["web"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/15xxx/CVE-2025-15265.json","tags":["advisory"]},{"url":"https://github.com/sveltejs/svelte","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2025-15265","title":"Svelte 5.46.0  - Hydratable Key Script-Breakout XSS (SSR)","description":"An SSR XSS exists in async hydration when attacker‑controlled keys are passed to hydratable. The key is embedded inside a \u003cscript\u003e block without HTML‑safe escaping, allowing \u003c/script\u003e to terminate the script and inject arbitrary JavaScript. This enables remote script execution in users' browsers, with potential for session theft and account compromise.\nThis issue affects Svelte: from 5.46.0 before 5.46.3.","status":"published","published":"2026-01-15T19:59:41.683Z","modified":"2026-01-15T20:28:16.479Z","cvss":[{"version":"4.0","score":5.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","level":"medium","assessor":"cna"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:32:37.351404Z"}],"euvd":[{"id":"EUVD-2026-2733","description":"An SSR XSS exists in async hydration when attacker‑controlled keys are passed to hydratable. The key is embedded inside a \u003cscript\u003e block without HTML‑safe escaping, allowing \u003c/script\u003e to terminate the script and inject arbitrary JavaScript. This enables remote script execution in users' browsers, with potential for session theft and account compromise.\nThis issue affects Svelte: from 5.46.0 before 5.46.3.","status":"published","published":"2026-01-15T19:59:41Z","modified":"2026-01-15T20:28:16Z","cvss":[{"version":"4.0","score":5.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","level":"medium"}],"updated_at":"2026-11-02T19:48:51.36047Z"}],"ghsa":[{"id":"GHSA-6738-r8g5-qwp3","title":"svelte vulnerable to Cross-site Scripting","description":"## Summary\n\nAn XSS vulnerability exists in Svelte 5.46.0-2 resulting from improper escaping of `hydratable` keys. If these keys incorporate untrusted user input, arbitrary JavaScript can be injected into server-rendered HTML.\n\n## Details\n\nWhen using the [`hydratable`](https://svelte.dev/docs/svelte/hydratable) function, the first argument is used as a key to uniquely identify the data, such that the value is not regenerated in the browser.\n\nThis key is embedded into a `\u003cscript\u003e` block in the server-rendered `\u003chead\u003e` without escaping unsafe characters. A malicious key can break out of the script context and inject arbitrary JavaScript into the HTML response.\n\n## Impact\n\nThis is a cross-site scripting vulnerability affecting applications that have the `experimental.async` flag enabled and use `hydratable` with keys incorporating untrusted user input. \n\n- **Impact**: Arbitrary JS execution in the client’s browser.\n- **Exploitability**: Remote, single-request if key is attacker-controlled.\n- **Typical Outcomes**:\n  - Session/token theft\n  - DOM defacement\n  - CSRF bypass via injected JS\n  - Account takeover depending on cookie/session strategy\n\nAffected applications should upgrade to a patched version immediately.","status":"published","published":"2026-01-15T20:13:33Z","modified":"2026-01-19T21:50:24Z","cvss":[{"version":"4.0","score":5.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:39:18.564331Z"}],"nvd":[{"id":"CVE-2025-15265","description":"An SSR XSS exists in async hydration when attacker‑controlled keys are passed to hydratable. The key is embedded inside a \u003cscript\u003e block without HTML‑safe escaping, allowing \u003c/script\u003e to terminate the script and inject arbitrary JavaScript. This enables remote script execution in users' browsers, with potential for session theft and account compromise.\nThis issue affects Svelte: from 5.46.0 before 5.46.3.","status":"published","published":"2026-01-15T20:16:03.49Z","modified":"2026-06-17T08:37:29.597Z","cvss":[{"version":"4.0","score":5.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"medium","assessor":"secondary"},{"version":"3.1","score":6.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:11:57.915063Z"}],"osv":[{"id":"CVE-2025-15265","title":"Svelte 5.46.0  - Hydratable Key Script-Breakout XSS (SSR)","description":"An SSR XSS exists in async hydration when attacker‑controlled keys are passed to hydratable. The key is embedded inside a \u003cscript\u003e block without HTML‑safe escaping, allowing \u003c/script\u003e to terminate the script and inject arbitrary JavaScript. This enables remote script execution in users' browsers, with potential for session theft and account compromise.\nThis issue affects Svelte: from 5.46.0 before 5.46.3.","status":"published","published":"2026-01-15T19:59:41.683Z","modified":"2026-10-28T02:30:30.446205063Z","cvss":[{"version":"4.0","score":5.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T15:44:46.340268Z"},{"id":"GHSA-6738-r8g5-qwp3","title":"svelte vulnerable to Cross-site Scripting","description":"## Summary\n\nAn XSS vulnerability exists in Svelte 5.46.0-2 resulting from improper escaping of `hydratable` keys. If these keys incorporate untrusted user input, arbitrary JavaScript can be injected into server-rendered HTML.\n\n## Details\n\nWhen using the [`hydratable`](https://svelte.dev/docs/svelte/hydratable) function, the first argument is used as a key to uniquely identify the data, such that the value is not regenerated in the browser.\n\nThis key is embedded into a `\u003cscript\u003e` block in the server-rendered `\u003chead\u003e` without escaping unsafe characters. A malicious key can break out of the script context and inject arbitrary JavaScript into the HTML response.\n\n## Impact\n\nThis is a cross-site scripting vulnerability affecting applications that have the `experimental.async` flag enabled and use `hydratable` with keys incorporating untrusted user input. \n\n- **Impact**: Arbitrary JS execution in the client’s browser.\n- **Exploitability**: Remote, single-request if key is attacker-controlled.\n- **Typical Outcomes**:\n  - Session/token theft\n  - DOM defacement\n  - CSRF bypass via injected JS\n  - Account takeover depending on cookie/session strategy\n\nAffected applications should upgrade to a patched version immediately.","status":"published","published":"2026-01-15T20:13:33Z","modified":"2026-02-03T03:17:21.713697Z","cvss":[{"version":"4.0","score":5.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N","level":"medium"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T15:46:39.266402Z"}]}}
