CVE-2026-39365

Updated on 07 Apr 2026

Severity

6.3 Medium severity

Details

CVSS score
6.3
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

Overview

About vulnerability

Summary

Any files ending with .map even out side the project can be returned to the browser.

Impact

Only apps that match the following conditions are affected:

Details

In Vite v7.3.1, the dev server’s handling of .map requests for optimized dependencies resolves file paths and calls readFile without restricting ../ segments in the URL. As a result, it is possible to bypass the [server.fs.strict](https://vite.dev/config/server-options#server-fs-strict) allow list and retrieve .map files located outside the project root, provided they can be parsed as valid source map JSON.

PoC

  1. Create a minimal PoC sourcemap outside the project root
cat > /tmp/poc.map <<'EOF'
{"version":3,"file":"x.js","sources":[],"names":[],"mappings":""}
EOF
  1. Start the Vite dev server (example)
pnpm -C playground/fs-serve dev --host 127.0.0.1 --port 18080
  1. Confirm that direct /@fs access is blocked by strict (returns 403) <img width=“4004” height=“1038” alt=“image” src=“https://github.com/user-attachments/assets/15a859a8-1dc6-4105-8d58-80527c0dd9ab" />
  2. Inject ../ segments under the optimized deps .map URL prefix to reach /tmp/poc.map <img width=“2790” height=“846” alt=“image” src=“https://github.com/user-attachments/assets/5d02957d-2e6a-4c45-9819-3f024e0e81f2" />

Details

Fixes