{"id":"GHSA-93m4-6634-74q7","revision":"eced9f1fd4f4447fb84f964ea3fcacf7","records":[{"revision":"eced9f1fd4f4447fb84f964ea3fcacf7","observedAt":"2026-10-24T13:17:17.793+00:00","statement":{"source":"osv","id":"GHSA-93m4-6634-74q7","aliases":["CVE-2025-62522"],"title":"vite allows server.fs.deny bypass via backslash on Windows","description":"### Summary\nFiles denied by [`server.fs.deny`](https://vitejs.dev/config/server-options.html#server-fs-deny) were sent if the URL ended with `\\` when the dev server is running on Windows.\n\n### Impact\nOnly apps that match the following conditions are affected:\n\n- explicitly exposes the Vite dev server to the network (using --host or [`server.host` config option](https://vitejs.dev/config/server-options.html#server-host))\n- running the dev server on Windows\n\n### Details\n`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`.\n\n### PoC\n```shell\nnpm create vite@latest\ncd vite-project/\ncat \"secret\" > .env\nnpm install\nnpm run dev\ncurl --request-target /.env\\ http://localhost:5173\n```\n<img width=\"1593\" height=\"616\" alt=\"image\" src=\"https://github.com/user-attachments/assets/36212f4e-1d3c-4686-b16f-16b35ca9e175\" />","state":0,"publishedAt":"2025-10-20T19:54:28+00:00","modifiedAt":"2026-09-10T03:50:29.5748578+00:00","affected":[{"ecosystem":"npm","name":"vite","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"7.1.0"},{"kind":"fixed","version":"7.1.11"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"npm","name":"vite","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"7.0.0"},{"kind":"fixed","version":"7.0.8"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"npm","name":"vite","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"6.0.0"},{"kind":"fixed","version":"6.4.1"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"npm","name":"vite","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"2.9.18"},{"kind":"fixed","version":"5.4.21"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"npm","name":"vite","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"3.2.9"},{"kind":"fixed","version":"5.4.21"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"npm","name":"vite","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"4.5.3"},{"kind":"fixed","version":"5.4.21"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"npm","name":"vite","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"5.2.6"},{"kind":"fixed","version":"5.4.21"}]}],"versions":[],"rawVersionEvidence":null}],"metrics":[{"system":"CVSS_V4","vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","score":null,"severity":null},{"system":"Publisher rating","vector":null,"score":null,"severity":"MODERATE"}],"references":["https://github.com/vitejs/vite/security/advisories/GHSA-93m4-6634-74q7","https://nvd.nist.gov/vuln/detail/CVE-2025-62522","https://github.com/vitejs/vite/commit/f479cc57c425ed41ceb434fecebd63931b1ed4ed","https://github.com/vitejs/vite"],"sourceUrl":"https://github.com/advisories/GHSA-93m4-6634-74q7","license":"GitHub Advisory Database · CC-BY-4.0","key":"osv:GHSA-93m4-6634-74q7","identifiers":["GHSA-93m4-6634-74q7","CVE-2025-62522"]},"retained":false,"historicalAffected":[]}],"coverage":[]}