chore(deps): update dependency @sveltejs/kit to v2.52.2 [security]#88
Open
renovate[bot] wants to merge 1 commit intomainfrom
Open
chore(deps): update dependency @sveltejs/kit to v2.52.2 [security]#88renovate[bot] wants to merge 1 commit intomainfrom
renovate[bot] wants to merge 1 commit intomainfrom
Conversation
261fa6d to
cc481c7
Compare
cc481c7 to
8c52c6e
Compare
8c52c6e to
53fd862
Compare
ed1891c to
350b09b
Compare
029b55f to
b049395
Compare
c75a2a8 to
978e897
Compare
978e897 to
8caeee4
Compare
b9935d9 to
2afa0ae
Compare
0d9653f to
6d96e85
Compare
85b4a68 to
8f0ee71
Compare
a9d1b84 to
957c0f3
Compare
57c804a to
4dd6f63
Compare
a9a2186 to
15a572b
Compare
15a572b to
0dba2f3
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
2.8.4→2.52.22.49.4→2.52.2GitHub Vulnerability Alerts
CVE-2025-32388
Summary
Unsanitized search param names cause XSS vulnerability. You are affected if you iterate over all entries of
event.url.searchParamsinside a serverloadfunction. Attackers can exploit it by crafting a malicious URL and getting a user to click a link with said URL.Details
SvelteKit tracks which parameters in
event.url.searchParamsare read inside serverloadfunctions. If the application iterates over the these parameters, theuses.search_paramsarray included in the boot script (embedded in the server-rendered HTML) will have any search param name included in unsanitized form.packages/kit/src/runtime/server/utils.js:150has thestringify_uses(node)function which prints these out.Reproduction
In a
+page.server.jsor+layout.server.js:If a user visits the page in question via a link containing
?</script/><script>window.pwned%3D1</script/>, the</script>will be included verbatim in the payload, causing the embedded script to be executed.It is not necessary to return the parameter value from
loador render it in the page, only to read it (which causes it to be tracked as a dependency) whileloadis running.Impact
Any application that iterates over all values in
event.url.searchParamsin aloadfunction in+page.server.jsor+layout.server.js(directly or indirectly) is vulnerable to XSS.Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:NCVE-2026-22803
Summary
The experimental
formremote function uses a binary data format containing a representation of submitted form data. A specially-crafted payload can cause the server to allocate a large amount of memory, causing DoS via memory exhaustion.Details
When a form is submitted to a remote function endpoint, the SvelteKit client encodes the data using a custom format, and POSTs it to the endpoint as a request with an
application/x-sveltekit-formdatacontent type.The first few bytes of the request body encode the length of the data. SvelteKit will attempt to read the request body up until the specified offset, but if the body is not yet available then an array buffer of that size will be created eagerly to accommodate it as it arrives.
An attacker can force this code path by sending a small payload that specifies a large data length, then stalling the connection. The resulting array buffer will be held in memory, potentially causing memory exhaustion.
Impact
experimental.remoteFunctionsenabled, and that expose a reachable Remote Form endpoint.Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:NCVE-2025-67647
Summary
Versions of SvelteKit are vulnerable to a server side request forgery (SSRF) and denial of service (DoS) under certain conditions.
Details
Affected versions from 2.44.0 onwards are vulnerable to DoS if:
export const prerender = true)Affected versions from 2.19.0 onwards are vulnerable to DoS and SSRF if:
export const prerender = true)adapter-nodewithout a configuredORIGINenvironment variable, and you are not using a reverse proxy that implements Host header validationImpact
The DoS causes the running server process to end.
The SSRF allows access to internal services that can be reached without authentication when fetched from SvelteKit's server runtime.
It is also possible to obtain an SXSS via cache poisoning, by forcing a potential CDN to cache an XSS returned by the attacker's server (the latter being able to specify the cache-control of their choice).
Credits
Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:L/VA:H/SC:L/SI:L/SA:NGHSA-88qp-p4qg-rqm6
Versions of
@sveltejs/kitprior to 2.52.2 with remote functions enabled are vulnerable to CPU exhaustion. Malformed form data can cause the server to become unresponsive while processing a request, resulting in denial of service.Only applications using both
experimental.remoteFunctionsandformare vulnerable.Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:NRelease Notes
sveltejs/kit (@sveltejs/kit)
v2.52.2Compare Source
Patch Changes
fix: validate
formfile information to prevent amplification attacks (3e607b3)chore: upgrade
devalueandsvelte(#15339)fix: parse file offset table more strictly (
f47c01b)v2.52.0Compare Source
Minor Changes
matchfunction to map a path back to a route id and params (#14997)Patch Changes
fix: respect scroll-margin when navigating to a url-supplied anchor (#15246)
fix:
resolvewill narrow types to follow trailing slash page settings (#15027)v2.51.0Compare Source
Minor Changes
feat: add
scrollproperty toNavigationTargetin navigation callbacks (#15248)Navigation callbacks (
beforeNavigate,onNavigate, andafterNavigate) now include scroll position information via thescrollproperty onfromandtotargets:from.scroll: The scroll position at the moment navigation was triggeredto.scroll: InbeforeNavigateandonNavigate, this is populated forpopstatenavigations (back/forward) with the scroll position that will be restored, andnullfor other navigation types. InafterNavigate, this is always the final scroll position after navigation completed.This enables use cases like animating transitions based on the target scroll position when using browser back/forward navigation.
feat:
hydratable's injected script now works with CSP (#15048)Patch Changes
fix: put preloads before styles (#15232)
fix: suppress false-positive inner content warning when children prop is forwarded to a child component (#15269)
fix:
fetchnot working when URL is same host but different thanpaths.base(#15291)fix: navigate to hash link when base element is present (#15236)
fix: avoid triggering
handleErrorwhen redirecting in a remote function (#15222)fix: include
testdirectory in generatedtsconfig.jsonalongside existingtestsentry (#15254)fix: generate
tsconfig.jsonusing the value ofkit.files.src(#15253)v2.50.2Compare Source
Patch Changes
fix: ensure inlined CSS follows
paths.assetsandpaths.relativesettings (#15153)fix: emit script CSP nonces when
unsafe-inlineis present ifstrict-dynamicis also present (#15221)fix: re-export browser/dev from esm-env (#15206)
fix: use validated args in batch resolver in both csr and ssr (#15215)
fix: ensure CSS inlining includes components that are conditionally rendered (#15153)
fix: only match rest params with matchers when the matcher matches (#15216)
fix: properly handle percent-encoded anchors (e.g.
<a href="#sparkles-%E2%9C%A8">) during prerendering. (#15231)v2.50.1Compare Source
Patch Changes
fix: include
hooks.serverandhooks.universalas explicit Vite build inputs to ensure assets imported by hooks files are correctly discovered (#15178)fix: improves fields type for generic components (#14974)
fix: preload links if href changes (#15191)
v2.50.0Compare Source
Minor Changes
buttonPropsfrom experimental remote form functions; use e.g.<button {...myForm.fields.action.as('submit', 'register')}>Register</button>button instead (#15144)v2.49.5Compare Source
Patch Changes
fix: avoid overriding Vite default
basewhen running Vitest 4 (#14866)fix: ensure url decoded pathnames are not mistaken as rerouted requests (
d9ae9b0)fix: add length checks to remote forms (
8ed8155)v2.49.4Compare Source
Patch Changes
fix: support instrumentation for
vite preview(#15105)fix: support for
URLSearchParams.has(name, value)overload (#15076)fix: put forking behind
experimental.forkPreloads(#15135)v2.49.3Compare Source
Patch Changes
fix: avoid false-positive Vite config overridden warning when using Vitest 4 (#15121)
fix: add
typescriptas an optional peer dependency (#15074)fix: use hasOwn check when deep-setting object properties (#15127)
v2.49.2Compare Source
Patch Changes
fix: Stop re-loading already-loaded CSS during server-side route resolution (#15014)
fix: posixify the instrumentation file import on Windows (#14993)
fix: Correctly handle shared memory when decoding binary form data (#15028)
v2.49.1Compare Source
Patch Changes
fix: suppress
state_referenced_locallywarnings in.svelte-kit/generated/root.svelte(#15013)fix: TypeError when doing response.clone() in page load (#15005)
v2.49.0Compare Source
Minor Changes
formremote functions allowing form data to be accessed before large files finish uploading (#14775)v2.48.8Compare Source
Patch Changes
breaking:
invalidnow must be imported from@sveltejs/kit(#14768)breaking: remove
submitteroption from experimental formvalidate()method, always provide default submitter (#14762)v2.48.7Compare Source
Patch Changes
fix: allow multiple
server-timingheaders (#14700)fix: allow access to root-level issues in schema-less forms (#14893)
fix: allow hosting hash-based apps from non-index.html files (#14825)
v2.48.6Compare Source
Patch Changes
fix: clear issues upon passing validation (#14683)
fix: don't use fork of unrelated route (#14947)
fix: prevent type errors when optional
@opentelemetry/apidependency isn't installed (#14949)fix: preserve
thiswhen invoking standard validator (#14943)fix: treat client/universal hooks as entrypoints for illegal server import detection (#14876)
fix: correct query
.setand.refreshbehavior in commands (#14877)fix: improved the accuracy of the types of the output of
field.as('...')(#14908)v2.48.5Compare Source
Patch Changes
fix: wait an extra microtask in dev before calling
$_init_$(#14799)fix: discard preload fork before creating a new one (#14865)
fix: delete
RemoteFormAllIssue, addpathtoRemoteFormIssue(#14864)v2.48.4Compare Source
Patch Changes
fix: adjust query's promise implementation to properly allow chaining (#14859)
fix: make prerender cache work, including in development (#14860)
v2.48.3Compare Source
Patch Changes
fix: include hash when using
resolvewith hash routing enabled (#14786)fix:
afterNavigatecallback not running after hydration when experimental async is enabled (#14644)fix: Snapshot
restoremethod not called after reload when experimental async is enabledfix: expose
issue.pathin.allIssues()(#14784)v2.48.2Compare Source
Patch Changes
v2.48.1Compare Source
Patch Changes
settled(#14818)v2.48.0Compare Source
Minor Changes
forkAPI when available (#14793)Patch Changes
settledinstead oftickin navigate (#14800)v2.47.3Compare Source
Patch Changes
fix: avoid hanging when
error()is used while streaming promises from a serverloadfunction (#14722)chore: treeshake load function code if we know it's unused (#14764)
fix:
RecursiveFormFieldstype for recursive or unknown schemas (#14734)fix: rework internal representation of form value to be
$state(#14771)v2.47.2Compare Source
Patch Changes
fix: streamed promise not resolving when another load function returns a fast resolving promise (#14753)
chore: allow to run preflight validation only (#14744)
fix: update overload to set
invalidtype to schema input (#14748)v2.47.1Compare Source
Patch Changes
fix: allow
readto be used at the top-level of remote function files (#14672)fix: more robust remote files generation (#14682)
v2.47.0Compare Source
Minor Changes
signalproperty to request (#14715)Patch Changes
v2.46.5Compare Source
Patch Changes
formremote functions'fields.settriggers reactivity (#14661)v2.46.4Compare Source
Patch Changes
untrackfunction (#14658)v2.46.3Compare Source
Patch Changes
fix: merge
field.set(...)calls (#14651)fix: don't automatically reset form after an enhanced submission (#14626)
fix: normalize path strings when updating field values (#14649)
v2.46.2Compare Source
Patch Changes
envmodules (#14637)v2.46.1Compare Source
Patch Changes
fix: use
$derivedfor form fields (#14621)docs: remove
@exampleblocks to allow docs to deploy (#14636)fix: require a value with
submitandhiddenfields (#14635)fix: delete hydration cache on effect teardown (#14611)
v2.46.0Compare Source
Minor Changes
Patch Changes
fix: wait a tick before collecting form data for validation (#14631)
fix: prevent code execution order issues around SvelteKit's
envmodules (#14632)v2.45.0Compare Source
Minor Changes
form.for(id)now implicitly sets id on form object (#14623)Patch Changes
fetchin remote function without emitting a warning (#14610)v2.44.0Compare Source
Minor Changes
feat: expose
event.routeandevent.urlto remote functions (#14606)breaking: update experimental
formAPI (#14481)Patch Changes
v2.43.8Compare Source
Patch Changes
fix: HMR for
query(#14587)fix: avoid client modules while traversing dependencies to prevent FOUC during dev (#14577)
fix: skip prebundling of .remote.js files (#14583)
fix: more robust remote file pattern matching (#14578)
v2.43.7Compare Source
Patch Changes
fix: correctly type the
resultofformremote functions that do not accept data (#14573)fix: force remote module chunks to isolate themselves (#14571)
v2.43.6Compare Source
Patch Changes
fix: ensure cache key is consistent between client/server (#14563)
fix: keep resolve relative to initial base during prerender (#14533)
fix: avoid including
HEADtwice when an unhandled HTTP method is used in a request to a+serverhandler that has both aGEThandler and aHEADhandler (#14564)fix: smoothscroll to deep link (#14569)
v2.43.5Compare Source
Patch Changes
resolve(...)outside an event context (#14532)v2.43.4Compare Source
Patch Changes
v2.43.3Compare Source
Patch Changes
fix: Webcontainer AsyncLocalStorage workaround (#14521)
fix: include the value of form submitters on
formremote functions (#14475)v2.43.2Compare Source
Patch Changes
fix: ensure rendering starts off synchronously (#14517)
fix: keep serialized remote data alive until navigation (#14508)
v2.43.1Compare Source
Patch Changes
v2.43.0Compare Source
Minor Changes
Patch Changes
fix: ensure
__SVELTEKIT_PAYLOAD__.datais accessed safely (#14491)fix: create separate cache entries for non-exported remote function queries (#14499)
v2.42.2Compare Source
Patch Changes
fix: prevent loops in postbuild analysis phase (#14450)
fix: handle nested object fields in form data (#14469)
fix: robustify form helper types (#14463)
fix: avoid running the
inithook during builds if there's nothing to prerender (#14464)fix: ensure SSR rendering gets request store context (#14476)
v2.42.1Compare Source
Patch Changes
v2.42.0Compare Source
Minor Changes
feat: enhance remote form functions with schema support,
inputandissuesproperties (#14383)breaking: remote form functions get passed a parsed POJO instead of a
FormDataobject now (#14383)v2.41.0Compare Source
Minor Changes
%sveltekit.version%toapp.html(#12132)Patch Changes
fix: allow remote functions to return custom types serialized with
transporthooks (#14435)fix: fulfil
beforeNavigatecompletewhen redirected (#12896)v2.40.0Compare Source
Minor Changes
eventproperty on popstate/link/form navigation (#14307)Patch Changes
fix: respect
replaceState/keepFocus/noScrollwhen a navigation results in a redirect (#14424)fix: invalidate preload cache when invalidateAll is true (#14420)
v2.39.1Compare Source
Patch Changes
v2.39.0Compare Source
Minor Changes
Patch Changes
fix: layout load data not serialized on error page (#14395)
fix: fail prerendering when remote function fails (#14365)
fix: treat handle hook redirect as part of remote function call as json redirect (#14362)
v2.38.1Compare Source
Patch Changes
fix: enable redirects from queries (#14400)
fix: remove empty nodes from serialized server load data (#14404)
fix: allow commands from within endpoints (#14343)
v2.38.0Compare Source
Minor Changes
query.batch(#14272)v2.37.1Compare Source
Patch Changes
fix: serialize server
loaddata before passing to universalload, to handle mutations and promises (#14298)fix: resolve_route prevent dropping a trailing slash of id (#14294)
fix: assign correct status code to form submission error on the client (#14345)
fix: un-proxy
form.result(#14346)v2.37.0Compare Source
Minor Changes
feat: automatically resolve
query.refresh()promises on the server (#14332)feat: allow query.set() to be called on the server (#14304)
Patch Changes
fix: disable CSRF checks in dev (#14335)
fix: allow redirects to external URLs from within form functions (#14329)
fix: add type definitions for
query.set()method to override the value of a remote query function (#14303)fix: ensure uniqueness of
form.for(...)across form functions (#14327)v2.36.3Compare Source
Patch Changes
fix: bump devalue (#14323)
chore: consolidate dev checks to use
esm-envinstead of a__SVELTEKIT_DEV__global (#14308)fix: reset form inputs by default when using remote form functions (#14322)
v2.36.2Compare Source
Patch Changes
chore: make config deprecation warnings more visible (#14281)
chore: remove redundant Not Found error message (#14289)
chore: deprecate
csrf.checkOriginin favour ofcsrf.trustedOrigins: ['*'](#14281)v2.36.1Compare Source
Patch Changes
$app/navigationworks in test files (#14195)v2.36.0Compare Source
Minor Changes
csrf.trustedOriginsconfiguration (#14021)Patch Changes
fix: correctly decode custom types streamed from a server load function (#14261)
fix: add trailing slash pathname when generating typed routes (#14065)
v2.35.0Compare Source
Minor Changes
Patch Changes
v2.34.1Compare Source
Patch Changes
fix: support multiple cookies with the same name across different paths and domains (
b2c5d02)fix: add link header when preloading font (#14200)
fix:
cookies.get(...)returnsundefinedfor a just-deleted cookie (b2c5d02)fix: load env before prerender (
c5f7139)v2.34.0Compare Source
Minor Changes
envaccess during prerender (#14243)Patch Changes
fix: clone
fetchresponses so that headers are mutable (#13942)fix: serialize server
loaddata before passing to universalload, to handle mutations (#14268)fix: allow
asset(...)to be used with imported assets (#14270)v2.33.1Compare Source
Patch Changes
fix: make paths in .css assets relative (#14262)
fix: avoid copying SSR stylesheets to client assets (#13069)
v2.33.0Compare Source
Minor Changes
Patch Changes
fix: use correct flag for server tracing (#14250)
fix: correct type names for new
handleUnseenRoutesoption (#14254)chore: Better docs and error message for missing
@opentelemetry/apidependency (#14250)v2.32.0Compare Source
Minor Changes
response.bodystream data as base64 in page (#11473)Patch Changes
.remote.tsfiles are used without theexperimental.remoteFunctionsflag (#14225)v2.31.1Compare Source
Patch Changes
v2.31.0Compare Source
Minor Changes
feat: OpenTelemetry tracing for
handle,sequence, form actions, remote functions, andloadfunctions running on the server (#13899)feat: add
instrumentation.server.tsfor tracing and observability setup (#13899)v2.30.1Compare Source
Patch Changes
$app/typesin a more Typescript-friendly way (#14207)v2.30.0Compare Source
Minor Changes
svelte.config.js(#13578)Patch Changes
fix: ensure buttonProps.enhance works on buttons with nested text (#14199)
fix: pass validation issues specifically to avoid non-enumerable spreading error (#14197)
v2.29.1Compare Source
Patch Changes
v2.29.0Compare Source
Minor Changes
kit.files.srcoption (#14152)Patch Changes
fix: don't treat
$lib/server.tsor$lib/server_whatever.tsas server-only modules, only$lib/server/**(#14191)fix: make illegal server-only import errors actually useful (#14155)
chore: deprecate
config.kit.filesoptions (#14152)fix: avoid warning if page options in a Svelte file belongs to a comment (#14180)
v2.28.0Compare Source
Minor Changes
feat: add
RouteIdandRouteParamsto NavigationTarget interface (#14167)feat: add
pendingproperty to forms and commands (#14137)Patch Changes
fix:
fetchimported assets during prerender (#12201)chore: refactor redundant base64 encoding/decoding functions (#14160)
fix: use correct cache result when fetching same url multiple times (#12355)
fix: don't refresh queries automatically when running commands (#14170)
fix: avoid writing remote function bundle to disk when treeshaking prerendered queries (#14161)
v2.27.3Compare Source
Patch Changes
.gitto the end ofpackage.jsonrepository url (#14134)v2.27.2Compare Source
Patch Changes
fix: ensure
form()remote functions work when the app is configured to a single output (#14127)fix: use the configured base path when calling remote functions from the client (#14106)
v2.27.1Compare Source
Patch Changes
fix: correctly type remote function input parameters from a schema (#14098)
fix: match URL-encoded newlines in rest route params (#14102)
fix: correctly spell server-side in error messages (#14101)
v2.27.0Compare Source
Minor Changes
v2.26.1Compare Source
Patch Changes
fix: posixify internal app server path (#14049)
fix: ignore route groups when generating typed routes (#14050)
v2.26.0Compare Source
Minor Changes
feat: better type-safety for
page.route.id,page.params,page.url.pathnameand various other places (#13864)feat:
resolve(...)andasset(...)helpers for resolving paths (#13864)feat: Add
$app/typesmodule withAsset,RouteId,Pathname,ResolvedPathnameRouteParams<T>andLayoutParams<T>(#13864)v2.25.2Compare Source
Patch Changes
v2.25.1Compare Source
Patch Changes
v2.25.0Compare Source
Minor Changes
readimplementations from adapters (#13859)Patch Changes
v2.24.0Compare Source
Minor Changes
paramsprop for page/layout components (#13999)Patch Changes
storage.gethelper (#13998)v2.23.0Compare Source
Minor Changes
feat: support svelte.config.ts (#13935)
Patch Changes
fix: extend
vite-plugin-svelte'sConfigtype instead of duplicating it (#13982)fix: regression with
rolldown-vitenot bundling a single JS file for single and inline apps (#13941)v2.22.5[Compare Source](https://redirect.github.com/sveltejs/kit/compare/@sveltejs/kit@2.22.4...@sveltejs/kit@2
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.