CVE-2026-112950

Status: Awaiting AnalysisMedium (5.9)—
Severity5.9Medium · CVSS 3.1
Exploitation probability—next 30 days
Active exploitationNonot in the CISA catalog
Public exploitNot knownno public code found

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.

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

References

Show 5 references

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"
}