Vite's `server.fs` settings were not applied to HTML files
Collected exploitation and prediction evidence
Risk source coverageCISA KEV is observed exploitation evidence. FIRST EPSS is a dated prediction of exploitation in the next 30 days. Missing scores are unknown. This collector requests predictions only for explicit CVE aliases in the public NuGet archive; Microsoft release views retain their existing prediction scope.
No collected risk observation for these identifiers. This does not establish absence of exploitation or a zero probability.
cve-program · CVE-2025-58752
PublishedVite is a frontend tooling framework for JavaScript. Prior to versions 7.1.5, 7.0.7, 6.3.6, and 5.4.20, any HTML files on the machine were served regardless of the `server.fs` settings. Only apps that explicitly expose the Vite dev server to the network (using --host or server.host config option) and use `appType: 'spa'` (default) or `appType: 'mpa'` are affected. This vulnerability also affects the preview server. The preview server allowed HTML files not under the output directory to be served. Versions 7.1.5, 7.0.7, 6.3.6, and 5.4.20 fix the issue.
- Source published
- 8 Sep 2025 22:56:58 UTC
- Source modified
- 9 Sep 2025 13:29:30 UTC
- Observed here
- 23 Oct 2026 15:48:27 UTC
- Source terms
- CVE Program Terms of Use
Original source record · Cite this exact observation · Complete original publisher JSON
This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: cve-program · CVE Program Terms of Use. Source text is retained; field grouping and change labels are provided by ChangeIntel.
CVSS 4.0 · 2.3 CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
euvd · EUVD-2025-27180
PublishedVite is a frontend tooling framework for JavaScript. Prior to versions 7.1.5, 7.0.7, 6.3.6, and 5.4.20, any HTML files on the machine were served regardless of the `server.fs` settings. Only apps that explicitly expose the Vite dev server to the network (using --host or server.host config option) and use `appType: 'spa'` (default) or `appType: 'mpa'` are affected. This vulnerability also affects the preview server. The preview server allowed HTML files not under the output directory to be served. Versions 7.1.5, 7.0.7, 6.3.6, and 5.4.20 fix the issue.
EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON.
Original publisher date fields
datePublished: Sep 8, 2025, 10:56:58 PM
dateUpdated: Sep 9, 2025, 1:29:30 PM
3 related source bulletins · separate from aliases
SSA-485750: SSA-485750: Multiple Vulnerabilities in SIDIS Prime Before V4.0.800
CVE-2024-29857 · CVE-2024-30171 · CVE-2024-30172 · CVE-2024-41996 · CVE-2025-6965 · CVE-2025-7783 · CVE-2025-9230 · CVE-2025-9232 · CVE-2025-9670 · CVE-2025-12816 · CVE-2025-15284 · CVE-2025-58751 · CVE-2025-58752 · CVE-2025-58754 · CVE-2025-62522 · CVE-2025-64718 · CVE-2025-64756 · CVE-2025-66030 · CVE-2025-66031 · CVE-2025-66035 · CVE-2025-66412 · CVE-2025-69277 · CVE-2026-22610
ICSA-26-071-03: Siemens SIDIS Prime
CVE-2024-29857 · CVE-2024-30171 · CVE-2024-30172 · CVE-2024-41996 · CVE-2025-6965 · CVE-2025-7783 · CVE-2025-9230 · CVE-2025-9232 · CVE-2025-9670 · CVE-2025-12816 · CVE-2025-15284 · CVE-2025-58751 · CVE-2025-58752 · CVE-2025-58754 · CVE-2025-62522 · CVE-2025-64718 · CVE-2025-64756 · CVE-2025-66030 · CVE-2025-66031 · CVE-2025-66035 · CVE-2025-66412 · CVE-2025-69277 · CVE-2026-22610
NCSC-2026-0079: Kwetsbaarheden verholpen in Siemens producten
CVE-2024-29857 · CVE-2024-30171 · CVE-2024-30172 · CVE-2024-41996 · CVE-2025-6965 · CVE-2025-7783 · CVE-2025-9230 · CVE-2025-9232 · CVE-2025-9670 · CVE-2025-12816 · CVE-2025-15284 · CVE-2025-27769 · CVE-2025-40943 · CVE-2025-55018 · CVE-2025-58751 · CVE-2025-58752 · CVE-2025-58754 · CVE-2025-62439 · CVE-2025-62522 · CVE-2025-64157 · CVE-2025-64718 · CVE-2025-64756 · CVE-2025-66030 · CVE-2025-66031 · CVE-2025-66035 · CVE-2025-66412 · CVE-2025-69277 · CVE-2026-22610 · CVE-2026-24858 · CVE-2026-25569 · CVE-2026-25570 · CVE-2026-25571 · CVE-2026-25572 · CVE-2026-25573 · CVE-2026-25605
- Source published
- Sep 8, 2025, 10:56:58 PM (timezone not stated)
- Source modified
- Sep 9, 2025, 1:29:30 PM (timezone not stated)
- Observed here
- 11 Nov 2026 03:37:05 UTC
- Source terms
- ENISA EUVD · source terms and attribution apply
Original source record · Cite this exact observation · Complete original publisher JSON
This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: euvd · ENISA EUVD · source terms and attribution apply. Source text is retained; field grouping and change labels are provided by ChangeIntel.
EUVD CVSS 4.0 · 2.3 CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
nvd · CVE-2025-58752
PublishedVite is a frontend tooling framework for JavaScript. Prior to versions 7.1.5, 7.0.7, 6.3.6, and 5.4.20, any HTML files on the machine were served regardless of the `server.fs` settings. Only apps that explicitly expose the Vite dev server to the network (using --host or server.host config option) and use `appType: 'spa'` (default) or `appType: 'mpa'` are affected. This vulnerability also affects the preview server. The preview server allowed HTML files not under the output directory to be served. Versions 7.1.5, 7.0.7, 6.3.6, and 5.4.20 fix the issue.
NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON.
Source analysis status: Analyzed
Weakness classifications: CWE-23 · CWE-200 · CWE-284
Original publisher date fields
published: 2025-09-08T23:15:36.350
lastModified: 2026-09-30T23:10:00.237
1 source CPE criteria · context only
- cpe:2.3:a:vitejs:vite:*:*:*:*:*:node.js:*:*
The original JSON retains the logical configuration operators, exclusions and version bounds.
- Source published
- 8 Sep 2025 23:15:36 UTC
- Source modified
- 30 Sep 2026 23:10:00 UTC
- Observed here
- 25 Oct 2026 03:17:18 UTC
- Source terms
- NIST NVD usage terms; underlying source attribution retained
Original source record · Cite this exact observation · Complete original publisher JSON
This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: nvd · NIST NVD usage terms; underlying source attribution retained. Source text is retained; field grouping and change labels are provided by ChangeIntel.
CVSS 4.0 · [email protected] · Secondary · 2.3 CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
CVSS 3.1 · [email protected] · Primary · 5.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
osv · GHSA-jqfw-vq24-v9c3
Published### Summary Any HTML files on the machine were served regardless of the `server.fs` settings. ### Impact Only apps that match the following conditions are affected: - 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)) - `appType: 'spa'` (default) or `appType: 'mpa'` is used This vulnerability also affects the preview server. The preview server allowed HTML files not under the output directory to be served. ### Details The [serveStaticMiddleware](https://github.com/vitejs/vite/blob/9719497adec4ad5ead21cafa19a324bb1d480194/packages/vite/src/node/server/middlewares/static.ts#L123) function is in charge of serving static files from the server. It returns the [viteServeStaticMiddleware](https://github.com/vitejs/vite/blob/9719497adec4ad5ead21cafa19a324bb1d480194/packages/vite/src/node/server/middlewares/static.ts#L136) function which runs the needed tests and serves the page. The viteServeStaticMiddleware function [checks if the extension of the requested file is ".html"](https://github.com/vitejs/vite/blob/9719497adec4ad5ead21cafa19a324bb1d480194/packages/vite/src/node/server/middlewares/static.ts#L144). If so, it doesn't serve the page. Instead, the server will go on to the next middlewares, in this case [htmlFallbackMiddleware](https://github.com/vitejs/vite/blob/9719497adec4ad5ead21cafa19a324bb1d480194/packages/vite/src/node/server/middlewares/htmlFallback.ts#L14), and then to [indexHtmlMiddleware](https://github.com/vitejs/vite/blob/9719497adec4ad5ead21cafa19a324bb1d480194/packages/vite/src/node/server/middlewares/indexHtml.ts#L438). These middlewares don't perform any test against allow or deny rules, and they don't make sure that the accessed file is in the root directory of the server. They just find the file and send back its contents to the client. ### PoC Execute the following shell commands: ``` npm create vite@latest cd vite-project/ echo "secret" > /tmp/secret.html npm install npm run dev ``` Then, in a different shell, run the following command: `curl -v --path-as-is 'http://localhost:5173/../../../../../../../../../../../tmp/secret.html'` The contents of /tmp/secret.html will be returned. This will also work for HTML files that are in the root directory of the project, but are in the deny list (or not in the allow list). Test that by stopping the running server (CTRL+C), and running the following commands in the server's shell: ``` echo 'import path from "node:path"; import { defineConfig } from "vite"; export default defineConfig({server: {fs: {deny: [path.resolve(__dirname, "secret_files/*")]}}})' > [vite.config.js](http://vite.config.js) mkdir secret_files echo "secret txt" > secret_files/secret.txt echo "secret html" > secret_files/secret.html npm run dev ``` Then, in a different shell, run the following command: `curl -v --path-as-is 'http://localhost:5173/secret_files/secret.txt'` You will receive a 403 HTTP Response, because everything in the secret_files directory is denied. Now in the same shell run the following command: `curl -v --path-as-is 'http://localhost:5173/secret_files/secret.html'` You will receive the contents of secret_files/secret.html.
- Source published
- 9 Sep 2025 20:54:42 UTC
- Source modified
- 10 Sep 2026 03:50:28 UTC
- Observed here
- 24 Oct 2026 13:17:17 UTC
- Source terms
- GitHub Advisory Database · CC-BY-4.0
Original source record · Cite this exact observation · Complete original publisher JSON
This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: osv · GitHub Advisory Database · CC-BY-4.0. Source text is retained; field grouping and change labels are provided by ChangeIntel.
CVSS_V4 · CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Publisher rating · LOW