GitHub Advisoryadvisory · npm

GHSA-93m4-6634-74q7 vite allows server.fs.deny bypass via backslash on Windows

MEDIUM Published 2025-10-20 Modified 2025-10-21 Official page ↗
Aliases
CVE-2025-62522
Ecosystem
npm
Packages
vite
Severity
Moderate
CVSS vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Weaknesses
CWE-22
Reviewed
2025-10-20

Affected packages

• npm vite: >= 7.1.0, < 7.1.11 → fixed in 7.1.11 • npm vite: >= 7.0.0, < 7.0.8 → fixed in 7.0.8 • npm vite: >= 6.0.0, < 6.4.1 → fixed in 6.4.1 • npm vite: >= 2.9.18, < 5.4.21 → fixed in 5.4.21 • npm vite: >= 3.2.9, < 5.4.21 → fixed in 5.4.21 • npm vite: >= 4.5.3, < 5.4.21 → fixed in 5.4.21 • npm vite: >= 5.2.6, < 5.4.21 → fixed in 5.4.21

Description

Summary Files denied by `server.fs.deny` were sent if the URL ended with `\` when the dev server is running 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) • running the dev server on Windows Details `server.fs.deny` can contain patterns matching against files (by default it includes `.env`, `.env.*`, `*.{crt,pem}` as such patterns). These patterns were able to bypass by using a back slash(`\`). The root cause is that `fs.readFile('/foo.png/')` loads `/foo.png`. PoC ```shell npm create vite@latest cd vite-project/ cat "secret" > .env npm install npm run dev curl --request-target /.env\ http://localhost:5173 ```

Related

Alias · CVE (1)

  • CVE-2025-62522 Vite is a frontend tooling framework for JavaScript. vulnerability

Weakness · CWE (1)

  • CWE-22 Improper Limitation of a Pathname to a Restricted Directory weakness

References