{"id":"CVE-2025-30208","published":"2025-03-24T17:03:40Z","modified":"2025-03-24T17:46:37Z","title":"Vite bypasses server.fs.deny when using `?raw??`","vendor":"vitejs","product":"vite","tier":"core","eol":null,"affectedVersions":[{"vendor":"vitejs","product":"vite","versions":["< 4.5.10",">= 5.0.0, < 5.4.15",">= 6.0.0, < 6.0.12",">= 6.1.0, < 6.1.2",">= 6.2.0, < 6.2.3"]}],"description":{"text":"Vite, a provider of frontend development tooling, has a vulnerability in versions prior to 6.2.3, 6.1.2, 6.0.12, 5.4.15, and 4.5.10. `@fs` denies access to files outside of Vite serving allow list. Adding `?raw??` or `?import&raw??` to the URL bypasses this limitation and returns the file content if it exists. This bypass exists because trailing separators such as `?` are removed in several places, but are not accounted for in query string regexes. 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 `server.host` config option) are affected. Versions 6.2.3, 6.1.2, 6.0.12, 5.4.15, and 4.5.10 fix the issue.","provenance":"source","from":"CVE.org"},"summary":{"text":"Vite's dev server, the frontend tooling's development server, fails to enforce its server.fs.deny file-access restrictions when a request URL includes a trailing ?raw?? or ?import&raw?? query string, because trailing separators are stripped in several places but not handled in the query string regexes. An attacker who can reach a Vite dev server that has been explicitly exposed to the network (via --host or the server.host option) and can get a victim to interact with a crafted link or page can retrieve the contents of arbitrary files on the server.","provenance":"ai","model":"claude-haiku-5-5","generatedAt":"2026-10-29T07:13:11Z"},"cvss":{"score":5.3,"severity":"MEDIUM","version":"3.1","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N","provenance":"source","from":"CVE.org CNA"},"epss":{"score":0.74771,"percentile":0.99502,"date":"2026-10-29","provenance":"source"},"kev":null,"vulncheckKev":{"dateAdded":"2025-04-28","exploitedFirstSeen":"2025-04-28","ransomware":false,"evidence":[{"url":"https://censys.com/blog/scouting-a-threat-actor","date":"2025-04-28"},{"url":"https://cyble.com/blog/cyble-sensors-detects-vulnerabilities/","date":"2025-05-30"},{"url":"https://app.crowdsec.net/cti/cve-explorer/CVE-2025-30208","date":"2025-10-02"},{"url":"https://isc.sans.edu/diary/32860","date":"2026-04-02"},{"url":"https://8726485.fs1.hubspotusercontent-na1.net/hubfs/8726485/Reports/2026%20Mid-Year%20AI%20Threat%20Landscape%20Report.pdf","date":"2026-07-06"},{"url":"https://www.f5.com/labs/articles/cloud-takeover-mass-scanning-for-exposed-vite-endpoints-cve-2026-39364","date":"2026-09-11"},{"url":"https://www.akamai.com/blog/ai/2026/oct/frontier-ai-accelerated-attacks-agentic-web-mcp-surface","date":"2026-10-28"}],"evidenceTotal":7,"provenance":"source"},"exploited":true,"otx":{"pulseCount":4,"pulses":[{"name":"Exposed Vite Development Servers Targeted for AWS and Azure Credential Theft","url":"https://otx.alienvault.com/pulse/6aabdf602847b323f935580a","created":"2026-09-17"},{"name":"Vite CVE-2026-39364 Mass Scan: Cloud Credential & IaC Theft from Exposed Dev Servers","url":"https://otx.alienvault.com/pulse/6aaa31bc3e91de6c050ac182","created":"2026-09-16"},{"name":"Vite CVE-2026-39364 Mass Scanning for AWS/Azure Secrets","url":"https://otx.alienvault.com/pulse/6aa8e00b9ed2e3fb07d8e04e","created":"2026-09-15"},{"name":"Hackers target exposed Vite dev servers to steal AWS, Azure secrets","url":"https://otx.alienvault.com/pulse/6aa827098a5afc79562c13c8","created":"2026-09-14"}],"provenance":"machine"},"cwes":[{"id":"CWE-200","name":"Exposure of Sensitive Information to an Unauthorized Actor"},{"id":"CWE-284","name":"Improper Access Control"}],"references":[{"url":"https://github.com/vitejs/vite/security/advisories/GHSA-x574-m823-4x7w","tags":["x_refsource_CONFIRM"]},{"url":"https://github.com/vitejs/vite/commit/315695e9d97cc6cfa7e6d9e0229fb50cdae3d9f4","tags":["x_refsource_MISC"]},{"url":"https://github.com/vitejs/vite/commit/80381c38d6f068b12e6e928cd3c616bd1d64803c","tags":["x_refsource_MISC"]},{"url":"https://github.com/vitejs/vite/commit/807d7f06d33ab49c48a2a3501da3eea1906c0d41","tags":["x_refsource_MISC"]},{"url":"https://github.com/vitejs/vite/commit/92ca12dc79118bf66f2b32ff81ed09e0d0bd07ca","tags":["x_refsource_MISC"]},{"url":"https://github.com/vitejs/vite/commit/f234b5744d8b74c95535a7b82cc88ed2144263c1","tags":["x_refsource_MISC"]}],"techniques":[],"reports":[],"affected":[{"ecosystem":"npm","package":"vite","vulnerableRanges":[">=6.2.0, <6.2.3",">=6.1.0, <6.1.2",">=6.0.0, <6.0.12",">=5.0.0, <5.4.15","<4.5.10"],"patched":["6.2.3","6.1.2","6.0.12","5.4.15","4.5.10"],"from":["GHSA-x574-m823-4x7w"],"provenance":"source"}],"advisories":[{"id":"GHSA-x574-m823-4x7w","url":"https://github.com/advisories/GHSA-x574-m823-4x7w","severity":"MODERATE","ecosystem":"npm","package":"vite","vulnerableRanges":[">=6.2.0, <6.2.3"],"patched":["6.2.3"],"provenance":"source","from":"GHSA"},{"id":"GHSA-x574-m823-4x7w","url":"https://github.com/advisories/GHSA-x574-m823-4x7w","severity":"MODERATE","ecosystem":"npm","package":"vite","vulnerableRanges":[">=6.1.0, <6.1.2"],"patched":["6.1.2"],"provenance":"source","from":"GHSA"},{"id":"GHSA-x574-m823-4x7w","url":"https://github.com/advisories/GHSA-x574-m823-4x7w","severity":"MODERATE","ecosystem":"npm","package":"vite","vulnerableRanges":[">=6.0.0, <6.0.12"],"patched":["6.0.12"],"provenance":"source","from":"GHSA"},{"id":"GHSA-x574-m823-4x7w","url":"https://github.com/advisories/GHSA-x574-m823-4x7w","severity":"MODERATE","ecosystem":"npm","package":"vite","vulnerableRanges":[">=5.0.0, <5.4.15"],"patched":["5.4.15"],"provenance":"source","from":"GHSA"},{"id":"GHSA-x574-m823-4x7w","url":"https://github.com/advisories/GHSA-x574-m823-4x7w","severity":"MODERATE","ecosystem":"npm","package":"vite","vulnerableRanges":["<4.5.10"],"patched":["4.5.10"],"provenance":"source","from":"GHSA"}],"euvd":{"id":"EUVD-2025-8079","url":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2025-8079","exploited":false,"exploitedSince":null,"provenance":"source"},"exploits":[{"id":52111,"url":"https://www.exploit-db.com/exploits/52111","title":"Vite 6.2.2 - Arbitrary File Read","type":"remote","platform":"multiple","date":"2025-04-03","verified":false,"provenance":"source"}],"exploitSources":{"exploitdb":{"count":1,"earliest":"2025-04-03"},"pocGithub":{"count":22,"skipped":3,"earliest":"2025-03-26","earliestUrl":"https://github.com/xuemian168/CVE-2025-30208","repos":[{"name":"ThumpBo/CVE-2025-30208-EXP","url":"https://github.com/ThumpBo/CVE-2025-30208-EXP","stars":194,"created":"2025-03-26"},{"name":"xuemian168/CVE-2025-30208","url":"https://github.com/xuemian168/CVE-2025-30208","stars":50,"created":"2025-03-26"},{"name":"4xura/CVE-2025-30208","url":"https://github.com/4xura/CVE-2025-30208","stars":12,"created":"2025-03-27"},{"name":"marino-admin/Vite-CVE-2025-30208-Scanner","url":"https://github.com/marino-admin/Vite-CVE-2025-30208-Scanner","stars":10,"created":"2025-03-26"},{"name":"ThemeHackers/CVE-2025-30208","url":"https://github.com/ThemeHackers/CVE-2025-30208","stars":10,"created":"2025-06-27"}]},"nuclei":[{"id":"CVE-2025-30208","name":"Vite - Arbitrary File Read","severity":"medium","path":"http/cves/2025/CVE-2025-30208.yaml","url":"https://github.com/projectdiscovery/nuclei-templates/blob/main/http/cves/2025/CVE-2025-30208.yaml"}],"first":{"date":"2025-03-26","source":"PoC-in-GitHub","url":"https://github.com/xuemian168/CVE-2025-30208"},"provenance":"source"},"exploitRefs":[],"flow":[],"timeline":[{"date":"2025-03-24","kind":"published","label":"Published (CVE.org)","url":"https://www.cve.org/CVERecord?id=CVE-2025-30208","provenance":"source"},{"date":"2025-03-26","kind":"exploit-public","label":"First public exploit: PoC-in-GitHub; later: Exploit-DB 2025-04-03","url":"https://github.com/xuemian168/CVE-2025-30208","provenance":"source"},{"date":"2025-04-28","kind":"exploited-reported","label":"Exploitation first reported (VulnCheck KEV evidence)","url":"https://censys.com/blog/scouting-a-threat-actor","provenance":"source"}],"speed":{"daysToPublicExploit":2,"firstExploitFrom":"PoC-in-GitHub","daysToKev":null},"priority":{"score":65.2,"factors":[{"name":"In a KEV catalog","points":35.0,"detail":"listed in VulnCheck KEV"},{"name":"Recent KEV listing","points":0.0,"detail":"added 550 days ago"},{"name":"Known ransomware use","points":0.0,"detail":"not known"},{"name":"EPSS percentile","points":19.9,"detail":"percentile 0.9950"},{"name":"Named in threat reports","points":0.0,"detail":"0 reports"},{"name":"Public exploit code","points":5.0,"detail":"1 Exploit-DB entry; 22 PoC-in-GitHub repos; 1 nuclei template"},{"name":"Mentioned in OTX pulses","points":1.59,"detail":"4 pulses"},{"name":"CVSS severity","points":3.71,"detail":"base score 5.3"},{"name":"End-of-life product","points":0.0,"detail":"supported or unknown"}]},"lineage":{"familyId":"fam-vitejs-vite-cve-2022-35204","parents":[{"from":"CVE-2024-45811","to":"CVE-2025-30208","relation":"related","confidence":"medium","kind":"lineage","evidence":[{"kind":"same-code","provenance":"machine","files":["packages/vite/src/node/server/middlewares/transform.ts","playground/fs-serve/root/src/index.html"],"commits":["https://github.com/vitejs/vite/commit/6820bb3b9a54334f3268fc5ee1e967d2e1c0db34","https://github.com/vitejs/vite/commit/4573a6fd6f1b097fb7296a3e135e0646b996b249","https://github.com/vitejs/vite/commit/315695e9d97cc6cfa7e6d9e0229fb50cdae3d9f4","https://github.com/vitejs/vite/commit/80381c38d6f068b12e6e928cd3c616bd1d64803c"],"basis":"shared function","functions":["transformMiddleware"]},{"kind":"similar","provenance":"machine","score":0.55,"basis":"same product + CWE + description similarity"}]}],"children":[{"from":"CVE-2025-30208","to":"CVE-2025-31125","relation":"successor","confidence":"high","kind":"lineage","evidence":[{"kind":"version-step","provenance":"source","package":"npm:vite","fromFixed":"6.2.3","toFixed":"6.2.4","daysApart":7},{"kind":"version-step","provenance":"source","package":"npm:vite","fromFixed":"4.5.10","toFixed":"4.5.11","daysApart":7},{"kind":"same-code","provenance":"machine","files":["packages/vite/src/node/server/middlewares/transform.ts","playground/fs-serve/root/src/index.html"],"commits":["https://github.com/vitejs/vite/commit/315695e9d97cc6cfa7e6d9e0229fb50cdae3d9f4","https://github.com/vitejs/vite/commit/80381c38d6f068b12e6e928cd3c616bd1d64803c","https://github.com/vitejs/vite/commit/59673137c45ac2bcfad1170d954347c1a17ab949"],"basis":"shared function","functions":["transformMiddleware"]},{"kind":"similar","provenance":"machine","score":0.46,"basis":"same package + description similarity"}]},{"from":"CVE-2025-30208","to":"CVE-2026-39364","relation":"related","confidence":"medium","kind":"lineage","evidence":[{"kind":"same-code","provenance":"machine","files":["packages/vite/src/node/server/middlewares/transform.ts","playground/fs-serve/root/src/index.html"],"commits":["https://github.com/vitejs/vite/commit/315695e9d97cc6cfa7e6d9e0229fb50cdae3d9f4","https://github.com/vitejs/vite/commit/80381c38d6f068b12e6e928cd3c616bd1d64803c","https://github.com/vitejs/vite/commit/a9a3df299378d9cbc5f069e3536a369f8188c8ff"],"basis":"shared function","functions":["transformMiddleware"]}]},{"from":"CVE-2025-30208","to":"CVE-2026-39365","relation":"related","confidence":"medium","kind":"lineage","evidence":[{"kind":"same-code","provenance":"machine","files":["packages/vite/src/node/server/middlewares/transform.ts"],"commits":["https://github.com/vitejs/vite/commit/315695e9d97cc6cfa7e6d9e0229fb50cdae3d9f4","https://github.com/vitejs/vite/commit/80381c38d6f068b12e6e928cd3c616bd1d64803c","https://github.com/vitejs/vite/commit/79f002f2286c03c88c7b74c511c7f9fc6dc46694"],"basis":"shared function","functions":["transformMiddleware"]}]}],"packageHistory":[{"cve":"CVE-2024-45812","published":"2024-09-17","fixed":"5.4.6","kev":false},{"cve":"CVE-2024-52011","published":"2026-06-01","fixed":"5.4.9","kev":false},{"cve":"CVE-2025-24010","published":"2025-01-20","fixed":"6.0.9","kev":false,"link":{"from":"CVE-2025-24010","to":"CVE-2025-30208","relation":"successor","confidence":"low","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"npm:vite","fromFixed":"6.0.9","toFixed":"6.0.12","daysApart":63},{"kind":"version-step","provenance":"source","package":"npm:vite","fromFixed":"4.5.6","toFixed":"4.5.10","daysApart":63}]}},{"cve":"CVE-2025-30208","published":"2025-03-24","fixed":"6.2.3","kev":false},{"cve":"CVE-2025-31125","published":"2025-03-31","fixed":"6.2.4","kev":true},{"cve":"CVE-2025-31486","published":"2025-04-03","fixed":"6.2.5","kev":false},{"cve":"CVE-2025-32395","published":"2025-04-10","fixed":"6.2.6","kev":false}],"package":"npm:vite"}}