Cross-origin script execution in Vite custom middleware
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Active
- Attack complexity
- Low
- Attack requirements
- Present
- Impact type
- Cross-site scripting
- Confidentiality · integrity · availability
- Low · Low · None
- Fix status
- Partial Red Hat: 9 without a fix
Attack profile from CVSS 4.0 · CNA. Fix status from CNA, GitHub and Red Hat. Impact type from CWE-80.
Summary
Vite before 6.4.4, from 7.0.0 before 7.3.7, from 8.0.0 before 8.1.6, from 8.2.0 before 8.2.4, and from 8.3.0 before 8.3.3, and vite-plus before 1.1.0, are affected. Custom middleware that passes an unchanged request URL to server.transformIndexHtml lets crafted leading slashes make the browser load an attacker-controlled module (CWE-80). A victim who loads a crafted development-server page can have attacker script run in the page.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
Description from the CNA
Vite is a frontend tooling framework for JavaScript. Prior to 6.4.4, 7.3.7, 8.1.6, 8.2.4, and 8.3.3, applications using custom middleware are vulnerable when they pass an unchanged browser request URL to server.transformIndexHtml. getHtmlFilename uses the query-bearing request URL to resolve an existing local file while preserving attacker-supplied leading slashes in the generated proxy module URL. If the transformed HTML contains an inline module script and a victim browser loads the crafted development-server page, the leading double slash makes the browser fetch and execute an attacker-controlled module in the Vite-served page. This execution can expose sensitive page data or permit critical actions available to the affected application. This issue is fixed in versions 6.4.4, 7.3.7, 8.1.6, 8.2.4, and 8.3.3.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| vitejs | vite | 8.3.0 to before 8.3.3; 8.2.0 to before 8.2.4; 8.0.0 to before 8.1.6; 7.0.0 to before 7.3.7; before 6.4.4 | 8.3.3, 8.2.4, 8.1.6, 7.3.7, 6.4.4 | Patch available | CNA |
| vitejs | vite-plus | before 1.1.0 | 1.1.0 | Patch available | CNA |
| — | vite (npm) | 8.3.0 to before 8.3.3 | 8.3.3 | Patch available | GHSA-9jrq-w75r-8gcw |
| — | vite (npm) | 8.2.0 to before 8.2.4 | 8.2.4 | Patch available | GHSA-9jrq-w75r-8gcw |
| — | vite (npm) | 8.0.0 to before 8.1.6 | 8.1.6 | Patch available | GHSA-9jrq-w75r-8gcw |
| — | vite (npm) | 7.0.0 to before 7.3.7 | 7.3.7 | Patch available | GHSA-9jrq-w75r-8gcw |
| — | vite (npm) | before 6.4.4 | 6.4.4 | Patch available | GHSA-9jrq-w75r-8gcw |
| — | vite-plus (npm) | before 1.1.0 | 1.1.0 | Patch available | GHSA-9jrq-w75r-8gcw |
- vite Vendorvitejs Affected 8.3.0 to before 8.3.3; 8.2.0 to before 8.2.4; 8.0.0 to before 8.1.6; 7.0.0 to before 7.3.7; before 6.4.4 Fixed in 8.3.3, 8.2.4, 8.1.6, 7.3.7, 6.4.4 Patch available CNA
- vite-plus Vendorvitejs Affected before 1.1.0 Fixed in 1.1.0 Patch available CNA
- vite (npm) Vendor— Affected 8.3.0 to before 8.3.3 Fixed in 8.3.3 Patch available GHSA-9jrq-w75r-8gcw
- vite (npm) Vendor— Affected 8.2.0 to before 8.2.4 Fixed in 8.2.4 Patch available GHSA-9jrq-w75r-8gcw
- vite (npm) Vendor— Affected 8.0.0 to before 8.1.6 Fixed in 8.1.6 Patch available GHSA-9jrq-w75r-8gcw
- vite (npm) Vendor— Affected 7.0.0 to before 7.3.7 Fixed in 7.3.7 Patch available GHSA-9jrq-w75r-8gcw
- vite (npm) Vendor— Affected before 6.4.4 Fixed in 6.4.4 Patch available GHSA-9jrq-w75r-8gcw
- vite-plus (npm) Vendor— Affected before 1.1.0 Fixed in 1.1.0 Patch available GHSA-9jrq-w75r-8gcw
Remediation
Vite is fixed in 6.4.4, 7.3.7, 8.1.6, 8.2.4, and 8.3.3, and vite-plus is fixed in 1.1.0. Red Hat lists no available fix for Red Hat AMQ Broker 7, Red Hat Ansible Automation Platform 2, Red Hat Build of Keycloak, Red Hat Build of Podman Desktop, Red Hat JBoss Enterprise Application Platform 8, Red Hat JBoss Enterprise Application Platform Expansion Pack, Red Hat OpenShift AI (RHOAI), Red Hat OpenShift Dev Spaces, and Red Hat Trusted Artifact Signer.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
- Fix · CNA vite (vitejs) Fixed in 8.3.3, 8.2.4, 8.1.6, 7.3.7, 6.4.4
- Fix · CNA vite-plus (vitejs) Fixed in 1.1.0
- Fix · GHSA-9jrq-w75r-8gcw vite (npm) Fixed in 8.3.3 Advisory →
- Fix · GHSA-9jrq-w75r-8gcw vite (npm) Fixed in 8.2.4 Advisory →
- Fix · GHSA-9jrq-w75r-8gcw vite (npm) Fixed in 8.1.6 Advisory →
- Fix · GHSA-9jrq-w75r-8gcw vite (npm) Fixed in 7.3.7 Advisory →
- Fix · GHSA-9jrq-w75r-8gcw vite (npm) Fixed in 6.4.4 Advisory →
- Fix · GHSA-9jrq-w75r-8gcw vite-plus (npm) Fixed in 1.1.0 Advisory →
Vendor assessments
Red Hat
Red Hat rating: Moderate. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat AMQ Broker 7 | Affected | No fix yet: Fix deferred |
| Red Hat Ansible Automation Platform 2 | Affected | No fix yet: Fix deferred |
| Red Hat Build of Keycloak | Affected | No fix yet: Fix deferred |
| Red Hat Build of Podman Desktop | Affected | No fix yet: Fix deferred |
| Red Hat JBoss Enterprise Application Platform 8 | Affected | No fix yet: Fix deferred |
| Red Hat JBoss Enterprise Application Platform Expansion Pack | Affected | No fix yet: Fix deferred |
| Red Hat OpenShift AI (RHOAI) | Affected | No fix yet: Fix deferred |
| Red Hat OpenShift Dev Spaces | Affected | No fix yet: Fix deferred |
| Red Hat Trusted Artifact Signer | Affected | No fix yet: Fix deferred |
Not affected: 1 product
- Red Hat Hardened Images
Timeline
- 2026-10-20 Threatist record created from CVE-2026-112945
- 2026-10-21 Affected versions changed · Red Hat
- 2026-10-21 CVSS score added · Red Hat
- 2026-10-21 Alias added: GHSA-9jrq-w75r-8gcw
- 2026-10-21 Fix available: npm/[email protected], npm/[email protected], npm/[email protected] +3 · GHSA-9jrq-w75r-8gcw
- 2026-10-21 CVSS score added · GHSA-9jrq-w75r-8gcw
- 2026-10-21 Weakness changed · GHSA-9jrq-w75r-8gcw
- 2026-10-21 5 new references · GHSA-9jrq-w75r-8gcw
- 2026-10-28 CISA SSVC decision points changed
- 2026-10-28 Priority changed: LOW → MEDIUM
- 2026-10-29 EPSS moved to the 50th–90th percentile
References
More vitejs vulnerabilities
- TI-2025-22386 Vite has a `server.fs.deny` bypassed for `inline` and `raw` with `?import` query KEVCVSS 3.1HIGH 7.5
- TI-2025-41248 Code injection in vitejs vite-plugin-react CVSS 3.1CRITICAL 9.8
- TI-2026-28350 Vite Affected by Arbitrary File Read via Vite Dev Server WebSocket CVSS 4.0HIGH 8.2
- TI-2025-41735 @vitejs/plugin-rsc has Arbitrary File Read via `/__vite_rsc_findSourceMapURL` Endpoint on Development CVSS 3.1HIGH 7.5
- TI-2025-21544 Vite bypasses server.fs.deny when using `?raw??` CVSS 3.1HIGH 7.5
- TI-2023-16938 Vite Server Options (server.fs.deny) can be bypassed using double forward-slash (//) CVSS 3.1HIGH 7.5
Sources
- CVE-2026-112945 · CVE Program
- CVE-2026-112945 · NVD
- FIRST EPSS
- GHSA-9jrq-w75r-8gcw · GitHub Advisory Database · CC BY 4.0
- CVE-2026-112945 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences