Skip to main content

Vite EUVDEUVD-2026-105135

| CVE-2026-112947 MEDIUM
Path Traversal (CWE-22)
2026-10-20 GitHub_M GHSA-vfpm-58rq-9qcg
6.3
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach exposed Vite dev server
  2. Delivery
    Request restricted path with ?vite-wasm-instance query
  3. Exploit
    Wasm plugin reads file, skips server.fs check
  4. Execution
    WebAssembly parse fails, error thrown
  5. Impact
    Leak first 4 bytes of file to browser

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires a network-reachable Vite dev server running an affected version (8.2.0 through 8.2.3, or 8.3.0 through 8.3.2) - note Vite's dev server defaults to localhost binding, so practical exploitation needs the server exposed to the attacker (e.g. bound to 0.0.0.0, proxied, or on a shared network). The attacker sends a request whose path targets a file outside the server.fs allowed roots with a ?vite-wasm-instance query string, which routes to the internal Wasm plugin's load hook that strips the query and reads from disk without the server.fs restriction. The disclosure only occurs when the targeted file fails WebAssembly parsing (true for virtually all non-.wasm files), causing Node or Deno to throw an error containing the bytes. Strong limiting factors: only the FIRST 4 BYTES of the file are leaked (no full-file read), and the dev server is not meant to be a production/internet-facing surface.

Impact

This is a moderate, bounded information-disclosure flaw rather than a top-tier priority. The vendor-supplied CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N, 6.3) correctly captures the shape of the issue: network-reachable and unauthenticated (PR:N), but with an Attack Requirement (AT:P) and only Low confidentiality impact (VC:L) because the primitive leaks just the first 4 bytes of a targeted file via a WebAssembly parse-error message. There is no EPSS score, no CISA KEV listing, and no public exploit code supplied in the intelligence, so this is 'no public exploit identified at time of analysis' and there is no evidence of active exploitation. A key limiting factor not fully reflected in AV:N is that the affected component is the Vite development server, which by default binds to localhost and is not intended to be internet-exposed - so the network vector is realistic mainly where a dev server is deliberately or accidentally exposed. The source diff confirms the root cause and fix (adding wasmInstanceRE to the guard in transform.ts so ?vite-wasm-instance requests undergo the same restriction as ?raw/?url/?inline/?svg, returning 403), which strengthens confidence in the mechanism. Net: a genuine but low-severity, narrow-primitive leak; prioritize patching dev tooling but it does not warrant emergency response absent exposure.

Exploit ScenarioDerived

A developer runs a Vite dev server (8.2.0-8.2.3 or 8.3.0-8.3.2) that is reachable by an attacker - for example bound to 0.0.0.0 on a shared network or proxied externally. The attacker requests a sensitive file outside the allowed server.fs roots with a ?vite-wasm-instance query (e.g. /root/src/.env?vite-wasm-instance); Vite's internal Wasm plugin reads it without the fs check, fails to parse it as WebAssembly, and the thrown Node/Deno error echoes the file's first 4 bytes back to the attacker. No public exploit code was provided, though the fix commit and test cases make the technique straightforward to reproduce.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 20, 2026

A path-traversal information-disclosure flaw in Vite's development server (versions 8.2.0 through 8.2.3 and 8.3.0 through 8.3.2) lets a remote requester read the first 4 bytes of any file on the host filesystem - including files deliberately excluded from server.fs allowed roots, such as .env secrets and private keys - by appending a ?vite-wasm-instance query string to the request path. The internal Wasm plugin's load hook strips the query, reads the target path directly from disk without applying server.fs checks, then fails WebAssembly parsing and leaks the file's leading bytes in the resulting Node/Deno error message. Exploitation requires a network-reachable dev server (localhost-bound by default, so exposure via 0.0.0.0 binding, proxying, or a shared network is a precondition); no public exploit code exists in the provided data and CISA KEV does not list it, while the assessed impact is limited confidentiality loss given only 4 bytes leak per request.

RemediationAI

