p PatchFirst

CVE-2026-113776

CVE-2026-113776 · virtualenv activation scripts run code from a path that contains a placeholder name

This page contains facts from public vulnerability sources. Check the original advisory before updating.

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.

CVSS 7.8 · High · EPSS 0.2% · Fix available

Published
Updated

Stack: system · python

Affected products and versions

  • virtualenv

    Versions
    • >= 20.26.6, < 21.14.2: Affected

    No fix published

  • python-virtualenv Debian:12

    Versions
    • 20.17.1+ds-1
    • 20.19.0+ds-1
    • 20.21.0+ds-1
    • 20.23.0+ds-1
    • 20.23.0+ds-2
    • 20.24.1+ds-1
    • 20.24.6+ds-1
    • 20.24.6+ds-2
    • 20.25.0+ds-1
    • 20.25.0+ds-2
    • 20.25.1+ds-1
    • 20.26.1+ds-1
    • 20.26.2+ds-1
    • 20.26.6+ds-1
    • 20.27.0+ds-1
    • 20.28.0+ds-1
    • 20.29.1+ds-1
    • 20.29.3+ds-1
    • 20.30.0+ds-1
    • 20.30.0+ds-2
    • 20.30.0+ds-3
    • 20.31.2+ds-1
    • 20.33.1+ds-1
    • 20.34.0+ds-1
    • 20.35.3+ds-1
    • 20.35.4+ds-1
    • 20.36.1+ds-1
    • 20.38.0+ds-1
    • 21.2.0+ds-1
    • 21.2.4+ds-1
    • 21.3.1+ds-1
    • 21.4.1+ds-1
    • 21.5.1+ds-1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • python-virtualenv Debian:13

    Versions
    • 20.31.2+ds-1
    • 20.31.2+ds-1+deb13u1
    • 20.33.1+ds-1
    • 20.34.0+ds-1
    • 20.35.3+ds-1
    • 20.35.4+ds-1
    • 20.36.1+ds-1
    • 20.38.0+ds-1
    • 21.2.0+ds-1
    • 21.2.4+ds-1
    • 21.3.1+ds-1
    • 21.4.1+ds-1
    • 21.5.1+ds-1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • python-virtualenv Debian:14

    Versions
    • 20.31.2+ds-1
    • 20.33.1+ds-1
    • 20.34.0+ds-1
    • 20.35.3+ds-1
    • 20.35.4+ds-1
    • 20.36.1+ds-1
    • 20.38.0+ds-1
    • 21.2.0+ds-1
    • 21.2.4+ds-1
    • 21.3.1+ds-1
    • 21.4.1+ds-1
    • 21.5.1+ds-1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • virtualenv PyPI

    Versions
    • 20.26.6
    • 20.27.0
    • 20.27.1
    • 20.28.0
    • 20.28.1
    • 20.29.0
    • 20.29.1
    • 20.29.2
    • 20.29.3
    • 20.30.0
    • 20.31.0
    • 20.31.1
    • 20.31.2
    • 20.32.0
    • 20.33.0
    • 20.33.1
    • 20.34.0
    • 20.35.0
    • 20.35.1
    • 20.35.2
    • 20.35.3
    • 20.35.4
    • 20.36.0
    • 20.36.1
    • 20.38.0
    • 20.39.0
    • 20.39.1
    • 21.0.0
    • 21.1.0
    • 21.10.0
    • 21.11.0
    • 21.11.1
    • 21.12.0
    • 21.12.1
    • 21.13.0
    • 21.14.0
    • 21.14.1
    • 21.2.0
    • 21.2.1
    • 21.2.2
    • 21.2.3
    • 21.2.4
    • 21.3.0
    • 21.3.1
    • 21.3.2
    • 21.3.3
    • 21.4.0
    • 21.4.1
    • 21.4.2
    • 21.4.3
    • 21.5.0
    • 21.5.1
    • 21.5.2
    • 21.6.0
    • 21.6.1
    • 21.7.0
    • 21.7.1
    • 21.7.10
    • 21.7.11
    • 21.7.12
    • 21.7.13
    • 21.7.14
    • 21.7.15
    • 21.7.16
    • 21.7.2
    • 21.7.3
    • 21.7.4
    • 21.7.5
    • 21.7.6
    • 21.7.7
    • 21.7.8
    • 21.7.9
    • 21.8.1
    • 21.9.0
    • 21.9.1
    Affected ranges
    • ECOSYSTEM: ≥ 20.26.6, < 21.14.2

    Update to 21.14.2

  • python-virtualenv Ubuntu:14.04:LTS

    Versions
    • 1.10.1-1
    • 1.11-1
    • 1.11-2
    • 1.11.4-1
    • 1.11.4-1ubuntu1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • python-virtualenv Ubuntu:16.04:LTS

    Versions
    • 1.11.6+ds-1
    • 14.0.5+ds-1
    • 14.0.5+ds-2
    • 14.0.5+ds-4
    • 15.0.0+ds-1
    • 15.0.0+ds-2
    • 15.0.1+ds-1
    • 15.0.1+ds-2
    • 15.0.1+ds-3
    • 15.0.1+ds-3ubuntu1
    • 15.0.1+ds-3ubuntu1.1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • python-virtualenv Ubuntu:18.04:LTS

    Versions
    • 15.1.0+ds-1
    • 15.1.0+ds-1.1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • python-virtualenv Ubuntu:Pro:20.04:LTS

    Versions
    • 15.1.0+ds-2
    • 15.1.0+ds-2build1
    • 15.1.0+ds-2ubuntu1
    • 20.0.13-1
    • 20.0.17-1
    • 20.0.17-1ubuntu0.3
    • 20.0.17-1ubuntu0.4
    • 20.0.17-1ubuntu0.4+esm1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • python-virtualenv Ubuntu:Pro:22.04:LTS

    Versions
    • 20.4.6+ds-2
    • 20.10.0+ds-1
    • 20.12.1+ds-1
    • 20.13.0+ds-1
    • 20.13.0+ds-2
    • 20.13.0+ds-2ubuntu0.1~esm1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • python-virtualenv Ubuntu:Pro:24.04:LTS

    Versions
    • 20.24.1+ds-1
    • 20.24.6+ds-1
    • 20.24.6+ds-2
    • 20.25.0+ds-1
    • 20.25.0+ds-2
    • 20.25.0+ds-2ubuntu0.1~esm1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • python-virtualenv Ubuntu:26.10

    Versions
    • 20.36.1+ds-1
    • 21.4.1+ds-1
    • 21.5.1+ds-1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • python-virtualenv Ubuntu:26.04:LTS

    Versions
    • 20.31.2+ds-1
    • 20.35.3+ds-1
    • 20.35.4+ds-1
    • 20.36.1+ds-1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

Original sources

Check your server →