Packages / @sveltejs/kit / Security
@sveltejs/kit vulnerable to XSS on dev mode 404 page
Affected releases · @sveltejs/kit
- 2.x2.0.0 – 2.8.2Fixed in 2.8.3
- 1.x and older0.0.8 – 1.30.4No fix, no longer updated
On 2.x, the newest line:
npm install @sveltejs/kit@2.8.3Not affected
3.0.0 – 3.1.0
3 releases, latest
Affected
2.0.0 – 2.8.2
70 releases
Fixed
2.8.3 – 2.70.3
167 releases
Affected
1.0.0 – 1.30.4
128 releases
Affected
0.0.8 – 0.0.30
21 releases
Is your project affected?
Paste your package.json, or type the range you declare for @sveltejs/kit. It is read in your browser and sent nowhere.
What happens
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.