Описание
@sveltejs/kit vulnerable to XSS on dev mode 404 page
Summary
"Unsanitized input from the request URL flows into end, where it is used to render an HTML page returned to the user. This may result in a Cross-Site Scripting attack (XSS)."
Details
Source of potentially tainted data is in packages/kit/src/exports/vite/dev/index.js, line 437. This potentially tainted data is passed through a number of steps (which I could detail if you'd like) all the way down to line 91 in packages/kit/src/exports/vite/utils.js, which performs an operation that Snyk believes an attacker shouldn't be allowed to manipulate.
Another source of potentially tainted data (according to Snyk) comes from packages/kit/src/exports/vite/utils.js, line 30, col 30 (i.e., the url property of req). This potentially tainted data is passed through a number of steps (which I could detail if you'd like) all the way down line 91 in packages/kit/src/exports/vite/utils.js, which performs an operation that Snyk believes an attacker shouldn't be allowed to manipulate.
PoC
Not provided
Impact
Little to none. The Vite development is not exposed to the network by default. And even if someone were able to trick a developer into executing an XSS against themselves, a development database should not have any sensitive data.
Ссылки
- https://github.com/sveltejs/kit/security/advisories/GHSA-rjjv-87mx-6x3h
- https://nvd.nist.gov/vuln/detail/CVE-2024-53261
- https://github.com/sveltejs/kit/pull/13039
- https://github.com/sveltejs/kit/commit/d338d4635a7fd947ba5112df6ee632c4a0979438
- https://github.com/sveltejs/kit/releases/tag/%40sveltejs%2Fkit%402.8.3
Пакеты
@sveltejs/kit
< 2.8.3
2.8.3
Связанные уязвимости
SvelteKit is a framework for rapidly developing robust, performant web applications using Svelte. "Unsanitized input from *the request URL* flows into `end`, where it is used to render an HTML page returned to the user. This may result in a Cross-Site Scripting attack (XSS)." The files `packages/kit/src/exports/vite/dev/index.js` and `packages/kit/src/exports/vite/utils.js` both contain user controllable data which under specific conditions may flow to dev mode pages. There is little to no expected impact. The Vite development is not exposed to the network by default and even if someone were able to trick a developer into executing an XSS against themselves, a development database should not have any sensitive data. None the less this issue has been addressed in version 2.8.3 and all users are advised to upgrade.