CVE-2026-113721
virtualenv es una herramienta para crear entornos virtuales de Python aislados. Antes de la versión 21.14.9, ViaTemplateActivator._generate() elimina una salida existente solo cuando Path.exists() es verdadero, lo que permite que un enlace simbólico colgante sobreviva y redirija el contenido de activación generado, mientras que PyEnvCfg.write() abre pyvenv.cfg sin sustituir primero un enlace simbólico o duro existente.
Leer descripción completaMostrar menos
Por tanto, otra cuenta local que prepare entradas finales dentro del directorio de destino puede hacer que la creación del entorno cree o sobrescriba archivos fuera del árbol solicitado, con contenido generado por virtualenv y restringido, y con los permisos del usuario que invoca el proceso. El directorio padre del destino debe seguir bajo el control del propietario del entorno durante la creación; la sustitución concurrente del directorio padre es un problema aparte. Este fallo está corregido en la versión 21.14.9.
Traducción automática del texto original de NVD (en inglés).
CVSS
- Puntuación base
- 4.5
- Versión
- 3.1
- Vector
- CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:L
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días
- 0.12 %
- Percentil entre todas las CVEs puntuadas
- 2
- Fecha de la puntuación
- 22/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
T1068Exploitation for Privilege Escalationprivilege escalation85 % - Impacto principal
T1565.001Stored Data Manipulationimpact60 %
El vector AV:L/UI:N/PR:L indica explotación local sin interacción; el texto describe enlaces simbólicos que permiten crear o sobrescribir archivos fuera del árbol destino.
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-59
Referencias
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-113721",
"cveTags": [],
"metrics": {
"cvssMetricV31": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.1",
"baseScore": 4.5,
"attackVector": "LOCAL",
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:L",
"integrityImpact": "LOW",
"userInteraction": "NONE",
"attackComplexity": "HIGH",
"availabilityImpact": "LOW",
"privilegesRequired": "LOW",
"confidentialityImpact": "LOW"
},
"impactScore": 3.4,
"exploitabilityScore": 1
}
]
},
"affected": [
{
"source": "security-advisories@github.com",
"affectedData": [
{
"vendor": "pypa",
"product": "virtualenv",
"versions": [
{
"status": "affected",
"version": "< 21.14.9"
}
]
}
]
}
],
"published": "2026-10-20T20:17:18.653",
"references": [
{
"url": "https://github.com/pypa/virtualenv/commit/d25f28699eefb1fc34a251e5adf2b5de844c36cd",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/pypa/virtualenv/pull/3431",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/pypa/virtualenv/releases/tag/21.14.9",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/pypa/virtualenv/security/advisories/GHSA-558c-9hv2-4prj",
"source": "security-advisories@github.com"
}
],
"vulnStatus": "Awaiting Analysis",
"weaknesses": [
{
"type": "Primary",
"source": "security-advisories@github.com",
"description": [
{
"lang": "en",
"value": "CWE-59"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "virtualenv is a tool for creating isolated virtual python environments. Prior to 21.14.9, ViaTemplateActivator._generate() removes an existing output only when Path.exists() is true, allowing a dangling symlink to survive and redirect generated activation content, while PyEnvCfg.write() opens pyvenv.cfg without first replacing an existing symbolic or hard link. Another local account that prepares final entries inside the destination can therefore cause environment creation to create or overwrite files outside the requested tree with constrained virtualenv-generated content and the invoking user's permissions. The destination parent must remain controlled by the environment owner during creation; concurrent parent-directory replacement is a separate concern. This issue is fixed in version 21.14.9."
}
],
"lastModified": "2026-10-22T16:47:38.403",
"sourceIdentifier": "security-advisories@github.com"
}