CVE-2026-39364
JavaScript vulnerability analysis and mitigation

Overview

CVE-2026-39364 is a file disclosure vulnerability in the Vite JavaScript frontend tooling framework, where the server.fs.deny access control can be bypassed by appending specific query parameters to HTTP requests. Affected versions include Vite 7.1.0 through 7.3.1 and 8.0.0 through 8.0.4, as well as vite-plus ≤ 0.1.15. The vulnerability was published on April 6, 2026, with patches released the same day. It carries a CVSS v3.1 score of 7.5 (High) and a CVSS v4.0 score of 8.2 (High) (GitHub Advisory, Red Hat Bugzilla).

Technical details

The root cause is classified under CWE-180 (Incorrect Behavior Order: Validate Before Canonicalize), CWE-284 (Improper Access Control), and CWE-472 (External Control of Assumed-Immutable Web Parameter). The Vite dev server validates file access restrictions via server.fs.deny before fully processing query parameters; by appending parameters such as ?raw, ?import&raw, or ?import&url&inline, an attacker causes the server to serve the file content with an HTTP 200 response, bypassing the intended 403 denial. Exploitation requires that the Vite dev server is explicitly exposed to the network (via --host or server.host), the target sensitive file resides within a directory permitted by server.fs.allow, and the file is matched by a server.fs.deny pattern. A step-by-step proof-of-concept is included in the official security advisory (GitHub Advisory).

Impact

Successful exploitation allows an unauthenticated remote attacker to read the contents of sensitive files that should be protected by server.fs.deny, such as .env files (which may contain API keys, database credentials, and secrets) and certificate files (*.crt). The impact is limited to confidentiality — there is no integrity or availability impact. While this vulnerability primarily affects development environments, exposure of secrets from .env files could enable lateral movement into production systems or cloud infrastructure (GitHub Advisory, Red Hat Bugzilla).

Exploitability

A proof-of-concept with concrete, numbered reproduction steps using curl commands is publicly available in the official Vite security advisory (GitHub Advisory). Nuclei detection templates for this CVE have been added to the ProjectDiscovery nuclei-templates repository, further lowering the barrier for automated scanning. The EPSS score is approximately 2.56–5.15% (varying by source), and there is no current evidence of active in-the-wild exploitation or CISA KEV catalog listing. No threat actor attribution has been reported at this time.

Exploitation steps

  1. Reconnaissance: Identify internet-exposed Vite dev servers running versions 7.1.0–7.3.1 or 8.0.0–8.0.4 using tools like Shodan or Censys, or by scanning for the default Vite dev server port (typically 5173 or 5175).
  2. Verify target configuration: Confirm the server is network-accessible (started with --host or server.host configured) and that sensitive files like .env exist within the project root.
  3. Confirm baseline restriction: Send a plain request to verify the server.fs.deny restriction is active (expect HTTP 403):
    curl -i http://<target>:5175/src/.env
  4. Bypass with query parameter: Append a bypass query parameter to the same request to retrieve the blocked file (expect HTTP 200 with file contents):
    curl -i 'http://<target>:5175/src/.env?raw'
    curl -i 'http://<target>:5175/src/.env?import&raw'
    curl -i 'http://<target>:5175/src/.env?import&url&inline'
  5. Exfiltrate sensitive data: Parse the returned file contents for secrets such as API keys, database connection strings, cloud credentials, or private certificate material for use in further attacks (GitHub Advisory).

Indicators of compromise

  • Network: HTTP GET requests to Vite dev server endpoints (e.g., /.env, /*.crt, /*.key) containing query parameters ?raw, ?import&raw, or ?import&url&inline that return HTTP 200 responses instead of 403.
  • Logs: Vite dev server access logs showing requests to denied file paths with appended query parameters returning 200 status codes; repeated probing of multiple sensitive file paths from a single external IP.
  • File System: No direct file system artifacts from exploitation, as the attack is read-only; however, review for unexpected access to .env or certificate files in server logs.
  • Network: Outbound connections from the development host to unknown external IPs shortly after suspicious inbound requests, potentially indicating credential use following exfiltration (GitHub Advisory).

Mitigation and workarounds

Upgrade Vite to version 7.3.2 or 8.0.5 (or later), which fix the query parameter bypass. For vite-plus, upgrade to version 0.1.16 or later. As an immediate workaround, restrict network access to the Vite dev server using firewall rules or network-level controls so it is not reachable from untrusted networks — the vulnerability only affects servers explicitly exposed via --host or server.host. IBM API Connect users should refer to the IBM advisory for affected product versions (GitHub Advisory, IBM Advisory).

Community reactions

The vulnerability was reported by multiple independent security researchers (odgrso, ritikchaddha, neo-ai-engineer, instantraaamen, fg0x0, jonathanwd, kq5y) and remediated by Vite maintainer bluwy, indicating broad community awareness (GitHub Advisory). ProjectDiscovery added Nuclei detection templates for this CVE shortly after disclosure, reflecting active interest from the security community in automated detection. Red Hat tracked the issue via Bugzilla with high priority, and IBM issued a separate advisory for affected API Connect products (Red Hat Bugzilla, IBM Advisory).

Additional resources


SourceThis report was generated using AI

Related JavaScript vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-77415CRITICAL9.3
  • JavaScript logoJavaScript
  • jsonata
NoYesAug 21, 2026
CVE-2026-77414CRITICAL9.3
  • JavaScript logoJavaScript
  • jsonata
NoYesAug 21, 2026
CVE-2026-77413CRITICAL9.3
  • JavaScript logoJavaScript
  • jsonata
NoYesAug 21, 2026
CVE-2026-63421HIGH7.5
  • JavaScript logoJavaScript
  • @keystone-6/core
NoYesAug 21, 2026
CVE-2026-53509MEDIUM5.7
  • JavaScript logoJavaScript
  • @aborruso/ckan-mcp-server
NoYesAug 21, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management