Svelte version 1.6.10 is a minor update to the magical disappearing UI framework, building upon the foundation laid by version 1.6.9. Examining the package data, the core dependencies remain consistent between the two versions, with magic-string staying at ^0.19.0. This suggests that the update likely focuses on bug fixes, performance improvements, or subtle enhancements rather than major feature additions or fundamental changes to the core architecture.
The devDependencies also remain identical, indicating a continuous focus on maintaining a robust and comprehensive development environment. This includes tools for testing (mocha, nyc, jsdom), linting (eslint, eslint-plugin-import), code coverage (codecov, babel-plugin-istanbul), module bundling (rollup, rollup-plugin-*), and other utilities like css-tree, source-map, and estree-walker. The ongoing use of these tools underlines the Svelte team's commitment to code quality and developer experience.
The key difference lies in the releaseDate. Version 1.6.10 was published shortly after 1.6.9, suggesting the necessity of the update. This increment is a sign of an active project aiming to provide the best developing experience possible. For developers considering Svelte, this minor release indicates that the team is responsive to issues and actively working to refine the framework. It is advisable for users of 1.6.9 to upgrade to 1.6.10 to benefit from any potential bug fixes or subtle enhancements.
All the vulnerabilities related to the version 1.6.10 of the package
Svelte vulnerable to XSS when using objects during server-side rendering
The package svelte before 3.49.0 is vulnerable to Cross-site Scripting (XSS) due to improper input sanitization and to improper escape of attributes when using objects during SSR (Server-Side Rendering). Exploiting this vulnerability is possible via objects with a custom toString() function.
Svelte has a potential mXSS vulnerability due to improper HTML escaping
A potential XSS vulnerability exists in Svelte for versions prior to 4.2.19.
Svelte improperly escapes HTML on server-side rendering. It converts strings according to the following rules:
"
-> "
&
-> &
<
-> <
&
-> &
The assumption is that attributes will always stay as such, but in some situation the final DOM tree rendered on browsers is different from what Svelte expects on server-side rendering. This may be leveraged to perform XSS attacks. More specifically, this can occur when injecting malicious content into an attribute within a <noscript>
tag.
A vulnerable page (+page.svelte
):
<script>
import { page } from "$app/stores"
// user input
let href = $page.url.searchParams.get("href") ?? "https://example.com";
</script>
<noscript>
<a href={href}>test</a>
</noscript>
If a user accesses the following URL,
http://localhost:4173/?href=</noscript><script>alert(123)</script>
then, alert(123)
will be executed.
XSS, when using an attribute within a noscript tag