← Back to CVE Explorer

CVE-2026-112950

Full vulnerability record from the local CVENow database.

Description

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.

Severity
MEDIUM
CVSS score
5.9 (v3.1)
Vulnerability status
Awaiting Analysis
Source identifier
Published
2026-10-20 16:17:05.807000
Last modified
2026-10-28 14:16:56.487000
View original CVE JSON
{
  "id": "CVE-2026-112950",
  "sourceIdentifier": "[email protected]",
  "published": "2026-10-20T16:17:05.807",
  "lastModified": "2026-10-28T14:16:56.487",
  "vulnStatus": "Awaiting Analysis",
  "cveTags": [],
  "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."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "vitest-dev",
          "product": "vitest",
          "versions": [
            {
              "version": ">= 4.1.11, < 4.1.12",
              "status": "affected"
            },
            {
              "version": ">= 5.0.0-rc.2, < 5.0.3",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "@vitest",
          "product": "mocker",
          "versions": [
            {
              "version": ">= 4.1.11, < 4.1.12",
              "status": "affected"
            },
            {
              "version": ">= 5.0.0-rc.2, < 5.0.3",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N",
          "baseScore": 5.9,
          "baseSeverity": "MEDIUM",
          "attackVector": "NETWORK",
          "attackComplexity": "HIGH",
          "privilegesRequired": "NONE",
          "userInteraction": "NONE",
          "scope": "UNCHANGED",
          "confidentialityImpact": "HIGH",
          "integrityImpact": "NONE",
          "availabilityImpact": "NONE"
        },
        "exploitabilityScore": 2.2,
        "impactScore": 3.6
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-10-28T14:04:50.974371Z",
          "id": "CVE-2026-112950",
          "options": [
            {
              "exploitation": "poc"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-22"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/vitest-dev/vitest/commit/15cc006aa9f8683dc5f7e895d011fa7dc751ce35",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/vitest-dev/vitest/commit/b825313243dc55757e8d7c0f9e7a792135e13473",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/vitest-dev/vitest/releases/tag/v4.1.12",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/vitest-dev/vitest/releases/tag/v5.0.3",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/vitest-dev/vitest/security/advisories/GHSA-xp26-3454-mjgp",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/vitest-dev/vitest/security/advisories/GHSA-xp26-3454-mjgp",
      "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"
    }
  ]
}