{"id":"CVE-2026-112950","title":"Vitest: Windows backslash traversal bypasses the @vitest/mocker redirect allowlist fix","summary":"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/i…","severity":"medium","cvss":5.9,"cvssVector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N","cvssSource":"cna","cwe":["CWE-22"],"vendor":"vitest-dev","product":"vitest","affected":["vitest >= 4.1.11, < 4.1.12","vitest >= 5.0.0-rc.2, < 5.0.3","mocker >= 4.1.11, < 4.1.12","mocker >= 5.0.0-rc.2, < 5.0.3"],"published":"2026-10-20","updated":"2026-10-20","sourceUpdated":"2026-10-20T15:21:32.396Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-112950","references":[{"url":"https://github.com/vitest-dev/vitest/security/advisories/GHSA-xp26-3454-mjgp","label":"https://github.com/vitest-dev/vitest/security/advisories/GHSA-xp26-3454-mjgp"},{"url":"https://github.com/vitest-dev/vitest/commit/15cc006aa9f8683dc5f7e895d011fa7dc751ce35","label":"https://github.com/vitest-dev/vitest/commit/15cc006aa9f8683dc5f7e895d011fa7dc751ce35"},{"url":"https://github.com/vitest-dev/vitest/commit/b825313243dc55757e8d7c0f9e7a792135e13473","label":"https://github.com/vitest-dev/vitest/commit/b825313243dc55757e8d7c0f9e7a792135e13473"},{"url":"https://github.com/vitest-dev/vitest/releases/tag/v4.1.12","label":"https://github.com/vitest-dev/vitest/releases/tag/v4.1.12"},{"url":"https://github.com/vitest-dev/vitest/releases/tag/v5.0.3","label":"https://github.com/vitest-dev/vitest/releases/tag/v5.0.3"}],"tags":["cve.org"],"ingestedAt":"2026-10-20T16:10:53.314Z","slug":"CVE-2026-112950","body":"## Overview\n\nVitest 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.\n\n## Affected\n\n- `vitest >= 4.1.11, < 4.1.12`\n- `vitest >= 5.0.0-rc.2, < 5.0.3`\n- `mocker >= 4.1.11, < 4.1.12`\n- `mocker >= 5.0.0-rc.2, < 5.0.3`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":32,"depthScoreParts":{"impact":32.5,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}