CVE-2026-25931
vscode-spell-checker is a basic spell checker that works well with code and documents. Prior to v4.5.4, DocumentSettings._determineIsTrusted treats the configuration value cSpell.trustedWorkspace as the authoritative trust flag. The value defaults to true (package.json) and is read from workspace configuration each time settings are fetched. The code coerces any truthy value to true and forwards it to ConfigLoader.setIsTrusted , which in turn allows JavaScript/TypeScript configuration files ( .cspell.config.js/.mjs/.ts , etc.) to be located and executed.
Leer descripción completaMostrar menos
Because no VS Code workspace-trust state is consulted, an untrusted workspace can keep the flag true and place a malicious .cspell.config.js ; opening the workspace causes the extension host to execute attacker-controlled Node.js code with the user’s privileges. This vulnerability is fixed in v4.5.4.
CVSS
- Versión: 3.1
- Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
- Puntuación base: 7.8
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días: 0.19%
- Percentil entre todas las CVEs puntuadas: 8
- Fecha de la puntuación: 6/10/2026
EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).
🎯 Técnicas ATT&CK
Cómo se explota esta vulnerabilidad y qué consigue el atacante, en el lenguaje de MITRE ATT&CK.
- Explotación
T1203Exploitation for Client Executionexecution95 % - Impacto principal
T1059Command and Scripting Interpreterexecution90 % - Impacto secundario
T1222File and Directory Permissions Modificationdefense impairment75 %
Requiere interacción del usuario (UI:R) para abrir workspace; ejecuta código Node.js en .cspell.config.js sin validar trust state de VS Code, permitiendo ejecución de comandos con privilegios del usuario.
Inferido por nuestro agente de análisis a partir de la descripción oficial, el vector CVSS y la CWE, y comprobado por un supervisor. Puede contener errores.
🛡️ Mitigaciones ATT&CK que cubren estas técnicas
Tecnologías afectadas (1)
⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.
CWE
- CWE-276, CWE-807, CWE-829
Referencias
- https://drive.google.com/file/d/1mT4SOkkHSHU6NFfKwekysydAd3FUAC6K/view?usp=sharing
- https://github.com/streetsidesoftware/vscode-spell-checker/commit/f39af9a3a6f2a939a57171a24161ed735d41c575
- https://github.com/streetsidesoftware/vscode-spell-checker/releases/tag/code-spell-checker-v4.5.4
- https://github.com/streetsidesoftware/vscode-spell-checker/security/advisories/GHSA-mggq-68mr-58vj
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-25931",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-25931",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "total"
}
],
"version": "2.0.3",
"timestamp": "2026-02-10T16:54:12.365128Z"
}
}
],
"cvssMetricV31": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.1",
"baseScore": 7.8,
"attackVector": "LOCAL",
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
"integrityImpact": "HIGH",
"userInteraction": "REQUIRED",
"attackComplexity": "LOW",
"availabilityImpact": "HIGH",
"privilegesRequired": "NONE",
"confidentialityImpact": "HIGH"
},
"impactScore": 5.9,
"exploitabilityScore": 1.8
}
]
},
"affected": [
{
"source": "security-advisories@github.com",
"affectedData": [
{
"vendor": "streetsidesoftware",
"product": "vscode-spell-checker",
"versions": [
{
"status": "affected",
"version": "< 4.5.4"
}
]
}
]
}
],
"published": "2026-02-09T23:16:05.753",
"references": [
{
"url": "https://drive.google.com/file/d/1mT4SOkkHSHU6NFfKwekysydAd3FUAC6K/view?usp=sharing",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/streetsidesoftware/vscode-spell-checker/commit/f39af9a3a6f2a939a57171a24161ed735d41c575",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/streetsidesoftware/vscode-spell-checker/releases/tag/code-spell-checker-v4.5.4",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/streetsidesoftware/vscode-spell-checker/security/advisories/GHSA-mggq-68mr-58vj",
"source": "security-advisories@github.com"
}
],
"vulnStatus": "Deferred",
"weaknesses": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"description": [
{
"lang": "en",
"value": "CWE-276"
},
{
"lang": "en",
"value": "CWE-807"
},
{
"lang": "en",
"value": "CWE-829"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "vscode-spell-checker is a basic spell checker that works well with code and documents. Prior to v4.5.4, DocumentSettings._determineIsTrusted treats the configuration value cSpell.trustedWorkspace as the authoritative trust flag. The value defaults to true (package.json) and is read from workspace configuration each time settings are fetched. The code coerces any truthy value to true and forwards it to ConfigLoader.setIsTrusted , which in turn allows JavaScript/TypeScript configuration files ( .cspell.config.js/.mjs/.ts , etc.) to be located and executed. Because no VS Code workspace-trust state is consulted, an untrusted workspace can keep the flag true and place a malicious .cspell.config.js ; opening the workspace causes the extension host to execute attacker-controlled Node.js code with the user’s privileges. This vulnerability is fixed in v4.5.4."
},
{
"lang": "es",
"value": "vscode-spell-checker es un corrector ortográfico básico que funciona bien con código y documentos. Antes de la v4.5.4, DocumentSettings._determineIsTrusted trata el valor de configuración cSpell.trustedWorkspace como el indicador de confianza autoritativo. El valor predeterminado es true (package.json) y se lee de la configuración del espacio de trabajo cada vez que se obtienen los ajustes. El código fuerza cualquier valor truthy a true y lo reenvía a ConfigLoader.setIsTrusted, lo que a su vez permite que los archivos de configuración de JavaScript/TypeScript ( .cspell.config.js/.mjs/.ts , etc.) sean localizados y ejecutados. Debido a que no se consulta ningún estado de confianza del espacio de trabajo de VS Code, un espacio de trabajo no confiable puede mantener el indicador en true y colocar un .cspell.config.js malicioso; abrir el espacio de trabajo hace que el host de la extensión ejecute código Node.js controlado por el atacante con los privilegios del usuario. Esta vulnerabilidad se corrige en la v4.5.4."
}
],
"lastModified": "2026-06-17T10:25:26.907",
"sourceIdentifier": "security-advisories@github.com"
}