Packages / @sveltejs/kit / Security

LowVulnerabilityGHSA-rjjv-87mx-6x3hCVE-2024-53261Published 25 Nov 2024

@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.3
3.x
  1. Not affected

    3.0.0 – 3.1.0

    3 releases, latest

2.x
  1. Affected

    2.0.0 – 2.8.2

    70 releases

  2. Fixed

    2.8.3 – 2.70.3

    167 releases

1.x
  1. Affected

    1.0.0 – 1.30.4

    128 releases

0.x
  1. Affected

    0.0.8 – 0.0.30

    21 releases

389 stable releases of @sveltejs/kit, oldest to newest, one row per major.

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.