Skip to main content
← All vulnerabilities
CVE-2026-112949GHSA-QXG6-89MG-RQV8

Vitest: Code injection via unauthenticated manual mock registration

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 4.1.12, 5.0.3
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: poc
  • Automatable: no
  • Technical impact: partial

Summary

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.

Timeline

  1. CVE published
  2. First seen by cve.now
  3. CISA SSVC assessment

    Exploitation: poc · Automatable: no · Technical impact: partial

  4. Record last updated

Affected versions

  • vitest-dev vitest

    From 2.1.0-beta.7 · fixed in 4.1.12; From 5.0.0 · fixed in 5.0.3

  • @vitest mocker

    From 2.1.0-beta.7 · fixed in 4.1.12; From 5.0.0 · fixed in 5.0.3

  • @vitest/mockernpm

    From 2.1.0-beta.7 · fixed in 4.1.12

  • @vitest/mockernpm

    From 5.0.0-beta.1 · fixed in 5.0.3

References 5

GitHub · vitest-dev/vitest