CVE-2026-112950
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.
CVSS
- Base score
- 5.9
- Version
- 3.1
- Vector
- CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
Exploitation probability (EPSS)
FIRST hasn't scored this CVE yet (usual for very recent or rejected CVEs).
EPSS (Exploit Prediction Scoring System, FIRST) estimates how likely a vulnerability is to be exploited in the wild within 30 days. It complements CVSS (impact) and CISA KEV (confirmed exploitation).
ATT&CK techniques
How this vulnerability is exploited and what the attacker gains, in MITRE ATT&CK terms.
- Exploitation
T1190Exploit Public-Facing Applicationinitial access92 % - Primary impact
T1005Data from Local Systemcollection85 %
El vector AV:N/PR:N/UI:N y la descripción indican que un cliente remoto sin privilegios alcanza el servidor Vite y lee archivos fuera de server.fs.allow (C:H), lo que encaja con T1005.
Inferred by our analysis agent from the official description, CVSS vector and CWE, and checked by a supervisor. May contain errors.
ATT&CK mitigations that cover these techniques
Affected technologies (1)
⚠ AI-inferred from the description — NVD hasn't analyzed this CVE yet, these aren't verified CPEs.
CWEs
- CWE-22
References
Show 5 references
- https://github.com/vitest-dev/vitest/commit/15cc006aa9f8683dc5f7e895d011fa7dc751ce35
- https://github.com/vitest-dev/vitest/commit/b825313243dc55757e8d7c0f9e7a792135e13473
- https://github.com/vitest-dev/vitest/releases/tag/v4.1.12
- https://github.com/vitest-dev/vitest/releases/tag/v5.0.3
- https://github.com/vitest-dev/vitest/security/advisories/GHSA-xp26-3454-mjgp
Raw JSON (NVD)
Show
{
"id": "CVE-2026-112950",
"cveTags": [],
"metrics": {
"cvssMetricV31": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.1",
"baseScore": 5.9,
"attackVector": "NETWORK",
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N",
"integrityImpact": "NONE",
"userInteraction": "NONE",
"attackComplexity": "HIGH",
"availabilityImpact": "NONE",
"privilegesRequired": "NONE",
"confidentialityImpact": "HIGH"
},
"impactScore": 3.6,
"exploitabilityScore": 2.2
}
]
},
"affected": [
{
"source": "security-advisories@github.com",
"affectedData": [
{
"vendor": "vitest-dev",
"product": "vitest",
"versions": [
{
"status": "affected",
"version": ">= 4.1.11, < 4.1.12"
},
{
"status": "affected",
"version": ">= 5.0.0-rc.2, < 5.0.3"
}
]
},
{
"vendor": "@vitest",
"product": "mocker",
"versions": [
{
"status": "affected",
"version": ">= 4.1.11, < 4.1.12"
},
{
"status": "affected",
"version": ">= 5.0.0-rc.2, < 5.0.3"
}
]
}
]
}
],
"published": "2026-10-20T16:17:05.807",
"references": [
{
"url": "https://github.com/vitest-dev/vitest/commit/15cc006aa9f8683dc5f7e895d011fa7dc751ce35",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/vitest-dev/vitest/commit/b825313243dc55757e8d7c0f9e7a792135e13473",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/vitest-dev/vitest/releases/tag/v4.1.12",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/vitest-dev/vitest/releases/tag/v5.0.3",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/vitest-dev/vitest/security/advisories/GHSA-xp26-3454-mjgp",
"source": "security-advisories@github.com"
}
],
"vulnStatus": "Awaiting Analysis",
"weaknesses": [
{
"type": "Primary",
"source": "security-advisories@github.com",
"description": [
{
"lang": "en",
"value": "CWE-22"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "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."
}
],
"lastModified": "2026-10-20T19:56:45.543",
"sourceIdentifier": "security-advisories@github.com"
}