CVE-2026-112948

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

Vitest is a testing framework powered by Vite. From 5.0.0-beta.6 until 5.0.5, Vitest dev servers can misapply server.fs.deny because project servers replace Vite's defaults and the root server adds .vitest-secret-token after Vite compiles its matcher. An attacker who can reach an affected UI, Browser Mode, or API server can read denied project files or the fallback API token at node_modules/.vitest/.vitest-secret-token, and Browser Mode with test.projects can expose JavaScript-compatible .env values through a malicious website. This issue is fixed in version 5.0.5.

CVSS

Base score
6.5
Version
3.1
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/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 CVSS indica UI:R, así que la explotación es T1203; el texto cita lectura de archivos denegados y del token API en node_modules/.vitest/.vitest-secret-token (T1005, T1552.001).

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 4 references

Raw JSON (NVD)

Show
{
  "id": "CVE-2026-112948",
  "cveTags": [],
  "metrics": {
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "id": "CVE-2026-112948",
          "role": "CISA Coordinator",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "version": "2.0.3",
          "timestamp": "2026-10-20T16:16:51.150771Z"
        }
      }
    ],
    "cvssMetricV31": [
      {
        "type": "Secondary",
        "source": "security-advisories@github.com",
        "cvssData": {
          "scope": "UNCHANGED",
          "version": "3.1",
          "baseScore": 6.5,
          "attackVector": "NETWORK",
          "baseSeverity": "MEDIUM",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N",
          "integrityImpact": "NONE",
          "userInteraction": "REQUIRED",
          "attackComplexity": "LOW",
          "availabilityImpact": "NONE",
          "privilegesRequired": "NONE",
          "confidentialityImpact": "HIGH"
        },
        "impactScore": 3.6,
        "exploitabilityScore": 2.8
      }
    ]
  },
  "affected": [
    {
      "source": "security-advisories@github.com",
      "affectedData": [
        {
          "vendor": "vitest-dev",
          "product": "vitest",
          "versions": [
            {
              "status": "affected",
              "version": ">= 5.0.0-beta.6, < 5.0.5"
            }
          ]
        },
        {
          "vendor": "@vitest",
          "product": "browser",
          "versions": [
            {
              "status": "affected",
              "version": ">= 5.0.0-beta.6, < 5.0.5"
            }
          ]
        },
        {
          "vendor": "@vitest",
          "product": "ui",
          "versions": [
            {
              "status": "affected",
              "version": ">= 5.0.0-beta.6, < 5.0.5"
            }
          ]
        },
        {
          "vendor": "vitejs",
          "product": "vite-plus",
          "versions": [
            {
              "status": "affected",
              "version": ">= 1.0.0-rc.0, < 1.3.0"
            }
          ]
        }
      ]
    }
  ],
  "published": "2026-10-20T16:17:05.517",
  "references": [
    {
      "url": "https://github.com/vitest-dev/vitest/commit/28dc1edfb6ba5a181fe208576989063795aeadb3",
      "source": "security-advisories@github.com"
    },
    {
      "url": "https://github.com/vitest-dev/vitest/pull/11578",
      "source": "security-advisories@github.com"
    },
    {
      "url": "https://github.com/vitest-dev/vitest/releases/tag/v5.0.5",
      "source": "security-advisories@github.com"
    },
    {
      "url": "https://github.com/vitest-dev/vitest/security/advisories/GHSA-p458-7748-mcp3",
      "source": "security-advisories@github.com"
    }
  ],
  "vulnStatus": "Awaiting Analysis",
  "weaknesses": [
    {
      "type": "Secondary",
      "source": "security-advisories@github.com",
      "description": [
        {
          "lang": "en",
          "value": "CWE-200"
        },
        {
          "lang": "en",
          "value": "CWE-552"
        }
      ]
    }
  ],
  "descriptions": [
    {
      "lang": "en",
      "value": "Vitest is a testing framework powered by Vite. From 5.0.0-beta.6 until 5.0.5, Vitest dev servers can misapply server.fs.deny because project servers replace Vite's defaults and the root server adds .vitest-secret-token after Vite compiles its matcher. An attacker who can reach an affected UI, Browser Mode, or API server can read denied project files or the fallback API token at node_modules/.vitest/.vitest-secret-token, and Browser Mode with test.projects can expose JavaScript-compatible .env values through a malicious website. This issue is fixed in version 5.0.5."
    }
  ],
  "lastModified": "2026-10-20T19:56:45.543",
  "sourceIdentifier": "security-advisories@github.com"
}