{"id":"CVE-2026-112950","summary":"Vitest: Windows backslash traversal bypasses the @vitest/mocker redirect allowlist fix","details":"Vitest is a Vite-native testing framework for JavaScript and TypeScript projects. From 4.1.11 until 4.1.12 and 5.0.3, isFileLoadingAllowed and the filesystem read interpret backslashes differently on Windows in packages/mocker/src/node/interceptorPlugin.ts. When a client can reach the Vite dev server on Windows and register a redirect mock containing backslash traversal, POSIX joining preserves a Windows backslash traversal that the later filesystem read interprets as a path separator, so the client can read a file outside server.fs.allow that the Vitest process can access. This issue is fixed in versions 4.1.12 and 5.0.3.","aliases":["GHSA-xp26-3454-mjgp"],"modified":"2026-10-21T02:55:52.513749848Z","published":"2026-10-20T15:21:32.396Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/112xxx/CVE-2026-112950.json","cna_assigner":"GitHub_M","cwe_ids":["CWE-22"]},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/112xxx/CVE-2026-112950.json"},{"type":"FIX","url":"https://github.com/vitest-dev/vitest/commit/15cc006aa9f8683dc5f7e895d011fa7dc751ce35"},{"type":"FIX","url":"https://github.com/vitest-dev/vitest/commit/b825313243dc55757e8d7c0f9e7a792135e13473"},{"type":"WEB","url":"https://github.com/vitest-dev/vitest/releases/tag/v4.1.12"},{"type":"WEB","url":"https://github.com/vitest-dev/vitest/releases/tag/v5.0.3"},{"type":"ADVISORY","url":"https://github.com/vitest-dev/vitest/security/advisories/GHSA-xp26-3454-mjgp"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-112950"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/vitest-dev/vitest","events":[{"introduced":"9bd8d464e6328c567c2dbcd8fdd977d57a9425c2"},{"fixed":"4766ce1e72ded629d3a37637f57eeae643789a8c"},{"introduced":"af83d1b1933b5d74c421d30849717369b828de0b"},{"fixed":"33cadea62e8763c455c7fca38d9ab1dda87c5f75"},{"fixed":"15cc006aa9f8683dc5f7e895d011fa7dc751ce35"},{"fixed":"b825313243dc55757e8d7c0f9e7a792135e13473"}],"database_specific":{"extracted_events":[{"range":[{"introduced":"4.1.11"},{"fixed":"4.1.12"}],"source":"AFFECTED_FIELD","strategy":"StringRangeExpression"},{"range":[{"introduced":"5.0.0-rc.2"},{"fixed":"5.0.3"}],"source":"AFFECTED_FIELD","strategy":"StringRangeExpression"},{"source":"REFERENCES_COMMIT","range":[{"fixed":"15cc006aa9f8683dc5f7e895d011fa7dc751ce35"}]},{"range":[{"fixed":"b825313243dc55757e8d7c0f9e7a792135e13473"}],"source":"REFERENCES_COMMIT"},{"source":"REFERENCES_TAG","original_tag":"v4.1.12","range":[{"fixed":"4766ce1e72ded629d3a37637f57eeae643789a8c"}]},{"source":"REFERENCES_TAG","original_tag":"v5.0.3","range":[{"fixed":"33cadea62e8763c455c7fca38d9ab1dda87c5f75"}]}]}}],"versions":["v5.0.2","v5.0.1","v5.0.0","v4.1.11","v5.0.0-rc.4","v5.0.0-rc.3","v5.0.0-rc.2"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-112950.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N"}]}