Skip to content
OpenAdvisories
Medium · 4.7 CVE-2026-112949 EUVD-2026-105148GHSA-qxg6-89mg-rqv8

Vitest: Code injection via unauthenticated manual mock registration

Published Oct 20, 2026 · Updated Oct 23, 2026 · Assigned by GitHub_M

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 products

VendorProductAffectedFixed
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 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

Wolfi

ReleasePackageFixed inAdvisory
Wolfi rolling renovate 44.178.1-r0 —
Wolfi rolling vitess-24 24.0.5-r3 —

Affected packages

EcosystemPackageAffectedFixedRecord
npm @vitest/mocker >= 2.1.0-beta.7, < 4.1.12 4.1.12 GHSA-qxg6-89mg-rqv8
npm @vitest/mocker >= 5.0.0-beta.1, < 5.0.3 5.0.3 GHSA-qxg6-89mg-rqv8

References