Description
Vite is a frontend tooling framework for JavaScript. From 6.0.0 to before 6.4.2, 7.3.2, and 8.0.5, if it is possible to connect to the Vite dev server’s WebSocket without an Origin header, an attacker can invoke fetchModule via the custom WebSocket event vite:invoke and combine file://... with ?raw (or ?inline) to retrieve the contents of arbitrary files on the server as a JavaScript string (e.g., export default "..."). The access control enforced in the HTTP request path (such as server.fs.allow) is not applied to this WebSocket-based execution path. This vulnerability is fixed in 6.4.2, 7.3.2, and 8.0.5.
CVSS breakdown
CVSS 4.0
Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Confidentiality (Vulnerable System)
High
Integrity (Vulnerable System)
None
Availability (Vulnerable System)
None
Confidentiality (Subsequent System)
None
Integrity (Subsequent System)
None
Availability (Subsequent System)
None
Affected products
- vitejs / vite>= 8.0.0, < 8.0.5 – >= 8.0.0, < 8.0.5
- vitejs / vite>= 7.0.0, < 7.3.2 – >= 7.0.0, < 7.3.2
- vitejs / vite>= 6.0.0, < 6.4.2 – >= 6.0.0, < 6.4.2
- vitejs / vite-plus< 0.1.16 – < 0.1.16
Exploits & PoCs
- nucleiVite Dev Server - Arbitrary File Readby theamanrawat