Medium severity · published Apr 3, 2025
CVE-2025-31486
Vite allows server.fs.deny to be bypassed with .svg or relative paths
5.3
CVSS
40.5%
EPSS
No
On KEV
Description
Vite is a frontend tooling framework for javascript. The contents of arbitrary files can be returned to the browser. By adding ?.svg with ?.wasm?init or with sec-fetch-dest: script header, the server.fs.deny restriction was able to bypass. This bypass is only possible if the file is smaller than build.assetsInlineLimit (default: 4kB) and when using Vite 6.0+. Only apps explicitly exposing the Vite dev server to the network (using --host or server.host config option) are affected. This vulnerability is fixed in 4.5.12, 5.4.17, 6.0.14, 6.1.4, and 6.2.5.
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N
Attack vector
Network
Complexity
High
Privileges
None
User interaction
Required
Confidentiality
High
Integrity
None
Availability
None
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)40.5% · higher than 99% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
VI
vite · vitejs
< 4.5.12; >=5.0.0, < 5.4.17; >=6.0.0, < 6.0.14; >=6.1.0, < 6.1.4; >=6.2.0, < 6.2.5 · source: vendor
Affected product
VI
vite
vitejs
More from vite
7.5
CVE-2025-31125
Vite has a `server.fs.deny` bypassed for `inline` and `raw` with `?import` query
8.3
CVE-2024-52011
launch-editor vulnerable to command injection via the crafted request on Windows
7.5
CVE-2026-112942
launch-editor: `fs.existsSync()` existence check can be bypassed on Windows
7.5
CVE-2026-53571
Vite: `server.fs.deny` bypass on Windows alternate paths
7.5
CVE-2026-39364
Vite has a `server.fs.deny` bypass with queries