CVE-2026-112949 PUBLISHED

Vitest: Code injection via unauthenticated manual mock registration

Assigner: GitHub_M
Reserved: 19.10.2026 Published: 20.10.2026 Updated: 20.10.2026

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.

Metrics

CVSS Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N
CVSS Score: 4.7

Product Status

Vendor vitest-dev
Product vitest
Versions
  • Version >= 2.1.0-beta.7, < 4.1.12 is affected
  • Version >= 5.0.0, < 5.0.3 is affected
Vendor @vitest
Product mocker
Versions
  • Version >= 2.1.0-beta.7, < 4.1.12 is affected
  • Version >= 5.0.0, < 5.0.3 is affected

References

Problem Types

  • CWE-94: Improper Control of Generation of Code ('Code Injection') CWE
  • CWE-116: Improper Encoding or Escaping of Output CWE
  • CWE-306: Missing Authentication for Critical Function CWE