Command injection via --prompt in activate.bat (batch activator)
BatchActivator.quote() returned its input unchanged, the only activator with
no escaping at all. --prompt, the VIRTUALENV_PROMPT environment variable,
and the config file all set the prompt, and activate.bat writes it straight
into @set "VAR=value". A prompt containing a double quote closes that string
early, and whatever follows runs as live cmd.exe syntax. For example, a venv
created with --prompt 'x" & calc & "' runs calc the moment someone runs
activate.bat.
Anyone who templates a prompt from untrusted input (a CI job using a branch name, a wrapper script deriving an environment name from user input) hands an attacker code execution in the shell of anyone who activates the resulting venv on Windows.
Fixed in 21.7.12 by escaping the characters cmd.exe treats as live syntax inside this construct.
Software afectado
Haz clic en una tecnología para ver todas sus vulnerabilidades.
| Plataforma | Paquete | Versiones vulnerables | Corregida en |
|---|---|---|---|
| Python (PyPI) | virtualenv | < 21.7.12 | 21.7.12 |
Referencias
- https://github.com/pypa/virtualenv/security/advisories/GHSA-x78j-v8h9-3j2q
- https://nvd.nist.gov/vuln/detail/CVE-2026-102937
- https://github.com/pypa/virtualenv/pull/3250
- https://github.com/pypa/virtualenv/commit/d721ff140ce4afdc2a9b76751e4584e25d9fbea6
- https://github.com/pypa/advisory-database/tree/main/vulns/virtualenv/PYSEC-2026-4014.yaml
- https://github.com/pypa/virtualenv
- https://github.com/pypa/virtualenv/releases/tag/21.7.12
- https://pypi.org/project/virtualenv
- Vector CVSS
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N- Debilidad (CWE)
CWE-78- Plataforma
- Python (PyPI)
- Paquete
virtualenv- Publicada
- 18.09.2026
- Actualizado
- 11.10.2026 15:18
Fuentes y licencias
OSV / GitHub Advisory Database - GHSA-x78j-v8h9-3j2q - CC BY 4.0
OSV / GitHub Advisory Database - PYSEC-2026-4014 - PyPA Advisory Database; CC BY 4.0
Historial de vulnerabilidades: virtualenv
Todas las vulnerabilidades publicadas de este paquete (Python (PyPI)), de la más reciente a la más antigua. Muestra si es un fallo aislado o un paquete que hay que vigilar.
- Entradas en total
- 7
- Primera → última
- 12.2011 09.2026
- Sin corrección
- 0
- Explotada en ataques
- 0
Distribución por gravedad
- Alta 4
- Media 3
Divulgaciones por año
- 2017: 0
- 2018: 0
- 2019: 0
- 2020: 0
- 2021: 0
- 2022: 0
- 2023: 0
- 2024: 1
- 2025: 0
- 2026: 5
antes: 1
-
Command injection via --prompt in activate.bat (batch activator) esta entrada
Identifica las vulnerabilidades de tu aplicación
Con la integración de DockRay y el inventario de software activado, DockRay compara las versiones notificadas de los componentes con las vulnerabilidades conocidas y avisa de las coincidencias confirmadas. La cobertura depende de la tecnología compatible y de los avisos disponibles.