GitHub Advisoryadvisory · npm

GHSA-859w-5945-r5v3 Vite's server.fs.deny bypassed with /. for files under project root

MEDIUM Published 2025-04-30 Modified 2025-05-02 Official page ↗
Aliases
CVE-2025-46565
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-04-30

Affected packages

• npm vite: >= 6.3.0, < 6.3.4 → fixed in 6.3.4 • npm vite: >= 6.2.0, < 6.2.7 → fixed in 6.2.7 • npm vite: >= 6.0.0, < 6.1.6 → fixed in 6.1.6 • npm vite: >= 5.0.0, < 5.4.19 → fixed in 5.4.19 • npm vite: < 4.5.14 → fixed in 4.5.14

Description

Summary The contents of files in the project `root` that are denied by a file matching pattern can be returned to the browser. Impact Only apps explicitly exposing the Vite dev server to the network (using --host or server.host config option) are affected. Only files that are under project `root` and are denied by a file matching pattern can be bypassed. • Examples of file matching patterns: `.env`, `.env.*`, `*.{crt,pem}`, `/.env` • Examples of other patterns: `/.git/`, `.git/`, `.git/**/*` 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 for files under `root` by using a combination of slash and dot (`/.`). PoC ``` 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-46565 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