CVE-2026-113722: pypa virtualenv · OS Command Injection
Affects pypa virtualenvSource CVE Database V5
Not known to be exploited · CVSS 7.8 High : upgrade to 21.14.9 soon.
Data as of 26 Oct 2026, 14:18 UTC
- EPSS
- 0.2% chance of exploitation in 30 days – higher than 20% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 21.14.9
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:HExploitation evidence
Disclosed: evidence found.
CVE published 20 Oct 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponised: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.
What to do
Upgrade pypa virtualenv to 21.14.9.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| pypavirtualenv | Affected
| Fixed in
|
PyPIvirtualenvpkg:pypi/virtualenvOther threats | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
A fix for this vulnerability is available in virtualenv version 21.14.9. Users should upgrade to this version or later. However, simply upgrading virtualenv does not repair existing launchers; these must be regenerated to remove the vulnerability. Users should also be aware that pip's vendored distlib remains vulnerable, so pip upgrades or installations can reintroduce affected launchers. Therefore, after upgrading virtualenv, users should regenerate all launchers and monitor pip-related activities to avoid reintroducing the issue.
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.
References
- github.com/pypa/virtualenv/security/advisories/GHSA-c978-59m8-c77v (opens in a new tab)
- github.com/pypa/virtualenv/pull/3417 (opens in a new tab)
- github.com/pypa/virtualenv/commit/2519941bed33ee0d3ac99277f67913e439e476a9 (opens in a new tab)
- github.com/pypa/virtualenv/releases/tag/21.14.9 (opens in a new tab)