Vite Server Options (server.fs.deny) can be bypassed using double forward-slash (//) allows any unauthenticated user to read file from the Vite root-path of the application including the default fs.deny settings (['.env', '.env.*', '*.{crt,pem}'])
Impact
Only users explicitly exposing the Vite dev server to the network (using --host or server.host config option) are affected, and only files in the immediate Vite project root folder could be exposed.
Patches
Fixed in vite@4.3.9, vite@4.2.3, vite@4.1.5, vite@4.0.5
And in the latest minors of the previous two majors: vite@3.2.7, vite@2.9.16
Details
Vite serve the application with under the root-path of the project while running on the dev mode. By default, vite using server options fs.deny to protected the sensitive information of the file. But, with simply double forward-slash, we can bypass this fs restriction.
PoC
Create a new latest project of vite using any package manager. (here I'm using react and vue templates for tested and pnpm)
Serve the application on dev mode using pnpm run dev.
Directly access the file from url using double forward-slash (//) (e.g: //.env, //.env.local)
Server Options fs.deny restrict successfully bypassed.
Proof Images:
Release Notes
vitejs/vite
### [`v4.1.5`](https://togithub.com/vitejs/vite/releases/tag/v4.1.5)
[Compare Source](https://togithub.com/vitejs/vite/compare/v4.1.4...v4.1.5)
Please refer to [CHANGELOG.md](https://togithub.com/vitejs/vite/blob/v4.1.5/packages/vite/CHANGELOG.md) for details.
### [`v4.1.4`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small414-2023-02-21-small)
[Compare Source](https://togithub.com/vitejs/vite/compare/v4.1.3...v4.1.4)
- fix(define): should not stringify vite internal env ([#12120](https://togithub.com/vitejs/vite/issues/12120)) ([73c3999](https://togithub.com/vitejs/vite/commit/73c3999)), closes [#12120](https://togithub.com/vitejs/vite/issues/12120)
- docs: update rollup docs links ([#12130](https://togithub.com/vitejs/vite/issues/12130)) ([439a73f](https://togithub.com/vitejs/vite/commit/439a73f)), closes [#12130](https://togithub.com/vitejs/vite/issues/12130)
### [`v4.1.3`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small413-2023-02-20-small)
[Compare Source](https://togithub.com/vitejs/vite/compare/v4.1.2...v4.1.3)
- fix: catch and handle websocket error ([#11991](https://togithub.com/vitejs/vite/issues/11991)) ([#12007](https://togithub.com/vitejs/vite/issues/12007)) ([4b5cc9f](https://togithub.com/vitejs/vite/commit/4b5cc9f)), closes [#11991](https://togithub.com/vitejs/vite/issues/11991) [#12007](https://togithub.com/vitejs/vite/issues/12007)
- fix: do not append version query param when scanning for dependencies ([#11961](https://togithub.com/vitejs/vite/issues/11961)) ([575bcf6](https://togithub.com/vitejs/vite/commit/575bcf6)), closes [#11961](https://togithub.com/vitejs/vite/issues/11961)
- fix(css): handle pure css chunk heuristic with special queries ([#12091](https://togithub.com/vitejs/vite/issues/12091)) ([a873af5](https://togithub.com/vitejs/vite/commit/a873af5)), closes [#12091](https://togithub.com/vitejs/vite/issues/12091)
- fix(esbuild): umd helper insert into wrong position in lib mode ([#11988](https://togithub.com/vitejs/vite/issues/11988)) ([86bc243](https://togithub.com/vitejs/vite/commit/86bc243)), closes [#11988](https://togithub.com/vitejs/vite/issues/11988)
- fix(html): respect disable modulepreload ([#12111](https://togithub.com/vitejs/vite/issues/12111)) ([6c50119](https://togithub.com/vitejs/vite/commit/6c50119)), closes [#12111](https://togithub.com/vitejs/vite/issues/12111)
- fix(html): rewrite assets url in `
Configuration
📅 Schedule: Branch creation - "" (UTC), 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.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
4.1.1
->4.1.5
GitHub Vulnerability Alerts
CVE-2023-34092
Summary
Vite Server Options (
server.fs.deny
) can be bypassed using double forward-slash (//) allows any unauthenticated user to read file from the Vite root-path of the application including the defaultfs.deny
settings (['.env', '.env.*', '*.{crt,pem}']
)Impact
Only users explicitly exposing the Vite dev server to the network (using
--host
orserver.host
config option) are affected, and only files in the immediate Vite project root folder could be exposed.Patches
Fixed in vite@4.3.9, vite@4.2.3, vite@4.1.5, vite@4.0.5 And in the latest minors of the previous two majors: vite@3.2.7, vite@2.9.16
Details
Vite serve the application with under the root-path of the project while running on the dev mode. By default, vite using server options fs.deny to protected the sensitive information of the file. But, with simply double forward-slash, we can bypass this fs restriction.
PoC
//
) (e.g://.env
,//.env.local
)fs.deny
restrict successfully bypassed.Proof Images:
Release Notes
vitejs/vite
### [`v4.1.5`](https://togithub.com/vitejs/vite/releases/tag/v4.1.5) [Compare Source](https://togithub.com/vitejs/vite/compare/v4.1.4...v4.1.5) Please refer to [CHANGELOG.md](https://togithub.com/vitejs/vite/blob/v4.1.5/packages/vite/CHANGELOG.md) for details. ### [`v4.1.4`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small414-2023-02-21-small) [Compare Source](https://togithub.com/vitejs/vite/compare/v4.1.3...v4.1.4) - fix(define): should not stringify vite internal env ([#12120](https://togithub.com/vitejs/vite/issues/12120)) ([73c3999](https://togithub.com/vitejs/vite/commit/73c3999)), closes [#12120](https://togithub.com/vitejs/vite/issues/12120) - docs: update rollup docs links ([#12130](https://togithub.com/vitejs/vite/issues/12130)) ([439a73f](https://togithub.com/vitejs/vite/commit/439a73f)), closes [#12130](https://togithub.com/vitejs/vite/issues/12130) ### [`v4.1.3`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small413-2023-02-20-small) [Compare Source](https://togithub.com/vitejs/vite/compare/v4.1.2...v4.1.3) - fix: catch and handle websocket error ([#11991](https://togithub.com/vitejs/vite/issues/11991)) ([#12007](https://togithub.com/vitejs/vite/issues/12007)) ([4b5cc9f](https://togithub.com/vitejs/vite/commit/4b5cc9f)), closes [#11991](https://togithub.com/vitejs/vite/issues/11991) [#12007](https://togithub.com/vitejs/vite/issues/12007) - fix: do not append version query param when scanning for dependencies ([#11961](https://togithub.com/vitejs/vite/issues/11961)) ([575bcf6](https://togithub.com/vitejs/vite/commit/575bcf6)), closes [#11961](https://togithub.com/vitejs/vite/issues/11961) - fix(css): handle pure css chunk heuristic with special queries ([#12091](https://togithub.com/vitejs/vite/issues/12091)) ([a873af5](https://togithub.com/vitejs/vite/commit/a873af5)), closes [#12091](https://togithub.com/vitejs/vite/issues/12091) - fix(esbuild): umd helper insert into wrong position in lib mode ([#11988](https://togithub.com/vitejs/vite/issues/11988)) ([86bc243](https://togithub.com/vitejs/vite/commit/86bc243)), closes [#11988](https://togithub.com/vitejs/vite/issues/11988) - fix(html): respect disable modulepreload ([#12111](https://togithub.com/vitejs/vite/issues/12111)) ([6c50119](https://togithub.com/vitejs/vite/commit/6c50119)), closes [#12111](https://togithub.com/vitejs/vite/issues/12111) - fix(html): rewrite assets url in `Configuration
📅 Schedule: Branch creation - "" (UTC), 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 has been generated by Mend Renovate. View repository job log here.