Vulnerability · Published Oct 20, 2026 · Assigned by GitHub_M

CVE-2026-112949Vitest: Code injection via unauthenticated manual mock registration

Medium 4.7

In plain English

A medium-severity code injection in mocker from @vitest. Proof-of-concept exploit code is public. The chance it is exploited in the next 30 days is estimated at 0.3% (higher than 27% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)4.7Medium
Exploit odds (30 days)0.3%top 72.9% of all CVEs
Exploited in the wildNo reportsCISA SSVC: poc
Attack toolingNoneno public tooling known

Official description

Vitest is a Vite-native testing framework for JavaScript and TypeScript projects. From 2.1.0-beta.7 until 4.1.12 and 5.0.3, an unauthenticated non-browser WebSocket client that can reach a development server using interceptorPlugin can register a manual mock whose attacker-controlled url createManualModuleSource inserts unescaped into generated module source. When the developer browser loads the affected module, attacker-controlled JavaScript executes on the development-server origin. This issue is fixed in versions 4.1.12 and 5.0.3.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
npm@vitest/mocker4.1.12GHSA-qxg6-89mg-rqv8
npm@vitest/mocker5.0.3GHSA-qxg6-89mg-rqv8

Affected products (as reported)

VendorProductVersions
vitest-dev vitest >= 2.1.0-beta.7, < 4.1.12>= 5.0.0, < 5.0.3
@vitest mocker >= 2.1.0-beta.7, < 4.1.12>= 5.0.0, < 5.0.3

Weakness: CWE-94, CWE-116, CWE-306 · Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N

References