CVE-2026-113714
virtualenv es una herramienta para crear entornos virtuales de Python aislados. Antes de la versión 21.14.9, download_wheel() escribe las descargas del índice de paquetes directamente en la caché reutilizable de wheel/house antes de seleccionar un objetivo de verificación a partir de la salida textual "Saved" de pip.
Leer descripción completaMostrar menos
Con la comparación de resúmenes del índice predeterminado habilitada, un índice de paquetes controlado por un atacante puede inyectar una línea "Saved" falsificada a través del atributo data-requires-python de un enlace descartado; esta variante de línea falsificada también requiere conocer una ruta absoluta al wheel auténtico incluido. La ruta incorrecta puede entonces ser sometida a hash, mientras que una discrepancia de resumen deja el archivo rechazado en la caché para su posterior selección sin verificación. Una variante independiente de archivo de caché rechazado requiere control sobre los datos descargados o la selección de archivos, pero no los requisitos previos de la línea falsificada. Las excepciones de índices personalizados explícitos quedan fuera de la comparación prometida con PyPI, y el fallo no permite por sí mismo eludir TLS ni establecer el control de PyPI predeterminado. Esta vulnerabilidad está corregida en la versión 21.14.9.
Traducción automática del texto original de NVD (en inglés).
CVSS
- Puntuación base
- 2.3
- Versión
- 4.0
- Vector
- CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:P/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días
- 0.21 %
- Percentil entre todas las CVEs puntuadas
- 11
- 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
T1203Exploitation for Client Executionexecution60 %
Inferido por reglas deterministas a partir del vector CVSS y la CWE. Solo orientativo.
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-354
Referencias
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-113714",
"cveTags": [],
"metrics": {
"cvssMetricV40": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"cvssData": {
"Safety": "NOT_DEFINED",
"version": "4.0",
"Recovery": "NOT_DEFINED",
"baseScore": 2.3,
"Automatable": "NOT_DEFINED",
"attackVector": "NETWORK",
"baseSeverity": "LOW",
"valueDensity": "NOT_DEFINED",
"vectorString": "CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:P/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
"exploitMaturity": "NOT_DEFINED",
"providerUrgency": "NOT_DEFINED",
"userInteraction": "PASSIVE",
"attackComplexity": "HIGH",
"attackRequirements": "PRESENT",
"privilegesRequired": "NONE",
"subIntegrityImpact": "NONE",
"vulnIntegrityImpact": "LOW",
"integrityRequirement": "NOT_DEFINED",
"modifiedAttackVector": "NOT_DEFINED",
"subAvailabilityImpact": "NONE",
"vulnAvailabilityImpact": "LOW",
"availabilityRequirement": "NOT_DEFINED",
"modifiedUserInteraction": "NOT_DEFINED",
"modifiedAttackComplexity": "NOT_DEFINED",
"subConfidentialityImpact": "NONE",
"vulnConfidentialityImpact": "LOW",
"confidentialityRequirement": "NOT_DEFINED",
"modifiedAttackRequirements": "NOT_DEFINED",
"modifiedPrivilegesRequired": "NOT_DEFINED",
"modifiedSubIntegrityImpact": "NOT_DEFINED",
"modifiedVulnIntegrityImpact": "NOT_DEFINED",
"vulnerabilityResponseEffort": "NOT_DEFINED",
"modifiedSubAvailabilityImpact": "NOT_DEFINED",
"modifiedVulnAvailabilityImpact": "NOT_DEFINED",
"modifiedSubConfidentialityImpact": "NOT_DEFINED",
"modifiedVulnConfidentialityImpact": "NOT_DEFINED"
}
}
]
},
"affected": [
{
"source": "security-advisories@github.com",
"affectedData": [
{
"vendor": "pypa",
"product": "virtualenv",
"versions": [
{
"status": "affected",
"version": "< 21.14.9"
}
]
}
]
}
],
"published": "2026-10-20T19:17:34.050",
"references": [
{
"url": "https://github.com/pypa/virtualenv/commit/7babec66e043e1cc8bc66869a063653898719d96",
"source": "security-advisories@github.com"
},
{
"url": "https://github.com/pypa/virtualenv/pull/3430",
"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-494p-63j8-28p3",
"source": "security-advisories@github.com"
}
],
"vulnStatus": "Awaiting Analysis",
"weaknesses": [
{
"type": "Secondary",
"source": "security-advisories@github.com",
"description": [
{
"lang": "en",
"value": "CWE-354"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "virtualenv is a tool for creating isolated virtual python environments. Prior to 21.14.9, download_wheel() writes package-index downloads directly into the reusable wheel/house cache before selecting a verification target from pip's textual Saved output. With default-index digest comparison enabled, a controlled package index can inject a misleading Saved line through a discarded link's data-requires-python attribute; this forged-line variant also requires knowledge of an absolute path to the genuine bundled wheel. The wrong path can then be hashed, while a digest mismatch leaves the rejected archive in the cache for later selection without verification. A separate rejected-cache-file variant requires control over downloaded data or archive selection but not the forged-line prerequisites. Explicit custom-index exceptions are outside the promised PyPI comparison, and the issue does not independently bypass TLS or establish control of default PyPI. This issue is fixed in version 21.14.9."
}
],
"lastModified": "2026-10-20T20:17:17.563",
"sourceIdentifier": "security-advisories@github.com"
}