chore(deps): update dependency vite to v6 [security] (release-0.33) #5498
+822
−254
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:
^5.4.12
->^6.0.0
GitHub 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
--host
orserver.host
config option) are affected.Details
@fs
denies 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
--host
orserver.host
config 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?init
CVE-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
.svg
Requests ending with
.svg
are loaded at this line.https://github.com/vitejs/vite/blob/037f801075ec35bb6e52145d659f71a23813c48f/packages/vite/src/node/plugins/asset.ts#L285-L290
By adding
?.svg
with?.wasm?init
or withsec-fetch-dest: script
header, 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 dev
send request to read
etc/passwd
curl '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'
Vite bypasses server.fs.deny when using ?raw??
CVE-2025-30208 / GHSA-x574-m823-4x7w
More information
Details
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
orserver.host
config option) are affected.Details
@fs
denies 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
Severity
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N
References
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Vite has a
server.fs.deny
bypassed forinline
andraw
with?import
queryCVE-2025-31125 / GHSA-4r4m-qw57-chr8
More information
Details
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
orserver.host
config 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?init
Severity
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N
References
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Vite allows server.fs.deny to be bypassed with .svg or relative paths
CVE-2025-31486 / GHSA-xcj6-pq6g-qj4x
More information
Details
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
.svg
Requests ending with
.svg
are loaded at this line.https://github.com/vitejs/vite/blob/037f801075ec35bb6e52145d659f71a23813c48f/packages/vite/src/node/plugins/asset.ts#L285-L290
By adding
?.svg
with?.wasm?init
or withsec-fetch-dest: script
header, 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 dev
send request to read
etc/passwd
curl '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'
Severity
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N
References
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Release Notes
vitejs/vite (vite)
v6.1.4
Compare Source
Please refer to CHANGELOG.md for details.
v6.1.3
Compare Source
Please refer to CHANGELOG.md for details.
v6.1.2
Compare Source
Please refer to CHANGELOG.md for details.
v6.1.1
Compare Source
.[cm]?[tj]sx?
static assets are JS mime (#19453) (e7ba55e), closes #19453*.ipv4
address in cert (#19416) (973283b), closes #19416v6.1.0
Compare Source
Features
port
in the logged error message after failed WS connection withEADDRINUSE
(#19212) (14027b0), closes #19212.jxl
(#18855) (57b397c), closes #18855builtins
environmentresolve
(#18584) (2c2d521), closes #18584defaultAllowedOrigins
for user-land config and 3rd party plugins (#19259) (dc8946b), closes #19259wasm
to the compressible assets regex (#19085) (ce84142), closes #19085Fixes
resolveLibCssFilename
(#19324) (f183bdf), closes #19324vite optimize
(#19347) (19ffad0), closes #19347server.preTransformRequests
(#19272) (12aaa58), closes #19272nodeLikeBuiltins
forssr.target: 'webworker'
withoutnoExternal: true
(#19313) (9fc31b6), closes #19313@plugin
imports of JS files treated as CSS and rebased (fix #19268) (#19269) (602b373), closes #19268 #19269resolve.builtin
is empty (#19312) (b7aba0b), closes #19312ssrLoadModule
(#19290) (353c467), closes #19290--force
work for all environments (#18901) (51a42c6), closes #18901RegExp
values withnew RegExp
instead ofstructuredClone
(fix #19245, fix #1 (56ad2be), closes #19245 #18875 #19247Chore
vite optimize
command (#19348) (6e0e3c0), closes #19348build.manifest
jsdocs (#19332) (4583781), closes #19332scanImports
not being used in ssr (#19285) (fbbc6da), closes #19285Beta Changelogs
6.1.0-beta.2 (2025-02-04)
See 6.1.0-beta.2 changelog
6.1.0-beta.1 (2025-02-04)
See 6.1.0-beta.1 changelog
6.1.0-beta.0 (2025-01-24)
See 6.1.0-beta.0 changelog
v6.0.14
Compare Source
Please refer to CHANGELOG.md for details.
v6.0.13
Compare Source
Please refer to CHANGELOG.md for details.
v6.0.12
Compare Source
Please refer to CHANGELOG.md for details.
v6.0.11
Compare Source
preview.allowedHosts
with specific values was not respected (#19246) (aeb3ec8), closes #19246v6.0.10
Compare Source
server.origin
URL (#19241) (2495022), closes #19241v6.0.9
Compare Source
server.allowedHosts
(bd896fb)server.cors: false
to disallow fetching from untrusted origins (b09572a)v6.0.8
Compare Source
server.close()
only called once (#19204) (db81c2d), closes #19204defaultServerConditions
(#19174) (ad75c56), closes #19174ESBuildOptions.include / exclude
type to allowreadonly (string | RegExp)[]
(ea53e70), closes #19146v6.0.7
Compare Source
minify
whenbuilder.sharedPlugins: true
(#19025) (f7b1964), closes #19025vite-ignore
attribute for inline script (#19062) (a492253), closes #19062v6.0.6
Compare Source
fetchModule
-side resolve (#18361) (9f10261), closes #18361build.target
(#19047) (0e9e81f), closes #19047v6.0.5
Compare Source
v6.0.4
Compare Source
this.resolve
skipSelf should not skip for differentid
orimport
(#18903) (4727320), closes #18903pluginContainer.getModuleInfo
(#18895) (258cdd6), closes #18895url()
when lightningcss is used (#18997) (3734f80), closes #18997true
(#18899) (8a6bb4e), closes #18899handleInvoke
(#18902) (27f691b), closes #18902ModuleRunnerTransport
invoke
API (#18865) (e5f5301), closes #18865v6.0.3
Compare Source
ModuleRunnerTransport#invoke
more explicit (#18851) (a75fc31), closes #18851environments.ssr.resolve
with rootssr
config (#18857) (3104331), closes #18857v6.0.2
Compare Source
node_modules
if deno (#18823) (a20267b), closes #18823style.css
as a key for the style file forcssCodesplit: false
(#18820) (ec51115), closes #18820external
by default (#18821) (2250ffa), closes #18821ssr.target: 'webworker'
defaults as fallback (#18827) (b39e696), closes #18827v6.0.1
Compare Source
preview.allowedHosts
with specific values was not respected (#19246) (aeb3ec8), closes #19246Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, 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.