High severity · published Oct 20, 2026
CVE-2026-113722
virtualenv: Generated POSIX console launchers interpret destination paths as shell syntax
7.8
CVSS
0.3%
EPSS
No
On KEV
Description
virtualenv is a tool for creating isolated virtual python environments. Prior to 21.14.9, virtualenv's ScriptMakerCustom and pip pass an incompletely quoted interpreter path to distlib ScriptMaker when generating POSIX console scripts. When the path contains a space or produces a shebang longer than 127 bytes, distlib emits a /bin/sh wrapper whose double-quoted interpreter path still expands command substitutions and backticks. An attacker who influences the environment destination can therefore execute commands with the user's privileges when the user later runs a generated launcher; environment creation and activation do not trigger the command. Existing launchers are not repaired by upgrading virtualenv alone and must be regenerated, while a later independent pip installation or upgrade can reintroduce an affected launcher because pip's vendored distlib is unchanged. The virtualenv fix is released in version 21.14.9.
CVSS vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Attack vector
Local
Complexity
Low
Privileges
None
User interaction
Required
Confidentiality
High
Integrity
High
Availability
High
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.3% · higher than 21% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
VI
virtualenv · pypa
< 21.14.9 · source: vendor
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-113722
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-113722
github.com
https://github.com/pypa/virtualenv/commit/2519941bed33ee0d3ac99277f67913e439e476a9
github.com
https://github.com/pypa/virtualenv/pull/3417
github.com
https://github.com/pypa/virtualenv/releases/tag/21.14.9
github.com
https://github.com/pypa/virtualenv/security/advisories/GHSA-c978-59m8-c77v
More from virtualenv
7.8
CVE-2026-113726
virtualenv activate runs commands from the environment name in zsh with PROMPT_SUBST
7.8
CVE-2026-113776
virtualenv activation scripts run code from a path that contains a placeholder name
7.8
CVE-2026-113732
virtualenv activate.fish runs commands from a path or prompt with a backslash before a quote
7.8
CVE-2026-113725
virtualenv bash activate runs commands from an environment name with a backslash before $
7.8
CVE-2026-102925
virtualenv bash and fish activation scripts execute commands embedded in paths
