Alta

virtualenv activate.fish ejecuta comandos a partir de una ruta o prompt con una barra invertida antes de una comilla

  • Publicada: 21.10.2026
  • Actualizado: 21.10.2026 19:24

Impacto

FishActivator no define quote(), por lo que hereda ViaTemplateActivator.quote, que devuelve shlex.quote(string). Dicha función sigue las reglas de POSIX sh, donde una barra invertida dentro de comillas simples permanece como un carácter literal. Sin embargo, fish interpreta \' dentro de comillas simples como una comilla escapada y \\ como una barra invertida escapada. Por lo tanto, un valor con una barra invertida antes de una comilla finaliza el literal en un punto distinto al que shlex.quote definió, y fish expande la sustitución de comandos subsiguiente.

La ruta del entorno llega a set -gx VIRTUAL_ENV, y --prompt o VIRTUALENV_PROMPT llega a set -gx VIRTUAL_ENV_PROMPT. Para --prompt "x\'\$(touch PWNED)'\'", el archivo activate.fish generado contiene:

fish
set -gx VIRTUAL_ENV_PROMPT 'x\'"'"'$(touch PWNED)'"'"'\'"'"''

source bin/activate.fish ejecuta touch PWNED, y fish no muestra ningún error. La misma carga útil como nombre de directorio se ejecuta a través de VIRTUAL_ENV. --prompt . toma el nombre del directorio actual, por lo que basta con ejecutar virtualenv dentro de un directorio nombrado por otra persona. Sin la barra invertida, la carga útil no ejecuta nada, y bajo bash tampoco ejecuta nada.

virtualenv genera activate.fish de forma predeterminada. Un atacante necesita influir en la ruta del entorno o en el prompt: mediante una tarea de CI o una herramienta envoltorio (wrapper) que transmita el nombre de una rama, proyecto o trabajo, o a través de un directorio en un repositorio clonado o archivo desempaquetado.

Este fallo afecta a todas las versiones hasta 21.14.1 que incluyan activate.fish. La corrección de GHSA-p58f-9548-mpm2 en 21.7.13 movió los marcadores de posición fuera de sus comillas, pero conservó shlex.quote.

Parches

Corregido en 21.14.2. activate.fish ahora escapa las barras invertidas y las comillas simples de la manera en que fish las interpreta, por lo que el ejemplo anterior no ejecuta nada y muestra el prompt tal cual se proporcionó. Corrección: https://github.com/pypa/virtualenv/commit/3bddeaf8d02c3ee7f576503efb082f8f494cfcab

Soluciones alternativas

No cree un entorno cuya ruta o prompt contenga una barra invertida, e inspeccione activate.fish antes de cargarlo (source) si no lo creó usted mismo.

Créditos

Kevin Stubbings (@Kwstubbs) de GitHub Security Lab reportó este problema.

Qué hacer

Actualice a la versión 21.14.2 o posterior. Consulte la corrección: https://github.com/pypa/virtualenv/commit/3bddeaf8d02c3ee7f576503efb082f8f494cfcab.

Como solución alternativa, evite crear entornos cuya ruta o prompt contenga una barra invertida y examine activate.fish antes de cargarlo (source) si no fue creado por usted.

Software afectado

Haz clic en una tecnología para ver todas sus vulnerabilidades.

PlataformaPaqueteVersiones vulnerablesCorregida en
Python (PyPI) virtualenv < 21.14.2 21.14.2

Referencias

Puntuación CVSS 7.8/10
Vector CVSS
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Debilidad (CWE)
CWE-116, CWE-78
Plataforma
Python (PyPI)
Paquete
virtualenv
Publicada
21.10.2026
Actualizado
21.10.2026 19:24

Fuentes y licencias · Editado o traducido por DockRay; se mantienen los derechos y las licencias de las fuentes.

OSV / GitHub Advisory Database - GHSA-c947-3pg5-gm8q - 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.

Todas (9) en el archivo
Entradas en total
9
Primera → última
12.2011 10.2026
Sin corrección
0
Explotada en ataques
0

Distribución por gravedad

  • Alta 6
  • Media 3

Divulgaciones por año

  1. 2017: 0
  2. 2018: 0
  3. 2019: 0
  4. 2020: 0
  5. 2021: 0
  6. 2022: 0
  7. 2023: 0
  8. 2024: 1
  9. 2025: 0
  10. 2026: 7

antes: 1

Gravedad:
  1. virtualenv activate.fish ejecuta comandos a partir de una ruta o prompt con una barra invertida antes de una comilla esta entrada
    Alta · 7.8 CVE-2026-113732 < 21.14.2 21.14.2

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.

Conectar tu aplicación
Newsletter DockRay

La seguridad de tus aplicaciones en tu correo

Vulnerabilidades importantes, recomendaciones concretas y consejos prácticos para tus aplicaciones. Elige tus tecnologías y sigue lo que importa para tu proyecto.

  • Un resumen diario de nuevas vulnerabilidades, también las críticas.
  • Avisos sobre actualizaciones importantes.
  • Consejos prácticos sobre seguridad y monitorización de aplicaciones.

Déjalo vacío para recibir avisos de todas las tecnologías.

Suscripción gratuita. Date de baja con un clic en cualquier correo.