Inserts/JSX expressions inside illegal inlined JSX fragments lacked escaping, allowing user input to be rendered as HTML when put directly inside JSX fragments.
For instance, ?text=<svg/onload=alert(1)>
would trigger XSS here.
const [text] = createResource(() => {
return new URL(getRequestEvent().request.url).searchParams.get("text");
});
return (
<>
Text: {text()}
</>
);
{ "nvd_published_at": "2025-02-21T22:15:14Z", "cwe_ids": [ "CWE-116", "CWE-79" ], "severity": "HIGH", "github_reviewed": true, "github_reviewed_at": "2025-02-25T17:49:40Z" }