chore(deps): update dependency vite to v6.4.1 [security] #648
  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:
6.2.0->6.4.1GitHub Vulnerability Alerts
CVE-2025-30208
Summary
The contents of arbitrary files can be returned to the browser.
Impact
Only apps explicitly exposing the Vite dev server to the network (using
--hostorserver.hostconfig option) are affected.Details
@fsdenies access to files outside of Vite serving allow list. Adding?raw??or?import&raw??to the URL bypasses this limitation and returns the file content if it exists. This bypass exists because trailing separators such as?are removed in several places, but are not accounted for in query string regexes.PoC
CVE-2025-31125
Summary
The contents of arbitrary files can be returned to the browser.
Impact
Only apps explicitly exposing the Vite dev server to the network (using
--hostorserver.hostconfig option) are affected.Details
?inline&import(originally reported as?import&?inline=1.wasm?init)?raw?import/@​fs/isn't needed to reproduce the issue for files inside the project root.PoC
Original report (check details above for simplified cases):
The ?import&?inline=1.wasm?init ending allows attackers to read arbitrary files and returns the file content if it exists. Base64 decoding needs to be performed twice
Example full URL
http://localhost:5173/@​fs/C:/windows/win.ini?import&?inline=1.wasm?initCVE-2025-31486
Summary
The contents of arbitrary files can be returned to the browser.
Impact
Only apps explicitly exposing the Vite dev server to the network (using --host or server.host config option) are affected.
Details
.svgRequests ending with
.svgare loaded at this line.https://github.com/vitejs/vite/blob/037f801075ec35bb6e52145d659f71a23813c48f/packages/vite/src/node/plugins/asset.ts#L285-L290
By adding
?.svgwith?.wasm?initor withsec-fetch-dest: scriptheader, the restriction was able to bypass.This bypass is only possible if the file is smaller than
build.assetsInlineLimit(default: 4kB) and when using Vite 6.0+.relative paths
The check was applied before the id normalization. This allowed requests to bypass with relative paths (e.g.
../../).PoC
npm create vite@latest cd vite-project/ npm install npm run devsend request to read
etc/passwdcurl 'http://127.0.0.1:5173/etc/passwd?.svg?.wasm?init'curl 'http://127.0.0.1:5173/@​fs/x/x/x/vite-project/?/../../../../../etc/passwd?import&?raw'CVE-2025-32395
Summary
The contents of arbitrary files can be returned to the browser if the dev server is running on Node or Bun.
Impact
Only apps with the following conditions are affected.
Details
HTTP 1.1 spec (RFC 9112) does not allow
#inrequest-target. Although an attacker can send such a request. For those requests with an invalidrequest-line(it includesrequest-target), the spec recommends to reject them with 400 or 301. The same can be said for HTTP 2 (ref1, ref2, ref3).On Node and Bun, those requests are not rejected internally and is passed to the user land. For those requests, the value of
http.IncomingMessage.urlcontains#. Vite assumedreq.urlwon't contain#when checkingserver.fs.deny, allowing those kinds of requests to bypass the check.On Deno, those requests are not rejected internally and is passed to the user land as well. But for those requests, the value of
http.IncomingMessage.urldid not contain#.PoC
send request to read
/etc/passwdCVE-2025-46565
Summary
The contents of files in the project
rootthat are denied by a file matching pattern can be returned to the browser.Impact
Only apps explicitly exposing the Vite dev server to the network (using --host or server.host config option) are affected.
Only files that are under project
rootand are denied by a file matching pattern can be bypassed..env,.env.*,*.{crt,pem},**/.env**/.git/**,.git/**,.git/**/*Details
server.fs.denycan contain patterns matching against files (by default it includes.env,.env.*,*.{crt,pem}as such patterns).These patterns were able to bypass for files under
rootby using a combination of slash and dot (/.).PoC
CVE-2025-62522
Summary
Files denied by
server.fs.denywere sent if the URL ended with\when the dev server is running on Windows.Impact
Only apps that match the following conditions are affected:
server.hostconfig option)Details
server.fs.denycan contain patterns matching against files (by default it includes.env,.env.*,*.{crt,pem}as such patterns). These patterns were able to bypass by using a back slash(\). The root cause is thatfs.readFile('/foo.png/')loads/foo.png.PoC
Release Notes
vitejs/vite (vite)
v6.4.1Compare Source
Please refer to CHANGELOG.md for details.
v6.4.0Compare Source
Please refer to CHANGELOG.md for details.
v6.3.7Compare Source
Please refer to CHANGELOG.md for details.
v6.3.6Compare Source
Please refer to CHANGELOG.md for details.
v6.3.5Compare Source
Today, we're excited to announce the release of the next Vite major:
⚠ BREAKING CHANGES
Objectvariable in ssr transformed code (#19996)experimental.skipSsrTransformoption (#20038)HotBroadcaster(#19988)build.targetand name itbaseline-widely-available(#20007)HotBroadcasterrelated types (#19987)enforce/transformfromtransformIndexHtmlhook (#19349)Features
configurePreviewServerhook (#20224) (b989c42)configureServerhook (#20222) (f5cc4c0)this.meta.viteVersion(#20088) (f55bf41)createServer(#19894) (c1ae9bd)build.targetand name itbaseline-widely-available(#20007) (4a8aa82)css.preprocessorMaxWorkersand default totrue(#19992) (70aee13)optimizeDeps.noDiscovery(#19984) (6d2dcb4)Bug Fixes
import.meta.urlin bundled Vite (#20235) (3bf3a8a)ssrExportNameKey(#20266) (ac302a7)normalizeModuleId(#20277) (9b98dcb).then(m => m.a)(#20117) (7b7410a)build.rollupOptions.inputresolution with rollup (#20080) (9759c29)Objectvariable in ssr transformed code (#19996) (fceff60)preprocessorOptions.sass(fix #20150) (#20166) (7db56be)cleanGlobalCLIOptions()clean--force(#19999) (d4a171a)environments.*.resolve.noExternalproperly (#20077) (daf4a25)server.allowedHosts: truecorrectly (#20138) (2ade756)computeEntriesfailed (#20079) (b742b46)optimizeDeps.entriesvalues as globs (#20045) (1422395)Performance Improvements
numberToPos(#20244) (3f46901)Documentation
Miscellaneous Chores
ResolvedConfig.createResolverand recommendcreateIdResolver(#20031) (d101d64)devEnvironmentOptions.moduleRunnerTransform(#20035) (338081d)patch-typesplugin for bundling vite (#20089) (c127955)Code Refactoring
src/node/publicUtils.tstosrc/node/index.ts(#20086) (999a1ed)experimental.skipSsrTransformoption (#20038) (6c3dd8e)HotBroadcaster(#19988) (cda8c94)options?.ssrsupport in clientInjectionsPlugin (#19589) (88e0076)HotBroadcasterrelated types (#19987) (86b5e00)enforce/transformfromtransformIndexHtmlhook (#19349) (6198b9d)legacy.proxySsrExternalModules(#20013) (a37ac83)hostValidationMiddleware(#20019) (83bf90e)mergeWithDefaultsfor experimental option (#20012) (98c5741)Tests
useDefineForClassFieldstest (#20143) (d90796e)Continuous Integration
Beta Changelogs
7.0.0-beta.2 (2025-06-17)
See 7.0.0-beta.2 changelog
7.0.0-beta.1 (2025-06-10)
See 7.0.0-beta.1 changelog
7.0.0-beta.0 (2025-06-02)
See 7.0.0-beta.0 changelog
v6.3.4Compare Source
Bug Fixes
requireto import externals in optimized dependencies (#19940) (efc5eab)Code Refactoring
v6.3.3Compare Source
Bug Fixes
Performance Improvements
Tests
ssrTransformre-export deps and test stacktrace with first line (#19629) (9399cda)v6.3.2Compare Source
Features
Bug Fixes
css.lightningcssoption in css minification process (#19879) (b5055e0)v6.3.1Compare Source
Bug Fixes
Promise.allSettledin preload function (#19805) (35c7f35)transformcalls (#19878) (a152b7c)v6.3.0Compare Source
Bug Fixes
hot.invalidatein circular deps (#19870) (d4ee5e8)v6.2.7Compare Source
Please refer to CHANGELOG.md for details.
v6.2.6Compare Source
Please refer to CHANGELOG.md for details.
v6.2.5Compare Source
Please refer to CHANGELOG.md for details.
v6.2.4Compare Source
Please refer to CHANGELOG.md for details.
v6.2.3Compare Source
Please refer to CHANGELOG.md for details.
v6.2.2Compare Source
Features
base(#19616) (2476391)Bug Fixes
ssrRewriteStacktrace(#19612) (4309755)Miscellaneous Chores
v6.2.1Compare Source
Features
*?url&no-inlinetype and warning for.json?inline/.json?no-inline(#19566) (c0d3667)Bug Fixes
Performance Improvements
Miscellaneous Chores
Code Refactoring
isBuildcheck from preAliasPlugin (#19587) (c9e086d)applyToEnvironmentin internal plugins (#19588) (f678442)Tests
Configuration
📅 Schedule: Branch creation - "" in timezone EST, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.