Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach network-exposed Vite dev server
-
DeliveryRequest denied file with ?raw or ?import&raw query
-
ExploitDeny check runs before query stripped
-
ExecutionBypass server.fs.deny evaluation
-
ImpactReceive sensitive file contents (e.g. .env, keys)
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Leading special element handling
|
| Exploitation Conditions | Exploitation requires all of the following, per the advisory: (1) the Vite dev server is explicitly exposed to the network using --host or the server.host config option; (2) the targeted sensitive file resides inside a directory permitted by server.fs.allow; and (3) that file is matched by a server.fs.deny pattern (e.g. .env, *.crt). When these hold, an unauthenticated network attacker appends a loader query such as ?raw, ?import&raw, or ?import&url&inline to the denied path and receives the file with HTTP 200. Limiting factors that reduce real-world risk: the dev server is not network-exposed in its default configuration, so default local-only development is not affected; only the production dev server of Vite 6.4.4 is vulnerable (6.4.5 fixes it); and impact is confined to disclosure of files that are both allowed and denied - no code execution or modification. |
| Impact | This is a moderate-severity information-disclosure flaw (vendor CVSS 4.0 base 6.9) whose real-world risk is tightly bounded by its preconditions rather than by raw reachability. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N, VC:L, SC:H) indicates a network-reachable, low-complexity, unauthenticated issue, and PR:N confirms no authentication is required. However, the AT:P (attack requirements present) metric and the advisory both make clear exploitation is not possible against a default deployment: the Vite dev server must be deliberately exposed to the network, and a sensitive file must simultaneously sit inside server.fs.allow yet be matched by server.fs.deny. No EPSS score and no CISA KEV entry were provided, and there is no confirmed working exploit in the inputs, so there is no signal of active or widespread exploitation. The vuln.today decision label is 'this_month', consistent with a real but non-emergency fix priority. The signals are internally consistent: a network unauthenticated vector tempered by a non-default configuration requirement and limited (confidentiality-only) impact. The main point to verify independently is scope of impact - the vendor rated vulnerable-system confidentiality as Low but subsequent-system confidentiality as High, reflecting that the leaked file (e.g. .env secrets, TLS keys) can enable compromise elsewhere; treat the practical impact as potentially high where the denied files hold credentials. |
| Exploit ScenarioDerived | An organization runs the Vite 6.4.4 development server bound to the network (via --host or server.host) and relies on server.fs.deny to block files such as .env or *.crt that live inside an allowed directory. An unauthenticated attacker who can reach the dev server requests the denied path with a loader query appended (e.g. GET /.env?raw), the deny check is evaluated before the query is stripped, and the server returns the file contents with HTTP 200. No public working exploit is identified in the provided data, though the advisory fully describes the technique. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Information disclosure in the Vite development server 6.4.4 lets a network attacker retrieve files that server.fs.deny is supposed to block - including .env files and certificates - by appending loader query parameters such as ?raw, ?import&raw, or ?import&url&inline to the denied path, receiving the contents with HTTP 200. Exploitation requires that the dev server was explicitly exposed to the network via --host or server.host, that the sensitive file sits inside a server.fs.allow directory, and that it matches a server.fs.deny pattern; default local-only development is not affected, and the impact is limited to disclosure (no code execution or file modification). The vendor rates this CVSS 4.0 base 6.9, the flaw is fixed in Vite 6.4.5, and no public exploit code was identified at time of analysis.
RemediationAI
Upgrade to Vite 6.4.5, the vendor-released fix (npm install vite@6.4.5 or later); the patch is the transform middleware change in commit 91e40d7bf9777057bbd31c3eb036a54c9465697e, delivered on the v6 branch via PR 23855 and originally authored as PR 22160 - see the advisory at https://github.com/vitejs/vite/security/advisories/GHSA-8g5g-mxqh-grgj and the release at https://github.com/vitejs/vite/releases/tag/v6.4.5. If upgrading is not immediately possible, the most effective mitigation is to stop exposing the dev server: remove --host / server.host and bind to localhost, or front it with a firewall or reverse proxy that restricts access to trusted development networks, accepting that this breaks legitimate LAN or container-to-container access. Additionally, narrow server.fs.allow to only the directories that must be served and confirm that secrets such as .env, *.crt and *.key are matched by server.fs.deny and, where practical, kept outside the allowed roots entirely - noting that deny patterns alone are exactly what this bypass defeats on 6.4.4, so relocating the files or removing network exposure is the only complete interim control.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Vite's dev server serves source files through a transform middleware that calls checkLoadingAccess() to enforce the server.fs.allow and server.fs.deny allow/deny lists. In 6.4.4 the deny evaluation ran against the raw request identifier, i.e. with the loader query still attached, before the URL was reduced to its clean path; deny patterns such as .env or *.crt therefore failed to match a request like /.env?raw, and the denied file was returned. This is a CWE-180 (incorrect behavior order: validate before canonicalize) defect compounded by CWE-284 (improper access control), fixed by evaluating checkLoadingAccess() against cleanUrl(id) first and then against the full id. The regression is historical: 6.4.4 back-ported PR 20410 for GHSA-rq7h-c2jc-7f22 but omitted PR 22160, the companion fix for the earlier server.fs.deny bypass GHSA-v2wj-q39q-566r, leaving the v6 branch re-exposed to that same class of query-based deny bypass. The affected package is npm/vite (CPE cpe:2.3:a:vitejs:vite:*:*:*:*:*:*:*:*), and the fix is the transform.ts change shipped in v6.4.5 plus backport PR 23855.
Know when Vite gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:H/SI:N/SA:N
Network-reachable, no auth and no user interaction once the dev server is exposed, so AV:N/AC:L/PR:N/UI:N; impact is disclosure of sensitive files (secrets/keys) giving C:H, no integrity or availability effect.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Vite is a frontend tooling framework for JavaScript. From 6.4.4 until 6.4.5, the Vite development server can evaluate server.fs.deny before stripping loader query parameters such as ?raw, ?import&raw, or ?import&url&inline. When the development server is exposed to the network and a sensitive file is inside server.fs.allow but matched by server.fs.deny, an unauthenticated attacker can append one of these queries and retrieve the denied file. This issue is fixed in version 6.4.5.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Vite is a frontend tooling framework for javascript. Rated medium severity (CVSS 5.3), this vulnerability is remotely ex
Vite, a provider of frontend development tooling, has a vulnerability in versions prior to 6.2.3, 6.1.2, 6.0.12, 5.4.15,
launch-editor allows users to open files with line numbers in editor from Node.js. Rated high severity (CVSS 7.5), this
Vite is a frontend tooling framework for javascript. Rated high severity (CVSS 7.5), this vulnerability is remotely expl
Vite provides frontend tooling. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no authentic
Vite is a frontend tooling framework for javascript. Rated medium severity (CVSS 6.0), this vulnerability is remotely ex
Vite is a website frontend framework. Rated medium severity (CVSS 6.1), this vulnerability is remotely exploitable, no a
Arbitrary remote code execution in @vitejs/plugin-rsc 0.5.5 and earlier lets unauthenticated network attackers run JavaS
Vitejs Vite before v2.9.13 was discovered to allow attackers to perform a directory traversal via a crafted URL to the v
Path-validation bypass in launch-editor before 2.14.2 on Windows allows unauthenticated remote attackers to pass a craft
Vite is a frontend tooling framework for JavaScript. Rated low severity (CVSS 2.3), this vulnerability is remotely explo
A path-traversal information-disclosure flaw in Vite's development server (versions 8.2.0 through 8.2.3 and 8.3.0 throug
EUVD-2026-112469
NVD
CVE.org
GitHub
Exploit-DB