Vendor-released patch: upgrade to Vite 8.2.4 or 8.3.3 (or later), which applies the server.fs validation to ?vite-wasm-instance requests via the wasmInstanceRE guard in the transform middleware; see GHSA-vfpm-58rq-9qcg (https://github.com/vitejs/vite/security/advisories/GHSA-vfpm-58rq-9qcg) and PR https://github.com/vitejs/vite/pull/23655. If an immediate upgrade is not possible, the most effective compensating control is to stop exposing the dev server: keep it bound to 127.0.0.1 (the default) and remove any --host / server.host 0.0.0.0 configuration, at the cost of losing LAN or container-to-host access for testing - reproduce that access with an SSH tunnel or an authenticated reverse proxy instead. Additionally, reject requests whose query string contains vite-wasm-instance at the proxy layer (a single rewrite/deny rule, though it only blocks this specific parameter and not other future bypasses), and ensure sensitive material such as .env files, key stores, and cloud credential files are not co-located on the same filesystem as the dev server root, since each leaked request still discloses 4 bytes of any readable file. Note that per-request leakage is small, so repeated requests against structured formats can progressively reveal file headers.

Affected VersionsENISA

vite 8.3.0, < 8.3.3
vite-plus 0.2.8, < 1.1.0
vite 8.2.0, < 8.2.4

Affected Packages

npm vite fix: 8.2.4, 8.3.3
npm vite-plus fix: 1.1.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in npm

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Vite is a JavaScript frontend tooling framework whose dev server exposes internal plugins for handling special module types, including WebAssembly. The vulnerable component is the internal Wasm plugin's load hook, which is selected whenever a request URL carries the ?vite-wasm-instance query parameter. That hook removes the query and reads the corresponding file path straight from disk, bypassing the server.fs allow-list that normally restricts Vite's dev server to explicitly permitted roots (and to dotfile/.env denials). Because the raw bytes are then handed to a WebAssembly parser, any non-Wasm file causes Node or Deno to throw a parse error, and that error message embeds the first 4 bytes of the file - the disclosure primitive. The root cause maps to CWE-22 (Improper Limitation of a Pathname to a Restricted Directory / Path Traversal) - specifically a path-canonicalization/authorization gap in which the URL-rewriting middleware fails to normalize a stripped query suffix before filesystem access. The upstream fix in PR #23655 adds a wasmInstanceRE check to the transform middleware so requests bearing ?vite-wasm-instance are subject to the same fs-serve matrix validation as raw, url, inline, and svg imports, and regression tests assert 403 Restricted responses for out-of-root files and denied .env files. Affected packages are the vitejs:vite and vitejs:vite-plus CPEs.

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

Vendor (GitHub_M) PRIMARY 6.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 5.3 MEDIUM

Unauthenticated network request to the dev server (AV:N/PR:N/UI:N); confidentiality Low because only the first 4 bytes leak, with no integrity or availability impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Red Hat 5.3 MEDIUM

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 20, 2026 - 17:18 EUVD
CVE Published
Oct 20, 2026 - 15:10 cve.org
MEDIUM 6.3

DescriptionCVE.org

Vite is a frontend tooling framework for JavaScript. From 8.2.0 until 8.2.4 and 8.3.3, the first 4 bytes of files outside of server.fs setting can be returned to the browser by a request containing ?vite-wasm-instance. Requests containing the ?vite-wasm-instance query are handled by the internal Wasm plugin's load hook. The hook removes the query and reads the resulting path directly from disk, but the server.fs checks were not applied. After reading the file, Vite attempts to parse it as WebAssembly. When that parse fails, Node and deno throws an error that contains the first 4 bytes of the file. This vulnerability is fixed in 8.2.4 and 8.3.3.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 99 npm packages depend on vite (33 direct, 68 indirect)

Ecosystem-wide dependent count for version 8.3.0.

Threat Intelligence Overview

EPSS Score
0.4%
Top 65% exploitable
Prevalence
High
extremely popular JavaScript frontend build tool and dev server
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

More in Vite

View all
CVE-2025-31125 MEDIUM POC
5.3 Mar 31

Vite is a frontend tooling framework for javascript. Rated medium severity (CVSS 5.3), this vulnerability is remotely ex

CVE-2025-30208 MEDIUM POC
5.3 Mar 24

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,

CVE-2024-52011 HIGH POC
7.5 Jun 01

launch-editor allows users to open files with line numbers in editor from Node.js. Rated high severity (CVSS 7.5), this

CVE-2024-23331 HIGH POC
7.5 Jan 19

Vite is a frontend tooling framework for javascript. Rated high severity (CVSS 7.5), this vulnerability is remotely expl

CVE-2023-34092 HIGH POC
7.5 Jun 01

Vite provides frontend tooling. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no authentic

CVE-2025-46565 MEDIUM POC
6.0 May 01

Vite is a frontend tooling framework for javascript. Rated medium severity (CVSS 6.0), this vulnerability is remotely ex

CVE-2023-49293 MEDIUM POC
6.1 Dec 04

Vite is a website frontend framework. Rated medium severity (CVSS 6.1), this vulnerability is remotely exploitable, no a

CVE-2025-67489 CRITICAL
9.8 Dec 09

Arbitrary remote code execution in @vitejs/plugin-rsc 0.5.5 and earlier lets unauthenticated network attackers run JavaS

CVE-2022-35204 MEDIUM POC
4.3 Aug 18

Vitejs Vite before v2.9.13 was discovered to allow attackers to perform a directory traversal via a crafted URL to the v

CVE-2026-112942 HIGH
7.5 Oct 20

Path-validation bypass in launch-editor before 2.14.2 on Windows allows unauthenticated remote attackers to pass a craft

CVE-2026-118662 MEDIUM
6.9 Oct 28

Information disclosure in the Vite development server 6.4.4 lets a network attacker retrieve files that server.fs.deny i

CVE-2025-58751 LOW POC
2.3 Sep 08

Vite is a frontend tooling framework for JavaScript. Rated low severity (CVSS 2.3), this vulnerability is remotely explo

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy