Security fix · CVE-2026-113725
virtualenv is a tool for creating isolated virtual python environments.
Published Oct 20, 2026 · catalog updated Oct 22, 2026 · virtualenv is a tool
Last checked Nov 5, 2026. A connected source was read within the last 7 days.
Check if you run it
No confirmed exploitation is on record for CVE-2026-113725. EPSS is 0.26%. Act only if a listed version of virtualenv is a tool is installed.
Gaps on this record
- The stored product name is a package slug. The name on this page is taken from the title (virtualenv is a tool).
- No vendor fix or required action is stored. Compare the linked advisory before you change production.
- Severity
- High7.8
- Known exploitation
- Not in CISA/VulnCheck KEV
- EPSS
- 0.26%
- Remediation
- Version ranges on file
- Affected products
- PyPI virtualenv · package pip · pip virtualenv
### Summary The bash script escapes the environment name for only one of the two passes bash makes over , so a backslash in the name undoes the escaping and a name containing runs as commands in the user's shell each time bash draws the prompt. ### Affected area , the block that prepends the environment name to . ### Attacker-controlled input The environment name: the environment directory's name, or the or value. An attacker needs to influence it, for example through a CI job or wrapper tool that passes a branch, project or job name through, or a directory in a cloned repository or unpacked archive. takes the current directory's name. ### Details bash handles in two passes each time it draws the prompt: it first decodes backslash prompt escapes, turning into and into (or for root), and then runs parameter expansion, command substitution and arithmetic expansion on the result. Since 21.13.0 the script escapes backslashes, dollar signs and backticks in the name, but only for the second pass, so the decode pass strips the escaping that a backslash in the name precedes. Releases before 21.13.0 do not escape the name at all. A bash running as root decodes to , so the payload shows the wrong text there but runs nothing. zsh does no decode pass and is not affected. ### Proof of concept ### Impact Arbitrary command execution in the shell of a user who sources the script of an environment whose name an attacker influenced, with that user's privileges, once per prompt draw. ### Versions tested 21.14.6 with bash 5.2.15 on Debian bookworm, as an unprivileged user and as root. ### Known mitigation Set before you source , which leaves alone, or run if your prompt does not need expansion. Check the name of an environment you did not create before you source its . ### Latest release - [x] The problem reproduces on the latest virtualenv release. 21.14.6 ### Patches Fixed in 21.14.7. Under bash, now escapes backslashes, dollar signs and backticks for both passes, so the example abov
Are you affected?
Enter the version you run. The result uses only the ranges stored on this record.
The check returns affected, not affected, or incomplete. It does not guess a version that is missing from the record.
- PyPI virtualenv0 → 21.14.7
- package pipversion unspecified
- pip virtualenv<= 21.14.6
How to fix CVE-2026-113725
Upgrade
CVE-2026-113725 lists a fix boundary at 21.14.7. Compare the installed build with that boundary before you change production.
Version check
Affected <= 21.14.6
Advisory
Open the cve_org record and follow its fix.
Official advisories
What to do
Three questions, each answered from this record only. Confirm the vendor advisory before you patch.
Should you patch?
No confirmed exploitation is on record for CVE-2026-113725. EPSS is 0.26%. Act only if a listed version of virtualenv is a tool is installed.
Which versions are affected?
Compare what you have installed with 0 → 21.14.7, <= 21.14.6. Compare the installed version with the linked vendor advisory before you change production.
What should an analyst verify?
CWE-116; CWE-78: OS Command Injection. EPSS 0.26%. There is no CISA KEV listing. No Exploit-DB or Metasploit reference is linked. Use the source links for the original advisory.
Code
The project this record applies to. Exploit listings stay in References.
Timeline
Detection, updates, and resolution for this record.
Oct 20, 2026 · NIST NVD
Detected
virtualenv is a tool for creating isolated virtual python environments. Prior to 21.14.7, the bash activate script escapes the environment name for only one of the two passes bash makes over PS1, so a backslash in the name undoes the escaping and a name containing \$(...) runs as commands in the user's shell each time bash draws the prompt. This issue is fixed in version 21.14.7.
Oct 21, 2026 · NIST NVD
Updated
virtualenv is a tool for creating isolated virtual python environments. Prior to 21.14.7, the bash activate script escapes the environment name for only one of the two passes bash makes over PS1, so a backslash in the name undoes the escaping and a name containing \$(...) runs as commands in the user's shell each time bash draws the prompt. This issue is fixed in version 21.14.7.
Oct 21, 2026 · GitHub Advisory Database
Fix available
virtualenv fixed in 21.14.7
Oct 21, 2026 · GitHub Advisory Database
Fix available
virtualenv fixed in 21.14.7
Oct 21, 2026 · GitHub Advisory Database
Updated
### Summary The bash script escapes the environment name for only one of the two passes bash makes over , so a backslash in the name undoes the escaping and a name containing runs as commands in the user's shell each time bash draws the prompt. ### Affected area , the block that prepends the environment name to . ### Attacker-controlled input The environment name: the environment directory's name,
Oct 22, 2026 · NIST NVD
Updated
virtualenv is a tool for creating isolated virtual python environments. Prior to 21.14.7, the bash activate script escapes the environment name for only one of the two passes bash makes over PS1, so a backslash in the name undoes the escaping and a name containing \$(...) runs as commands in the user's shell each time bash draws the prompt. This issue is fixed in version 21.14.7.
Sources
- CVE.orgVulnerability recordCVE-2026-113725
Official CVE identifier
cve.org - FIRST EPSSExploitation probabilityCVE-2026-113725
30-day exploitation probability 0.26%
first.org - GitHub Advisory DatabasePackage advisoryGHSA-vxj4-q4g9-crj7
virtualenv bash activate runs commands from an environment name with a backslash before $
github.com - NIST NVDVulnerability recordCVE-2026-113725
virtualenv is a tool for creating isolated virtual python environments. Prior to 21.14.7, the bash activate script escapes the environment name for only one of the two passes bash makes over PS1, so a backslash in the name undoes the escaping and a name containing \$(...) runs as
nvd.nist.gov - OpenSSF OSV / OSV ScannerPackage advisoryGHSA-vxj4-q4g9-crj7
virtualenv bash activate runs commands from an environment name with a backslash before $
osv.dev - PyPA Advisory DatabasePackage advisoryGHSA-vxj4-q4g9-crj7
virtualenv bash activate runs commands from an environment name with a backslash before $
osv.dev - Snyk Vulnerability DatabasePackage advisorySNYK-PYTHON-VIRTUALENV-21282509
Command Injection
security.snyk.io
References
Freshness
Last verified in this catalog Nov 5, 2026. Significant claims (KEV, EPSS, CVSS, affected ranges) come from the source rows above — open the original publisher for the authoritative advisory.
- FIRST EPSSNov 5, 2026
- Snyk Vulnerability DatabaseOct 23, 2026
- NIST NVDOct 22, 2026
- GitHub Advisory DatabaseOct 22, 2026
- CVE.orgOct 21, 2026
- PyPA Advisory DatabaseOct 21, 2026
- OpenSSF OSV / OSV ScannerOct 21, 2026