Live › vulnerability › CVE-2026-112947
Go to dashboardVite's dev server returns the first 4 bytes of files outside the server.fs allow list when a request includes ?vite-wasm-instance, because the internal Wasm plugin reads the file without the fs checks and includes the bytes in a WebAssembly parse error. An attacker who can reach the dev server can read the first 4 bytes of arbitrary readable files, such as secrets placed at the start of a file like .env.
Summary written from the sources below. Check the originals before acting.
First seen by InfraStack 2026-10-23 19:11 UTC, 3h before NVD. All times on this page are UTC.
| Product | Ecosystem | Affected | Fixed in |
|---|---|---|---|
| vite | npm | >= 8.3.0, <= 8.3.2 | 8.3.3 |
| vite | npm | >= 8.2.0, <= 8.2.3 | 8.2.4 |
| vite-plus | npm | >= 0.2.8, <= 1.0.0 | 1.1.0 |
npm ls vite (or check the lockfile) and confirm whether the installed version is in the affected ranges: vite 8.3.0 to 8.3.2, vite 8.2.0 to 8.2.3, or vite-plus to 0.2.81.0.08.3.3 (on the 8.3 line) or 8.2.4 (on the 8.2 line); upgrade vite-plus to 1.1.0Each row is the first time that source carried this signal. The analyst’s rows are its own findings.
The first 4 bytes of files outside of server.fs setting can be returned to the browser by a request containing ?vite-wasm-instance.
Only apps that match one of the following conditions are affected:
--host or the server.host optionRequests 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.
Create a denied file and start an affected Vite dev server:
echo 'SECRET_KEY=abc123\n' > .env
npm run dev
curl 'http://localhost:5173/.env?vite-wasm-instance'
This will show
Failed to parse WASM file "<root>/.env": WebAssembly.compile(): expected magic word 00 61 73 6d, found 53 45 43 52 @+0
This page as .md · .json · in your agent: get_signal("CVE-2026-112947")
GitHub Advisory Database, CC-BY 4.0 · NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.