Every CVE Search/ Get API key

CVE-2026-53571

Vite: `server.fs.deny` bypass on Windows alternate paths

8.2 HighPublic exploitFix available

Vite is a frontend tooling framework for JavaScript. Prior to 8.0.16, 7.3.5, and 6.4.3, the contents of files that are specified by server.fs.deny can be returned to the browser on Windows. Vite’s dev server denies direct access to sensitive files through server.fs.deny, including entries such as .env, .env.*, and *.{crt,pem}. However, on Windows, the deny logic does not correctly normalize NTFS ADS path forms before access checks are applied. Because of this, requests such as /.env::$DATA?raw are treated as allowed paths, while Windows resolves them to the original file's default data stream. Similar to that, Windows allows accessing a file using a different name with the 8.3 short name compatibility feature. Vite did not reject accessing files via them. This vulnerability is fixed in 8.0.16, 7.3.5, and 6.4.3.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
None
Availability
None

Exploit likelihood

0.58%Up 0.5 points since Jun 12, 2026
90%50%10%1%

What each source reports

CVE List Score used 8.2

Vite: `server.fs.deny` bypass on Windows alternate paths

Vite is a frontend tooling framework for JavaScript. Prior to 8.0.16, 7.3.5, and 6.4.3, the contents of files that are specified by server.fs.deny can be returned to the browser on Windows. Vite’s dev server denies direct access to sensitive files through server.fs.deny, including entries such as .env, .env.*, and *.{crt,pem}. However, on Windows, the deny logic does not correctly normalize NTFS ADS path forms before access checks are applied. Because of this, requests such as /.env::$DATA?raw are treated as allowed paths, while Windows resolves them to the original file's default data stream. Similar to that, Windows allows accessing a file using a different name with the 8.3 short name compatibility feature. Vite did not reject accessing files via them. This vulnerability is fixed in 8.0.16, 7.3.5, and 6.4.3.

Record
CVE-2026-53571
CVSS 4.0
8.2 HighCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Weakness
CWE-22, CWE-200
Updated
2026-11-02
EUVDEUVD-2026-38303 8.2

Vite is a frontend tooling framework for JavaScript. Prior to 8.0.16, 7.3.5, and 6.4.3, the contents of files that are specified by server.fs.deny can be returned to the browser on Windows. Vite’s dev server denies direct access to sensitive files through server.fs.deny, including entries such as .env, .env.*, and *.{crt,pem}. However, on Windows, the deny logic does not correctly normalize NTFS ADS path forms before access checks are applied. Because of this, requests such as /.env::$DATA?raw are treated as allowed paths, while Windows resolves them to the original file's default data stream. Similar to that, Windows allows accessing a file using a different name with the 8.3 short name compatibility feature. Vite did not reject accessing files via them. This vulnerability is fixed in 8.0.16, 7.3.5, and 6.4.3.

Record
EUVD-2026-38303
CVSS 4.0
8.2 HighCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-fx2h-pf6j-xcff 6.9

vite: `server.fs.deny` bypass on Windows alternate paths

Summary

The contents of files that are specified by server.fs.deny can be returned to the browser on Windows.

Impact

Only apps that match the following conditions are affected:

  • explicitly exposes the Vite dev server to the network (using --host or server.host config option)
  • the sensitive file exists in the allowed directories specified by server.fs.allow
  • either of:
    • the sensitive file exists in an NTFS volume
    • the dev server is running on Windows and the sensitive file exists in a volume that 8.3 short name generation is enabled (it is enabled by default on system volumes)

Details

Vite’s dev server denies direct access to sensitive files through server.fs.deny, including entries such as .env, .env.*, and *.{crt,pem}. However, on Windows, the deny logic does not correctly normalize NTFS ADS path forms before access checks are applied. Because of this, requests such as /.env::$DATA?raw are treated as allowed paths, while Windows resolves them to the original file's default data stream.

Similar to that, Windows allows accessing a file using a different name with the 8.3 short name compatibility feature. Vite did not reject accessing files via them.

PoC

