Skip to main content
← All vulnerabilities
CVE-2026-113776GHSA-8RJX-V5WW-45PP

virtualenv activation scripts run code from a path that contains a placeholder name

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 21.14.2
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: total

Summary

virtualenv is a tool for creating isolated virtual python environments. From 20.26.6 until 21.14.2, ViaTemplateActivator.instantiate_template() replaces placeholders one key at a time across the complete activation template, so trigger names such as __VIRTUAL_NAME, VIRTUAL_ENV, or VIRTUAL_PROMPT__ inside an already substituted and quoted environment path or prompt can be replaced during a later pass. The later value's quoting can close the earlier literal and execute the remaining path when a user activates the environment through bash, fish, xonsh, or activate_this.py. The distinct csh prompt-display token __VIRTUAL_PROMPT_DISPLAY_TCSH__ can instead break the generated script without establishing command execution. The attacker must influence the destination path or --prompt, and a value without a relevant placeholder name does not trigger this mechanism. This issue is fixed in version 21.14.2.

Timeline

  1. CVE published
  2. First seen by cve.now
  3. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: total

  4. Record last updated

Affected versions

  • pypa virtualenv

    From 20.26.6 · fixed in 21.14.2

  • virtualenvPyPI

    From 20.26.6 · fixed in 21.14.2

References 3

GitHub · pypa/virtualenv