Astro: Reflected XSS via unescaped slot names in @astrojs/svelte
CVE-2026-126362
Summary The @astrojs/svelte renderer wraps slotted content passed to Svelte components in an element, and writes the slot name into its name attribute without HTML escaping. A slot name containing " could end the attribute and inject arbitrary HTML into the page. For example, a page that takes a slot name from the request: astro import Tabs from '../components/Tabs.svelte'; const tab = Astro.url.searchParams.get('tab'); … rendered with a Svelte 5 component that renders its snippets by name: svelte {@render snippets[active]?.()} would output a tab value such as x"> as live HTML. Impact Reflected cross-site scripting. An attacker who gets a user to open a crafted link can run JavaScript on the site's origin, but only in applications where all of the following are true: The page passes request-controlled input (such as a query parameter) as a slot name. The Svelte component is hydrated with a client: directive. For non-hydrated components the slot wrapper is removed from the output, together with its name attribute. The Svelte component renders the attacker-chosen slot, which in practice means a Svelte 5 component that renders snippets by a dynamic name. Components that never render…
Assessment
- CVSS
- 2.3 (v4.0)
- Severity
- Low
- EPSS
- 0.00381% chance of exploitation in the next 30 days
- Known exploited
- Not listed in CISA KEV
- Exploit availability
- Nothing found in Exploit-DB, Metasploit, Nuclei or public PoC repositories
- Published
- 12 November 2026
- Last updated
- 12 November 2026
- Affected
- @astrojs/svelte
- Weakness
- CWE-79
CVSS vectorCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N
At the source
References
Community proofs of concept
No community proof of concept yet. If you have one for a published vulnerability and the right to share it, add it below — it will appear here once reviewed.
Submit a proof of concept
Only for publicly disclosed vulnerabilities, and only material from testing you were authorised to perform. This platform does not buy, sell, or broker exploits — see earning from vulnerability research for legitimate bounty programs. Submissions are reviewed before they appear. Text only; do not include live credentials, personal data, or anything targeting systems you are not permitted to test.
Query this programmatically
Agents can read this through the MCP endpoint, or over HTTP:
curl https://cve.zerocrew.in/api/cve/CVE-2026-126362