$ npm create vite@latest
$ cd vite-project/
$ npm install
$ npm run dev

Access via browser at http://localhost:5173/.env::$DATA?raw <img width="388" height="129" alt="deecc1315123883cfd0f9c26a002845a" src="https://github.com/user-attachments/assets/895c6012-4e2e-4a35-babb-69bbf3ee7170" />

Example expected result:

  • /.env::$DATA?raw returns the contents of .env
  • /tls.pem::$DATA?raw returns the contents of tls.pem
Record
GHSA-fx2h-pf6j-xcff
CVSS 4.0
6.9 MediumCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:H/SI:N/SA:N
Weakness
CWE-22, CWE-200
Updated
2026-11-02
NVD 8.2

Vite is a frontend tooling framework for JavaScript. Prior to 8.0.16, 7.3.5, and 6.4.3, the contents of files that are specified by server.fs.deny can be returned to the browser on Windows. Vite’s dev server denies direct access to sensitive files through server.fs.deny, including entries such as .env, .env.*, and *.{crt,pem}. However, on Windows, the deny logic does not correctly normalize NTFS ADS path forms before access checks are applied. Because of this, requests such as /.env::$DATA?raw are treated as allowed paths, while Windows resolves them to the original file's default data stream. Similar to that, Windows allows accessing a file using a different name with the 8.3 short name compatibility feature. Vite did not reject accessing files via them. This vulnerability is fixed in 8.0.16, 7.3.5, and 6.4.3.

Record
CVE-2026-53571
CVSS 4.0
8.2 HighCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Weakness
CWE-22, CWE-200
Updated
2026-11-02
OSV 8.2

Vite: `server.fs.deny` bypass on Windows alternate paths

Vite is a frontend tooling framework for JavaScript. Prior to 8.0.16, 7.3.5, and 6.4.3, the contents of files that are specified by server.fs.deny can be returned to the browser on Windows. Vite’s dev server denies direct access to sensitive files through server.fs.deny, including entries such as .env, .env.*, and *.{crt,pem}. However, on Windows, the deny logic does not correctly normalize NTFS ADS path forms before access checks are applied. Because of this, requests such as /.env::$DATA?raw are treated as allowed paths, while Windows resolves them to the original file's default data stream. Similar to that, Windows allows accessing a file using a different name with the 8.3 short name compatibility feature. Vite did not reject accessing files via them. This vulnerability is fixed in 8.0.16, 7.3.5, and 6.4.3.

Record
CVE-2026-53571
CVSS 4.0
8.2 HighCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Weakness
CWE-200, CWE-22
Updated
2026-11-04
OSVGHSA-fx2h-pf6j-xcff 6.9

vite: `server.fs.deny` bypass on Windows alternate paths

Summary

The contents of files that are specified by server.fs.deny can be returned to the browser on Windows.

Impact

Only apps that match the following conditions are affected:

  • explicitly exposes the Vite dev server to the network (using --host or server.host config option)
  • the sensitive file exists in the allowed directories specified by server.fs.allow
  • either of:
    • the sensitive file exists in an NTFS volume
    • the dev server is running on Windows and the sensitive file exists in a volume that 8.3 short name generation is enabled (it is enabled by default on system volumes)

Details

Vite’s dev server denies direct access to sensitive files through server.fs.deny, including entries such as .env, .env.*, and *.{crt,pem}. However, on Windows, the deny logic does not correctly normalize NTFS ADS path forms before access checks are applied. Because of this, requests such as /.env::$DATA?raw are treated as allowed paths, while Windows resolves them to the original file's default data stream.

Similar to that, Windows allows accessing a file using a different name with the 8.3 short name compatibility feature. Vite did not reject accessing files via them.

PoC

$ npm create vite@latest
$ cd vite-project/
$ npm install
$ npm run dev

Access via browser at http://localhost:5173/.env::$DATA?raw <img width="388" height="129" alt="deecc1315123883cfd0f9c26a002845a" src="https://github.com/user-attachments/assets/895c6012-4e2e-4a35-babb-69bbf3ee7170" />

