chore(deps): update dependency vite to v3.2.10 [security] #800
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:
3.0.0
->3.2.10
GitHub Vulnerability Alerts
CVE-2024-23331
Summary
Vite dev server option
server.fs.deny
can be bypassed on case-insensitive file systems using case-augmented versions of filenames. Notably this affects servers hosted on Windows.This bypass is similar to https://nvd.nist.gov/vuln/detail/CVE-2023-34092 -- with surface area reduced to hosts having case-insensitive filesystems.
Patches
Fixed in vite@5.0.12, vite@4.5.2, vite@3.2.8, vite@2.9.17
Details
Since
picomatch
defaults to case-sensitive glob matching, but the file server doesn't discriminate; a blacklist bypass is possible.See
picomatch
usage, wherenocase
is defaulted tofalse
: https://github.com/vitejs/vite/blob/v5.1.0-beta.1/packages/vite/src/node/server/index.ts#L632By requesting raw filesystem paths using augmented casing, the matcher derived from
config.server.fs.deny
fails to block access to sensitive files.PoC
Setup
npm create vite@latest
on a Standard Azure hosted Windows 10 instance.npm run dev -- --host 0.0.0.0
custom.secret
andproduction.pem
vite.config.js
withReproduction
curl -s http://20.12.242.81:5173/@​fs//
curl -s http://20.12.242.81:5173/@​fs/C:/Users/darbonzo/Desktop/vite-project/vite.config.js
curl -s http://20.12.242.81:5173/@​fs/C:/Users/darbonzo/Desktop/vite-project/custom.sEcReT
Proof
Impact
Who
What
server.fs.deny
are both discoverable, and accessibleCVE-2024-31207
Summary
Vite dev server option
server.fs.deny
did not deny requests for patterns with directories. An example of such a pattern is/foo/**/*
.Impact
Only apps setting a custom
server.fs.deny
that includes a pattern with directories, and explicitly exposing the Vite dev server to the network (using--host
orserver.host
config option) are affected.Patches
Fixed in vite@5.2.6, vite@5.1.7, vite@5.0.13, vite@4.5.3, vite@3.2.10, vite@2.9.18
Details
server.fs.deny
uses picomatch with the config of{ matchBase: true }
. matchBase only matches the basename of the file, not the path due to a bug (https://github.com/micromatch/picomatch/issues/89). The vite config docs read like you should be able to set fs.deny to glob with picomatch. Vite also does not set{ dot: true }
and that causes dotfiles not to be denied unless they are explicitly defined.Reproduction
Set fs.deny to
['**/.git/**']
and then curl for/.git/config
.matchBase: true
, you can get any file under.git/
(config, HEAD, etc).matchBase: false
, you cannot get any file under.git/
(config, HEAD, etc).Release Notes
vitejs/vite (vite)
v3.2.10
Compare Source
Please refer to CHANGELOG.md for details.
v3.2.8
Compare Source
Please refer to CHANGELOG.md for details.
v3.2.7
Compare Source
Please refer to CHANGELOG.md for details.
v3.2.6
Compare Source
v3.2.5
Compare Source
v3.2.4
Compare Source
v3.2.3
Compare Source
@types/node
as an optional peer dependency (#10757) (57916a4), closes #10757vite:afterUpdate
event (#9810) (1f57f84), closes #9810multilineCommentsRE
regex (fix #10689) (#10751) (51ed059), closes #10689 #10751v3.2.2
Compare Source
jsx
overrides esbuild options, reverts #10374 (#10714) (aacf6a4), closes #10374 #10714v3.2.1
Compare Source
v3.2.0
Compare Source
Main Changes
Multiple Entries for Library Mode
Library mode now supports multiple entries:
Check out the PR #7047, and the
build.lib
config docsbuild.modulePreload
optionsVite now allows filtering and modifying module preload dependencies for each entry and async chunk.
experimental.renderBuiltUrl
will also get called for preload asset paths. Andbuild.modulePreload.resolveDependencies
will be called both for JS dynamic imports preload lists and also for HTML preload lists for chunks imported from entry HTML files. Refer to the PR for more context #9938 and check out the modulePreload config docs. Note:build.modulePreloadPolyfill
is now deprecated, please migrate tobuild.modulePreload.polyfill
.Include Duplicate Assets in the Manifest
Laravel and other backends integrations will now get entries for every asset file, even if they have been de-duplicated. See #9928 for more information.
Customizable ErrorOverlay
You can now customize the ErrorOverlay by using css parts. Check out the PR for more details: #10234.
Features
new URL
to resolve package assets (#7837) (bafccf5), closes #7837server.fs.deny
(#10044) (df560b0), closes #10044Bug Fixes
import.meta.resolve
) (fixes #10430) (#10528) (64f19b9), closes #10430 #10528?direct
in id for postcss process (#10514) (67e7bf2), closes #10514moduleResolution=node16
(#10375) (8c4df1f), closes #10375mainFields
when resolving browser/module field (fixes #8659) (#10071) (533d13c), closes #8659 #10071build.ssr
is true (#9989) (7229251), closes #9989^2.79.1
(#10298) (2266d83), closes #10298Previous Changelogs
3.2.0-beta.4 (2022-10-24)
See 3.2.0-beta.4 changelog
3.2.0-beta.3 (2022-10-20)
See 3.2.0-beta.3 changelog
3.2.0-beta.2 (2022-10-14)
See 3.2.0-beta.2 changelog
3.2.0-beta.1 (2022-10-10)
See 3.2.0-beta.1 changelog
3.2.0-beta.0 (2022-10-05)
See 3.2.0-beta.0 changelog
v3.1.8
Compare Source
Please refer to CHANGELOG.md for details.
v3.1.7
Compare Source
Please refer to CHANGELOG.md for details.
v3.1.6
Compare Source
Please refer to CHANGELOG.md for details.
v3.1.5
Compare Source
Please refer to CHANGELOG.md for details.
v3.1.4
Compare Source
Please refer to CHANGELOG.md for details.
v3.1.3
Compare Source
rollupOptions.input
in lib mode (#10116) (c948e7d), closes #10116v3.1.2
Compare Source
v3.1.1
Compare Source
async
andawait
in code (#9854) (31f5ff3), closes #9854v3.1.0
Compare Source
Main Changes
Features
server.ssrTransform
(#9769) (246a087), closes #9769Bug Fixes
inlineDynamicImports
when input has length 1 (#9904) (9ac5075), closes #9904this
tovoid
(#9885) (2d2f2e5), closes #9885completeSystemWrapPlugin
capturesfunction ()
(fixes #9807) (#9821) (1ee0364), closes #9807 #9821injectQuery
break relative path (#9760) (61273b2), closes #9760Previous Changelogs
3.1.0-beta.2 (2022-09-02)
See 3.1.0-beta.2 changelog
3.1.0-beta.1 (2022-08-29)
See 3.1.0-beta.1 changelog
3.1.0-beta.0 (2022-08-25)
See 3.1.0-beta.0 changelog
v3.0.9
Compare Source
rollupOptions.output.dir
(fix #9100) (#9111) (3bffd14), closes #9100 #9111ssrTransform
object allocation (#9706) (6e58d9d), closes #9706v3.0.8
Compare Source
v3.0.7
Compare Source
Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 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 this update again.
This PR has been generated by Mend Renovate. View repository job log here.