← Blog · · df00tech

CVE-2026-47429: Vitest UI Server Arbitrary File Read and Code Execution (CVSS 9.8)

vuln-intel npm CVE-2026-47429

Vulnerability Overview

CVE-2026-47429 is a critical missing authorization flaw (CWE-862, CVSS 9.8) in the Vitest UI server — the browser-based test interface bundled with the Vitest testing framework. When the UI server is active, no authentication is required to interact with its RPC endpoint. An unauthenticated remote attacker can exploit this to read arbitrary files from the host filesystem and execute arbitrary code in the context of the running process. The root cause is the absence of any authorization check on the browser plugin's file system command handlers, which were designed for local developer use but are exposed over the network without restriction.

Affected Software

The vulnerability affects the vitest npm package across two version ranges:

  • vitest < 3.2.6
  • vitest >= 4.0.0, < 4.1.0

Vendors shipping Vitest as part of a CI pipeline, dev container, or any environment where the UI server port is reachable from untrusted networks are at elevated risk. The patched releases are 3.2.6+ and 4.1.0+.

Exploitation Status

A public proof-of-concept exists as of the disclosure date (2026-06-01). Exploitation involves sending crafted WebSocket or HTTP requests to the Vitest UI server's RPC endpoint — specifically targeting the file system command handlers exposed by the browser plugin. This lowers the bar for exploitation significantly: any attacker with network access to the UI server port (typically 51204 or a dynamically assigned port) can achieve arbitrary file read and, in many configurations, remote code execution without credentials. Defenders should treat this as actively exploitable until patched.

Detection Coverage

Our detection rule for CVE-2026-47429 targets the behavioral indicators of exploitation rather than relying solely on version matching. The detection logic looks for:

  • Anomalous WebSocket connections or HTTP POST requests to Vitest RPC endpoints (e.g., paths matching /__vitest_api__ or similar internal routes) originating from non-loopback addresses.
  • Unexpected file read or process execution events spawned by the Vitest UI server process, particularly traversal patterns or reads of sensitive paths (/etc/passwd, SSH keys, environment files).
  • Process ancestry chains where a Node.js Vitest process forks unexpected child processes.

We ship full query coverage across seven SIEM platforms:

  • Microsoft Sentinel — KQL (network + process telemetry)
  • Splunk — SPL
  • Elastic — EQL
  • IBM QRadar — AQL
  • Sumo Logic — keyword + field-extraction queries
  • Google Chronicle — YARA-L 2.0
  • CrowdStrike Falcon — CQL event search

Each query is tuned to minimize noise in environments where Vitest legitimately runs on loopback, while surfacing the network-exposed exploitation pattern.

Patch immediately to [email protected] or [email protected] depending on your version track. If patching is not immediately possible, ensure the Vitest UI server port is firewalled from any untrusted network segment. The UI server should never be reachable from the public internet — it is a development tool, not a production service.

For full detection queries across all supported SIEMs and the complete technical breakdown, visit the CVE-2026-47429 detection page.

Get new detections in your inbox

New ATT&CK coverage plus CISA KEV / CVE detection rules, roughly weekly. No spam, unsubscribe anytime.