Example expected result:

  • /.env::$DATA?raw returns the contents of .env
  • /tls.pem::$DATA?raw returns the contents of tls.pem
Record
GHSA-fx2h-pf6j-xcff
CVSS 4.0
6.9 MediumCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:H/SI:N/SA:N
Weakness
CWE-200, CWE-22
Updated
2026-11-02
Show 20 moreShow less
OSVCLSA-2026-1784423356 No score

TuxCare security update for vite (1 CVE)

TuxCare rebuilt vite to address 1 CVE. Fixed in 5.4.21-tuxcare.2.

Record
CLSA-2026-1784423356
Updated
2026-11-02
OSVCLSA-2026-1784596270 No score

TuxCare security update for vite (3 CVEs)

TuxCare rebuilt vite to address 3 CVEs. Fixed in 4.5.14-tuxcare.3.

Record
CLSA-2026-1784596270
Updated
2026-11-02
OSVCLSA-2026-1784683083 No score

TuxCare security update for vite (6 CVEs)

TuxCare rebuilt vite to address 6 CVEs. Fixed in 2.9.18-tuxcare.2.

Record
CLSA-2026-1784683083
Updated
2026-11-02
OSVCLSA-2026-1786362148 No score

TuxCare security update for vite (3 CVEs)

TuxCare rebuilt vite to address 3 CVEs. Fixed in 4.5.5-tuxcare.9.

Record
CLSA-2026-1786362148
Updated
2026-11-02
OSVCLSA-2026-1787839491 No score

TuxCare security update for vite (1 CVE)

TuxCare rebuilt vite to address 1 CVE. Fixed in 6.4.2-tuxcare.1.

Record
CLSA-2026-1787839491
Updated
2026-11-02
OSVCLSA-2026-1788814439 No score

TuxCare security update for vite (1 CVE)

TuxCare rebuilt vite to address 1 CVE. Fixed in 3.2.11-tuxcare.4.

Record
CLSA-2026-1788814439
Updated
2026-11-02
OSVCLSA-2026-1788966294 No score

TuxCare security update for vite (2 CVEs)

TuxCare rebuilt vite to address 2 CVEs. Fixed in 8.0.12-tuxcare.1.

Record
CLSA-2026-1788966294
Updated
2026-11-02
OSVCLSA-2026-1788967519 No score

TuxCare security update for vite (2 CVEs)

TuxCare rebuilt vite to address 2 CVEs. Fixed in 8.0.10-tuxcare.1.

Record
CLSA-2026-1788967519
Updated
2026-11-02
OSVCLSA-2026-1788976179 No score

TuxCare security update for vite (2 CVEs)

TuxCare rebuilt vite to address 2 CVEs. Fixed in 7.3.2-tuxcare.1.

Record
CLSA-2026-1788976179
Updated
2026-11-02
OSVCLSA-2026-1789031855 No score

TuxCare security update for vite (16 CVEs)

TuxCare rebuilt vite to address 16 CVEs. Fixed in 4.1.5-tuxcare.1.

Record
CLSA-2026-1789031855
Updated
2026-11-02
OSVCLSA-2026-1789032018 No score

TuxCare security update for vite (2 CVEs)

TuxCare rebuilt vite to address 2 CVEs. Fixed in 8.0.8-tuxcare.1.

Record
CLSA-2026-1789032018
Updated
2026-11-02
OSVCLSA-2026-1790080922 No score

TuxCare security update for vite (2 CVEs)

TuxCare rebuilt vite to address 2 CVEs. Fixed in 5.4.14-tuxcare.3.

Record
CLSA-2026-1790080922
Updated
2026-11-02
OSVCLSA-2026-1790758113 No score

TuxCare security update for vite (2 CVEs)

TuxCare rebuilt vite to address 2 CVEs. Fixed in 8.0.9-tuxcare.1.

Record
CLSA-2026-1790758113
Updated
2026-11-02
OSVCLSA-2026-1790759630 No score

TuxCare security update for vite (2 CVEs)

TuxCare rebuilt vite to address 2 CVEs. Fixed in 7.3.3-tuxcare.1.

