Live › vulnerability › CVE-2026-53571
Go to dashboardOn Windows, Vite's dev server fails to apply server.fs.deny to NTFS alternate data stream paths and 8.3 short names, so a request such as /.env::$DATA?raw returns the contents of a sensitive file. An attacker who can reach the dev server can read .env secrets and TLS private keys.
Summary written from the sources below. Check the originals before acting.
First seen by InfraStack 2026-10-27 15:03 UTC, 0h before NVD. All times on this page are UTC.
Only Windows developers who run the Vite dev server with network exposure (--host or server.host) and have sensitive files such as .env or *.pem inside allowed directories. Production builds and dev servers bound to localhost are not affected by the sources' conditions, and teams on macOS or Linux are outside the reported path.
| Product | Ecosystem | Affected | Fixed in |
|---|---|---|---|
| vite | npm | >= 8.0.0, <= 8.0.15 | 8.0.16 |
| vite | npm | >= 7.0.0, <= 7.3.4 | 7.3.5 |
| vite | npm | <= 6.4.2 | 6.4.3 |
| vite-plus | npm | <= 0.1.23 | 0.1.24 |
| vitejs vite | vendor | < 6.4.3 | 6.4.3 |
| vitejs vite | vendor | >= 7.0.0, < 7.3.5 | 7.3.5 |
| vitejs vite | vendor | >= 8.0.0, < 8.0.16 | 8.0.16 |
| voidzero vite\+ | vendor | < 0.1.24 | 0.1.24 |
npm ls vite or npm ls vite-plus to find the installed version.--host or server.host set, which exposes it to the network.vite to 8.0.16 on the 8.x line, 7.3.5 on the 7.x line, or 6.4.3 on the 6.x line.vite-plus to 0.1.24..env or certificates if the dev server was reachable.Each row is the first time that source carried this signal. The analyst’s rows are its own findings.
The contents of files that are specified by server.fs.deny can be returned to the browser on Windows.
Only apps that match the following conditions are affected:
--host or server.host config option)server.fs.allowVite’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.
$ 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.pemThis page as .md · .json · in your agent: get_signal("CVE-2026-53571")
GitHub Advisory Database, CC-BY 4.0 · NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.