SEPTEMBER 17, 2026
Live Feed
Back to database
Case File

CVE-2026-84373

MEDIUM · CVSS 5.9 EPSS 0.38% Public Exploit

Source: NVD + CISA KEV + EPSS · Published 2026-09-01 · Last synced 2026-09-17

CyberRota Analysis

AI-Generated

The vulnerability affects the Vitest testing framework, specifically versions 2.1.0 through 4.1.11 and 5.0.0-rc.2, where the mockerPlugin and interceptorPlugin improperly handle unauthenticated WebSocket connections, allowing remote clients to access local files outside the project root. This can lead to unauthorized disclosure of sensitive information from the development server. Developers using affected versions in environments where the development server is exposed should prioritize updating to the patched versions 4.1.11 or 5.0.0-rc.2 to mitigate this risk.

Public Exploit Signal

A public exploit, PoC, GitHub repository or Metasploit reference was detected for this CVE.

Note: these links are listed for security research and verification purposes only.

CVE
CVE-2026-84373
Severity
MEDIUM
CVSS
5.9
EPSS
0.38%

Original NVD Description

Vitest is a testing framework powered by Vite. From 2.1.0 until 4.1.11 and 5.0.0-rc.2, the public mockerPlugin and standalone interceptorPlugin exports in packages/mocker/src/node/interceptorPlugin.ts register the vitest:interceptor:register handler on Vite's unauthenticated HMR WebSocket without validating redirect targets against the file-serving allowlist. The implementation processes event.redirect without enforcing server.fs.allow and server.fs.deny through isFileLoadingAllowed. A remote client that can reach an exposed development server can submit an opaque URL scheme preserving .. segments, causing join(server.config.root, redirectUrl.pathname) to resolve outside the project root. The plugin's load hook then returns readFile(mock.redirect, 'utf-8') as module source, disclosing local files readable by the dev-server process. Vitest browser mode uses a token-authenticated RPC and is not remotely unauthenticated by default, although the same boundary check was missing on that path. This issue is fixed in versions 4.1.11 and 5.0.0-rc.2.