Record
CLSA-2026-1790759630
Updated
2026-11-02
OSVCLSA-2026-1791795546 No score

TuxCare security update for vite (2 CVEs)

TuxCare rebuilt vite to address 2 CVEs. Fixed in 5.0.12-tuxcare.4.

Record
CLSA-2026-1791795546
Updated
2026-11-02
OSVCLSA-2026-1791807914 No score

TuxCare security update for vite (3 CVEs)

TuxCare rebuilt vite to address 3 CVEs. Fixed in 4.5.0-tuxcare.2.

Record
CLSA-2026-1791807914
Updated
2026-11-02
OSVCLSA-2026-1791897792 No score

TuxCare security update for vite (8 CVEs)

TuxCare rebuilt vite to address 8 CVEs. Fixed in 5.4.10-tuxcare.4.

Record
CLSA-2026-1791897792
Updated
2026-11-02
OSVCLSA-2026-1792225953 No score

TuxCare security update for @vitejs/plugin-react (7 CVEs)

TuxCare rebuilt @vitejs/plugin-react to address 7 CVEs. Fixed in 2.9.18-tuxcare.2.

Record
CLSA-2026-1792225953
Updated
2026-11-02
OSVCLSA-2026-1792225954 No score

TuxCare security update for @vitejs/plugin-react (1 CVE)

TuxCare rebuilt @vitejs/plugin-react to address 1 CVE. Fixed in 3.2.11-tuxcare.4.

Record
CLSA-2026-1792225954
Updated
2026-11-02
OSVROOT-APP-NPM-CVE-2026-53571 No score

CVE-2026-53571 in vite - Patched by Root

Root has patched CVE-2026-53571 in the vite package for Root:npm. Multiple fixed versions available.

