Description
Vitest is a testing framework powered by Vite. From 3.0.0 until 3.2.5, 4.1.8, and 5.0.0-beta.4, Vitest Browser Mode exposed a cdp() API that forwarded raw Chrome DevTools Protocol methods without being gated by allowWrite or allowExec, allowing a remote client with exposed browser API metadata to use CDP Page.setDownloadBehavior and Runtime.evaluate to overwrite vite.config.ts and execute attacker-controlled Node.js code. This issue is fixed in versions 3.2.5, 4.1.8, and 5.0.0-beta.
Problem types
CWE-749: Exposed Dangerous Method or Function
CWE-862: Missing Authorization
Product status
>= 4.0.0, < 4.1.8
>= 5.0.0-beta.0, < 5.0.0-beta.4
References
github.com/...vitest/security/advisories/GHSA-g8mr-85jm-7xhm
github.com/vitest-dev/vitest/pull/10444
github.com/vitest-dev/vitest/pull/10450
github.com/vitest-dev/vitest/pull/10456
github.com/...ommit/385a1aefd4c2bfa5e7d58bf7c6834c929969f2c7
github.com/...ommit/63e3b2eee4d58da56786a6333f517b9b492528c7
github.com/...ommit/e4067b3b150005fd42cf75f994300119245806b9
github.com/vitest-dev/vitest/releases/tag/v3.2.5
github.com/vitest-dev/vitest/releases/tag/v4.1.8
github.com/vitest-dev/vitest/releases/tag/v5.0.0-beta.4