{"items":[{"id":"NVI-00019673","kind":"vulnerability","title":"Vite: First 4 bytes of files outside of `server.fs` setting is exposed by `?vite-wasm-instance`","revision":1,"unknowns":["Customer inventory, deployment, reachability and exploitation have not been inspected."],"lifecycle":"active","identifiers":["GHSA-vfpm-58rq-9qcg","CVE-2026-112947"],"plain_summary":"OSV carries this publisher advisory for vite, vite, vite-plus. This is an aggregated source copy; consult the original publisher and compare update dates.","review_status":"source_listed","control_topics":[],"public_actions":[{"summary":"The original advisory lists fixed boundaries 8.3.3 for vite. Confirm the publisher’s latest guidance.","source_ids":["sr-87ccbcc9dff7508dea729d099dd0560f"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null},{"summary":"The original advisory lists fixed boundaries 8.2.4 for vite. Confirm the publisher’s latest guidance.","source_ids":["sr-87ccbcc9dff7508dea729d099dd0560f"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null},{"summary":"The original advisory lists fixed boundaries 1.1.0 for vite-plus. Confirm the publisher’s latest guidance.","source_ids":["sr-87ccbcc9dff7508dea729d099dd0560f"],"action_type":"vendor_patch","limitations":"Confirm current vendor support, compatibility and deployment evidence. This report has not tested a fix in your system.","current_supported_target":null}],"schema_version":"1.1.0","source_metrics":[],"why_it_matters":"Published affected context helps an owner decide what evidence to gather. This report has not examined your application.","related_sources":[{"id":"sr-87ccbcc9dff7508dea729d099dd0560f","url":"https://github.com/advisories/GHSA-vfpm-58rq-9qcg","basis":"vendor_advisory","notes":"GitHub-origin advisory, CC-BY-4.0; OSV is an aggregate copy, not independent corroboration.","title":"GHSA-vfpm-58rq-9qcg","publisher":"GitHub Advisory Database via OSV","observed_at":"2026-11-07T13:57:40.760Z"}],"affected_context":[{"certainty":"source_listed","source_ids":["sr-87ccbcc9dff7508dea729d099dd0560f"],"technology":"vite","known_exclusions":[],"conditions_summary":"### Summary\n\nThe first 4 bytes of files outside of `server.fs` setting can be returned to the browser by a request containing `?vite-wasm-instance`.\n\n### Impact\n\n Only apps that match one of the following conditions are affected:\n\n- explicitly expose the Vite dev server to the network using `--host` or the `server.host` option\n- there's a file that has a sensitive information in **the first 4 bytes**\n- uses Node.js or Deno to run Vite (if Bun is used, it is not affected)\n\n### Details\nRequests containing the `?vite-wasm-instance` query are handled by the internal Wasm plugin's `load` hook. The hook removes the query and reads the resulting path directly from disk, but the `server.fs` checks were not applied.\n\nAfter reading the file, Vite attempts to parse it as WebAssembly. When that parse fails, Node and deno throws an error that contains the first 4 bytes of the file.\n\n### PoC\n\nCreate a denied file and start an affected Vite dev server:\n\n```bash\necho 'SECRET_KEY=abc123\\n' > .env\nnpm run dev\ncurl 'http://localhost:5173/.env?vite-wasm-instance'\n```\n\nThis will show\n```\nFailed to parse WASM file \"/.env\": WebAssembly.compile()","public_affected_ranges":["SEMVER: introduced 8.3.0; fixed 8.3.3"]},{"certainty":"source_listed","source_ids":["sr-87ccbcc9dff7508dea729d099dd0560f"],"technology":"vite","known_exclusions":[],"conditions_summary":"### Summary\n\nThe first 4 bytes of files outside of `server.fs` setting can be returned to the browser by a request containing `?vite-wasm-instance`.\n\n### Impact\n\n Only apps that match one of the following conditions are affected:\n\n- explicitly expose the Vite dev server to the network using `--host` or the `server.host` option\n- there's a file that has a sensitive information in **the first 4 bytes**\n- uses Node.js or Deno to run Vite (if Bun is used, it is not affected)\n\n### Details\nRequests containing the `?vite-wasm-instance` query are handled by the internal Wasm plugin's `load` hook. The hook removes the query and reads the resulting path directly from disk, but the `server.fs` checks were not applied.\n\nAfter reading the file, Vite attempts to parse it as WebAssembly. When that parse fails, Node and deno throws an error that contains the first 4 bytes of the file.\n\n### PoC\n\nCreate a denied file and start an affected Vite dev server:\n\n```bash\necho 'SECRET_KEY=abc123\\n' > .env\nnpm run dev\ncurl 'http://localhost:5173/.env?vite-wasm-instance'\n```\n\nThis will show\n```\nFailed to parse WASM file \"/.env\": WebAssembly.compile()","public_affected_ranges":["SEMVER: introduced 8.2.0; fixed 8.2.4"]},{"certainty":"source_listed","source_ids":["sr-87ccbcc9dff7508dea729d099dd0560f"],"technology":"vite-plus","known_exclusions":[],"conditions_summary":"### Summary\n\nThe first 4 bytes of files outside of `server.fs` setting can be returned to the browser by a request containing `?vite-wasm-instance`.\n\n### Impact\n\n Only apps that match one of the following conditions are affected:\n\n- explicitly expose the Vite dev server to the network using `--host` or the `server.host` option\n- there's a file that has a sensitive information in **the first 4 bytes**\n- uses Node.js or Deno to run Vite (if Bun is used, it is not affected)\n\n### Details\nRequests containing the `?vite-wasm-instance` query are handled by the internal Wasm plugin's `load` hook. The hook removes the query and reads the resulting path directly from disk, but the `server.fs` checks were not applied.\n\nAfter reading the file, Vite attempts to parse it as WebAssembly. When that parse fails, Node and deno throws an error that contains the first 4 bytes of the file.\n\n### PoC\n\nCreate a denied file and start an affected Vite dev server:\n\n```bash\necho 'SECRET_KEY=abc123\\n' > .env\nnpm run dev\ncurl 'http://localhost:5173/.env?vite-wasm-instance'\n```\n\nThis will show\n```\nFailed to parse WASM file \"/.env\": WebAssembly.compile()","public_affected_ranges":["SEMVER: introduced 0.2.8; fixed 1.1.0"]}],"null_published_at":"2026-11-08T08:10:35.856Z","source_updated_at":"2026-10-21T17:00:07.443Z","source_disclosed_at":"2026-10-21T16:47:15.000Z","is_synthetic_fixture":false,"null_last_reviewed_at":null,"public_change_summary":"First indexed by Null; source disclosure date is shown separately.","null_first_observed_at":"2026-11-07T13:57:40.760Z"}],"next_cursor":null,"snapshot_revision":"42594"}