Vite dev server option `server.fs.deny` can be bypassed when hosted on case-insensitive filesystem
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Information disclosure, Security bypass
- Confidentiality · integrity · availability
- High · None · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-200 and CWE-284.
Summary
Vite is a frontend tooling framework for javascript. The Vite dev server option `server.fs.deny` can be bypassed on case-insensitive file systems using case-augmented versions of filenames. Notably this affects servers hosted on Windows. This bypass is similar to CVE-2023-34092 -- with surface area reduced to hosts having case-insensitive filesystems. Since `picomatch` defaults to case-sensitive glob matching, but the file server doesn't discriminate; a blacklist bypass is possible. By requesting raw filesystem paths using augmented casing, the matcher derived from `config.server.fs.deny` fails to block access to sensitive files. This issue has been addressed in [email protected], [email protected], [email protected], and [email protected]. Users are advised to upgrade. Users unable to upgrade should restrict access to dev servers.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| vitejs | vite | 2.7.0 to before 2.9.17; 3.0.0 to before 3.2.8; 4.0.0 to before 4.5.2; 5.0.0 to before 5.0.12 | 2.9.17, 3.2.8, 4.5.2, 5.0.12 | Patch available | CNA |
| — | vite (npm) | 2.7.0 to before 2.9.17 | 2.9.17 | Patch available | GHSA-c24v-8rfc-w8vw |
| — | vite (npm) | 3.0.0 to before 3.2.8 | 3.2.8 | Patch available | GHSA-c24v-8rfc-w8vw |
| — | vite (npm) | 4.0.0 to before 4.5.2 | 4.5.2 | Patch available | GHSA-c24v-8rfc-w8vw |
| — | vite (npm) | 5.0.0 to before 5.0.12 | 5.0.12 | Patch available | GHSA-c24v-8rfc-w8vw |
- vite Vendorvitejs Affected 2.7.0 to before 2.9.17; 3.0.0 to before 3.2.8; 4.0.0 to before 4.5.2; 5.0.0 to before 5.0.12 Fixed in 2.9.17, 3.2.8, 4.5.2, 5.0.12 Patch available CNA
- vite (npm) Vendor— Affected 2.7.0 to before 2.9.17 Fixed in 2.9.17 Patch available GHSA-c24v-8rfc-w8vw
- vite (npm) Vendor— Affected 3.0.0 to before 3.2.8 Fixed in 3.2.8 Patch available GHSA-c24v-8rfc-w8vw
- vite (npm) Vendor— Affected 4.0.0 to before 4.5.2 Fixed in 4.5.2 Patch available GHSA-c24v-8rfc-w8vw
- vite (npm) Vendor— Affected 5.0.0 to before 5.0.12 Fixed in 5.0.12 Patch available GHSA-c24v-8rfc-w8vw
Remediation
- Fix · CNA vite (vitejs) Fixed in 2.9.17, 3.2.8, 4.5.2, 5.0.12
- Fix · GHSA-c24v-8rfc-w8vw vite (npm) Fixed in 2.9.17 Advisory →
- Fix · GHSA-c24v-8rfc-w8vw vite (npm) Fixed in 3.2.8 Advisory →
- Fix · GHSA-c24v-8rfc-w8vw vite (npm) Fixed in 4.5.2 Advisory →
- Fix · GHSA-c24v-8rfc-w8vw vite (npm) Fixed in 5.0.12 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2024-23331
- 2026-10-03 Alias added: GHSA-c24v-8rfc-w8vw
References
Advisory 2
Other 5
- https://vitejs.dev/config/server-options.html#server-fs-deny
- https://github.com/vitejs/vite/commit/0cd769c279724cf27934b1270fbdd45d68217691
- https://github.com/vitejs/vite/commit/a26c87d20f9af306b5ce3ff1648be7fa5146c278
- https://github.com/vitejs/vite/commit/eeec23bbc9d476c54a3a6d36e78455867185a7cb
- https://github.com/vitejs/vite
More vitejs Vite vulnerabilities
- TI-2025-22386 Vite has a `server.fs.deny` bypassed for `inline` and `raw` with `?import` query KEVCVSS 3.1HIGH 7.5
- TI-2026-28350 Vite Affected by Arbitrary File Read via Vite Dev Server WebSocket CVSS 4.0HIGH 8.2
- TI-2025-21544 Vite bypasses server.fs.deny when using `?raw??` CVSS 3.1HIGH 7.5
- TI-2023-16938 Vite Server Options (server.fs.deny) can be bypassed using double forward-slash (//) CVSS 3.1HIGH 7.5
- TI-2026-38634 Vite: `server.fs.deny` bypass on Windows alternate paths CVSS 4.0HIGH 8.2
- TI-2026-28352 Vite has a Path Traversal in Optimized Deps `.map` Handling CVSS 4.0MEDIUM 6.3
Sources
- CVE-2024-23331 · CVE Program
- CVE-2024-23331 · NVD
- FIRST EPSS
- GHSA-c24v-8rfc-w8vw · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences