CVE-2025-32395
published 2025-04-10CVE-2025-32395: Vite is a frontend tooling framework for javascript. Prior to 6.2.6, 6.1.5, 6.0.15, 5.4.18, and 4.5.13, the contents of arbitrary files can be returned to the…
PriorityP345medium6CVSS 4.0
AVNACLATPPRNUIPVCHVINVANSCNSINSANEXCRXIRXARXMAVXMACXMATXMPRXMUIXMVCXMVIXMVAXMSCXMSIXMSAXSXAUXRXVXREXUX
EXPLOIT
EPSS
1.70%
74.3th percentile
Vite is a frontend tooling framework for javascript. Prior to 6.2.6, 6.1.5, 6.0.15, 5.4.18, and 4.5.13, the contents of arbitrary files can be returned to the browser if the dev server is running on Node or Bun. HTTP 1.1 spec (RFC 9112) does not allow # in request-target. Although an attacker can send such a request. For those requests with an invalid request-line (it includes request-target), the spec recommends to reject them with 400 or 301. The same can be said for HTTP 2. On Node and Bun, those requests are not rejected internally and is passed to the user land. For those requests, the value of http.IncomingMessage.url contains #. Vite assumed req.url won't contain # when checking server.fs.deny, allowing those kinds of requests to bypass the check. Only apps explicitly exposing the Vite dev server to the network (using --host or server.host config option) and running the Vite dev server on runtimes that are not Deno (e.g. Node, Bun) are affected. This vulnerability is fixed in 6.2.6, 6.1.5, 6.0.15, 5.4.18, and 4.5.13.
Affected
10 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| vitejs | vite | < 4.5.13 | 4.5.13 |
| vitejs | vite | — | — |
| vitejs | vite | — | — |
| vitejs | vite | — | — |
| vitejs | vite | — | — |
| vitejs | vite | >= 0 < 4.5.13 | 4.5.13 |
| vitejs | vite | >= 5.0.0 < 5.4.18 | 5.4.18 |
| vitejs | vite | >= 6.0.0 < 6.0.15 | 6.0.15 |
| vitejs | vite | >= 6.1.0 < 6.1.5 | 6.1.5 |
| vitejs | vite | >= 6.2.0 < 6.2.6 | 6.2.6 |
CVSS provenance
nvdv4.06.0MEDIUMCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/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
vendor_redhat6.0MEDIUM
CVEs like this are exactly what “Exploited This Week” covers.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
Red Hat
vite: Vite has an `server.fs.deny` bypass with an invalid `request-target`
vendor_redhat·2025-04-10·CVSS 6.0
CVE-2025-32395 [MEDIUM] CWE-200 vite: Vite has an `server.fs.deny` bypass with an invalid `request-target`
vite: Vite has an `server.fs.deny` bypass with an invalid `request-target`
Vite is a frontend tooling framework for javascript. Prior to 6.2.6, 6.1.5, 6.0.15, 5.4.18, and 4.5.13, the contents of arbitrary files can be returned to the browser if the dev server is running on Node or Bun. HTTP 1.1 spec (RFC 9112) does not allow # in request-target. Although an attacker can send such a request. For those requests with an invalid request-line (it includes request-target), the spec recommends to reject them with 400 or 301. The same can be said for HTTP 2. On Node and Bun, those requests are not rejected internally and is passed to the user land. For those requests, the value of http.IncomingMessage.url contains #. Vite assumed req.url won't contain # when checking server.fs.deny, allowing thos
OSV
Vite has an `server.fs.deny` bypass with an invalid `request-target`
osv·2025-04-11
CVE-2025-32395 [MEDIUM] Vite has an `server.fs.deny` bypass with an invalid `request-target`
Vite has an `server.fs.deny` bypass with an invalid `request-target`
### Summary
The contents of arbitrary files can be returned to the browser if the dev server is running on Node or Bun.
### Impact
Only apps with the following conditions are affected.
- explicitly exposing the Vite dev server to the network (using --host or [server.host config option](https://vitejs.dev/config/server-options.html#server-host))
- running the Vite dev server on runtimes that are not Deno (e.g. Node, Bun)
### Details
[HTTP 1.1 spec (RFC 9112) does not allow `#` in `request-target`](https://datatracker.ietf.org/doc/html/rfc9112#section-3.2). Although an attacker can send such a request. For those requests with an invalid `request-line` (it includes `request-target`), the spec [recommends to reject them
GHSA
Vite has an `server.fs.deny` bypass with an invalid `request-target`
ghsa·2025-04-11
CVE-2025-32395 [MEDIUM] CWE-200 Vite has an `server.fs.deny` bypass with an invalid `request-target`
Vite has an `server.fs.deny` bypass with an invalid `request-target`
### Summary
The contents of arbitrary files can be returned to the browser if the dev server is running on Node or Bun.
### Impact
Only apps with the following conditions are affected.
- explicitly exposing the Vite dev server to the network (using --host or [server.host config option](https://vitejs.dev/config/server-options.html#server-host))
- running the Vite dev server on runtimes that are not Deno (e.g. Node, Bun)
### Details
[HTTP 1.1 spec (RFC 9112) does not allow `#` in `request-target`](https://datatracker.ietf.org/doc/html/rfc9112#section-3.2). Although an attacker can send such a request. For those requests with an invalid `request-line` (it includes `request-target`), the spec [recommends to reject them
No detection rules found.
Nuclei
Vite - Path Traversal
nuclei·CVSS 6.0
CVE-2025-32395 [MEDIUM] Vite - Path Traversal
Vite - Path Traversal
Vite versions prior to 6.2.6, 6.1.5, 6.0.15, 5.4.18, and 4.5.13 contain a file exposure vulnerability caused by improper handling of request URLs with '#' in the dev server running on Node or Bun, letting attackers access arbitrary files, exploit requires the server to be exposed to the network and running on Node or Bun.
Template:
id: CVE-2025-32395
info:
name: Vite - Path Traversal
author: ChrisJr404
severity: medium
description: |
Vite versions prior to 6.2.6, 6.1.5, 6.0.15, 5.4.18, and 4.5.13 contain a file exposure vulnerability caused by improper handling of request URLs with '#' in the dev server running on Node or Bun, letting attackers access arbitrary files, exploit requires the server to be exposed to the network and running on Node or Bun.
impact: |
An
2025-04-10
Published