Record
ROOT-APP-NPM-CVE-2026-53571
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
vite
npm
8.0.0 to 8.0.15
8.0.16
vite
npm
7.0.0 to 7.3.4
7.3.5
vite
npm
through 6.4.2
6.4.3
vite-plus
npm
through 0.1.23
0.1.24
vite
TuxCare:npm
5.4.21-tuxcare.0 up to 5.4.21-tuxcare.2, plus listed versions
5.4.215.4.21-tuxcare.1
5.4.21-tuxcare.2
vite
TuxCare:npm
From an advisory covering 3 CVEs
4.5.14-tuxcare.0 up to 4.5.14-tuxcare.3, plus listed versions
4.5.144.5.14-tuxcare.14.5.14-tuxcare.2
4.5.14-tuxcare.3
vite
TuxCare:npm
From an advisory covering 6 CVEs
2.9.18-tuxcare.0 up to 2.9.18-tuxcare.2, plus listed versions
2.9.182.9.18-tuxcare.1
2.9.18-tuxcare.2
vite
TuxCare:npm
From an advisory covering 3 CVEs
4.5.5-tuxcare.0 up to 4.5.5-tuxcare.9, plus listed versions
4.5.54.5.5-tuxcare.14.5.5-tuxcare.24.5.5-tuxcare.34.5.5-tuxcare.4
Show 4 moreShow less
4.5.5-tuxcare.54.5.5-tuxcare.64.5.5-tuxcare.74.5.5-tuxcare.8
4.5.5-tuxcare.9
vite
TuxCare:npm
6.4.2-tuxcare.0 up to 6.4.2-tuxcare.1, plus listed versions
6.4.2
6.4.2-tuxcare.1
vite
TuxCare:npm
3.2.11-tuxcare.0 up to 3.2.11-tuxcare.4, plus listed versions
3.2.113.2.11-tuxcare.13.2.11-tuxcare.23.2.11-tuxcare.3
3.2.11-tuxcare.4
Show 19 moreShow less
Affected packages
PackageAffectedFixed
vite
TuxCare:npm
From an advisory covering 2 CVEs
8.0.12-tuxcare.0 up to 8.0.12-tuxcare.1, plus listed versions
8.0.12
8.0.12-tuxcare.1
vite
TuxCare:npm
From an advisory covering 2 CVEs
8.0.10-tuxcare.0 up to 8.0.10-tuxcare.1, plus listed versions
8.0.10
8.0.10-tuxcare.1
vite
TuxCare:npm
From an advisory covering 2 CVEs
7.3.2-tuxcare.0 up to 7.3.2-tuxcare.1, plus listed versions
7.3.2
7.3.2-tuxcare.1
vite
TuxCare:npm
From an advisory covering 16 CVEs
4.1.5-tuxcare.0 up to 4.1.5-tuxcare.1, plus listed versions
4.1.5
4.1.5-tuxcare.1
vite
TuxCare:npm
From an advisory covering 2 CVEs
8.0.8-tuxcare.0 up to 8.0.8-tuxcare.1, plus listed versions
8.0.8
8.0.8-tuxcare.1
vite
TuxCare:npm
From an advisory covering 2 CVEs
5.4.14-tuxcare.0 up to 5.4.14-tuxcare.3, plus listed versions
5.4.145.4.14-tuxcare.15.4.14-tuxcare.2
5.4.14-tuxcare.3
vite
TuxCare:npm
From an advisory covering 2 CVEs
8.0.9-tuxcare.0 up to 8.0.9-tuxcare.1, plus listed versions
8.0.9
8.0.9-tuxcare.1
vite
TuxCare:npm
From an advisory covering 2 CVEs
7.3.3-tuxcare.0 up to 7.3.3-tuxcare.1, plus listed versions
7.3.3
7.3.3-tuxcare.1
vite
TuxCare:npm
From an advisory covering 2 CVEs
5.0.12-tuxcare.0 up to 5.0.12-tuxcare.4, plus listed versions
5.0.125.0.12-tuxcare.15.0.12-tuxcare.25.0.12-tuxcare.3
5.0.12-tuxcare.4
vite
TuxCare:npm
From an advisory covering 3 CVEs
4.5.0-tuxcare.0 up to 4.5.0-tuxcare.2, plus listed versions
4.5.04.5.0-tuxcare.1
4.5.0-tuxcare.2
vite
TuxCare:npm
From an advisory covering 8 CVEs
5.4.10-tuxcare.0 up to 5.4.10-tuxcare.4, plus listed versions
5.4.105.4.10-tuxcare.15.4.10-tuxcare.25.4.10-tuxcare.3
5.4.10-tuxcare.4
@vitejs/plugin-react
TuxCare:npm
From an advisory covering 7 CVEs
2.9.18-tuxcare.0 up to 2.9.18-tuxcare.2, plus listed versions
2.9.182.9.18-tuxcare.1
2.9.18-tuxcare.2
@vitejs/plugin-react
TuxCare:npm
3.2.11-tuxcare.0 up to 3.2.11-tuxcare.4, plus listed versions
3.2.113.2.11-tuxcare.13.2.11-tuxcare.23.2.11-tuxcare.3
3.2.11-tuxcare.4
vite
npm
8.0.0 up to 8.0.16
8.0.16
vite
npm
7.0.0 up to 7.3.5
7.3.5
vite
npm
before 6.4.3
6.4.3
vite-plus
npm
before 0.1.24
0.1.24
vite
Root:npm
before 5.4.21-aikido.3
5.4.21-aikido.38.0.14-aikido.18.0.13-aikido.16.4.1-aikido.36.4.1-aikido.45.4.21-aikido.4
@rootio/vite
Root:npm
before 5.4.21-root.io.3
5.4.21-root.io.38.0.14-root.io.18.0.13-root.io.16.4.1-root.io.36.4.1-root.io.45.4.21-root.io.4

Public exploits

Links only. Every CVE stores no exploit code.

Public exploits
SourceLinkDate
PoC in GitHubTazmiDev/CVE-2026-535712026-07-09

History

History
RecordedChangedSources
affected
factsOSV
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV, PoC in GitHub

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-53571 is a high vulnerability (CVSS 8.2) in Vitejs Vite, published June 15, 2026. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 0.58%, the 47th percentile. Fixed in vite 8.0.16.

References

MoveEnter Open