Medium severity · published Oct 20, 2026
CVE-2026-113724
virtualenv: Deletion recovery can change a symlink target's mode
4.5
CVSS
0.1%
EPSS
No
On KEV
Description
virtualenv is a tool for creating isolated virtual python environments. Prior to 21.14.9, the safe_delete() deletion error handler responds to a failed removal by reading mode bits with os.lstat(path) and applying owner-write permission with os.chmod(path, ...), which follows a symlink. A planted link inside a read-only directory can therefore cause a victim-owned target outside the destination that is initially not writable by the invoking user to become broadly writable before the retry fails, provided that user owns the target and can change its mode. Another account can use the widened mode only if it can traverse the target's parent directories; root does not reach the demonstrated failure path, and the operation does not itself read the target. This issue is fixed in version 21.14.9.
CVSS vector
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:L
Attack vector
Local
Complexity
High
Privileges
Low
User interaction
None
Confidentiality
Low
Integrity
Low
Availability
Low
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.1% · higher than 4% 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-113724
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-113724
github.com
https://github.com/pypa/virtualenv/commit/2bfdc0230d1b2685fedfcfe66c835b9a2ec7c440
github.com
https://github.com/pypa/virtualenv/pull/3427
github.com
https://github.com/pypa/virtualenv/releases/tag/21.14.9
github.com
https://github.com/pypa/virtualenv/security/advisories/GHSA-43mp-35q3-x3fq
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-113722
virtualenv: Generated POSIX console launchers interpret destination paths as shell syntax
