CVE-2026-53571

Vite: `server.fs.deny` bypass on Windows alternate paths

Published Jun 22, 2026 CVSS 4.0 · 8.2 High EPSS < 1% KEV · Not listed
Description
Vite is a frontend tooling framework for JavaScript. Prior to 8.0.16, 7.3.5, and 6.4.3, the contents of files that are specified by server.fs.deny can be returned to the browser on Windows. Vite’s dev server denies direct access to sensitive files through server.fs.deny, including entries such as .env, .env.*, and *.{crt,pem}. However, on Windows, the deny logic does not correctly normalize NTFS ADS path forms before access checks are applied. Because of this, requests such as /.env::$DATA?raw are treated as allowed paths, while Windows resolves them to the original file's default data stream. Similar to that, Windows allows accessing a file using a different name with the 8.3 short name compatibility feature. Vite did not reject accessing files via them. This vulnerability is fixed in 8.0.16, 7.3.5, and 6.4.3.

Analysis

AI-generated

Technical impact

Vite, a popular JavaScript front‑end build tool, contains a configuration bypass that allows an attacker to read files that should be blocked by server.fs.deny when the development server runs on Windows. The bug occurs because the server does not normalize NTFS alternate data stream and 8.3 short‑name path forms before applying the deny check. As a result, URLs such as /.env::$DATA?raw or references through 8.3 short names can return the contents of files like .env, .env.* or certificate files to the client. This leads to direct confidential data disclosure and corresponds to CWE‑200 (Information Exposure) and CWE‑22 (Path Traversal).

Affected Systems

Affected products are Vite by vitejs, versions earlier than 8.0.16, 7.3.5, and 6.4.3. Any installation running these legacy releases on a Windows operating system and exposing the dev server to a network is potentially vulnerable.

Risk and Exploitability

With a CVSS base score of 8.2, the disclosure is considered high severity. The vulnerability is exploit‑able through arbitrary HTTP requests to a Vite dev server that is accessible from the network. The risk is significant when the server is exposed outside trusted environments, though it does not allow code execution or privilege escalation. Since the EPSS score is not available and the issue is not listed in the CISA KEV catalog, the probability of widespread exploitation is unknown, but the lack of patching in legacy versions increases the likelihood for any exposed dev server. The most probable attack path involves a remote attacker sending a crafted request containing an NTFS ADS or 8.3 short name and receiving the file contents in the response.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Vite to a fixed release (8.0.16, 7.3.5, or 6.4.3).
  • Restrict the dev server to localhost or a trusted network and enforce firewall rules so it is not reachable from untrusted sources.
  • Move or rename sensitive files such as .env, .env.*, *.crt, and *.pem outside the directory served by Vite or to names that do not match the deny patterns to prevent accidental exposure.

Generated by OpenCVE AI on June 22, 2026 at 18:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-fx2h-pf6j-xcff vite: `server.fs.deny` bypass on Windows alternate paths
History
Type Values Removed Values Added
First Time appeared Vitejs
Vitejs vite
Vendors & Products Vitejs
Vitejs vite
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description Vite is a frontend tooling framework for JavaScript. Prior to 8.0.16, 7.3.5, and 6.4.3, the contents of files that are specified by server.fs.deny can be returned to the browser on Windows. Vite’s dev server denies direct access to sensitive files through server.fs.deny, including entries such as .env, .env.*, and *.{crt,pem}. However, on Windows, the deny logic does not correctly normalize NTFS ADS path forms before access checks are applied. Because of this, requests such as /.env::$DATA?raw are treated as allowed paths, while Windows resolves them to the original file's default data stream. Similar to that, Windows allows accessing a file using a different name with the 8.3 short name compatibility feature. Vite did not reject accessing files via them. This vulnerability is fixed in 8.0.16, 7.3.5, and 6.4.3.
Title Vite: `server.fs.deny` bypass on Windows alternate paths
Weaknesses CWE-200
CWE-22
References
Metrics cvssV4_0

{'score': 8.2, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N'}

Weaknesses
  • CWE-200

    Exposure of Sensitive Information to an Unauthorized Actor

  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Jun 22, 2026, 6:07 PM
Reserved
Jun 9, 2026, 7:11 PM
Status
Analyzed
Published
Jun 22, 2026, 6:16 PM
Modified
Oct 25, 2026, 11:10 PM