Description
virtualenv is a tool for creating isolated virtual python environments. Prior to 21.14.9, PipInstall._uninstall_previous_version() accepts existing seed-package metadata and _uninstall_dist() joins entries from top_level.txt and RECORD to site-packages without checking containment. When a reused destination contains distribution metadata influenced by another account, relative traversal, absolute entries, or linked parents can cause app-data reseeding to delete files outside the environment or the environment root with the invoking user's permissions, provided that user has deletion rights over the named paths. The deletion occurs during environment creation before any later use of the environment. Fresh environments without existing package metadata and creation with --clear do not enter this cleanup path. This issue is fixed in version 21.14.9.
Published: 2026-10-20
Score: 4.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Unauthorized File Deletion
Action: Immediate Patch
AI Analysis

Impact

virtualenv, a tool for creating isolated Python environments, allows the seeding process to join entries from legacy metadata files without validating containment. When an attacker can influence the seed-package metadata or supply files with relative traversal, absolute paths, or symlinked parents, the seeding routine may delete files outside the virtual environment root or even the environment root itself. This deletion occurs during environment creation, before any use of the environment, and can result in loss of critical files or denial of functionality. The weakness is a path traversal issue identified as CWE‑22.

Affected Systems

The vulnerability exists in all versions of pypa:virtualenv released before 21.14.9. The issue is triggered when PipInstall._uninstall_previous_version() processes existing seed‑package metadata, so any prior release that does not include the patch is affected.

Risk and Exploitability

The CVSS score is 4.5, indicating a moderate severity. EPSS is not available, but the vulnerability is not listed in CISA KEV. The likely attack vector is a privileged or delegated user who can supply or manipulate seed‑package metadata. Because the deletion occurs during environment creation, exploitation only requires the user to have deletion rights over the target paths. Once enabled, the attacker can remove arbitrary files on the system, potentially compromising system integrity and availability.

Generated by OpenCVE AI on October 20, 2026 at 20:55 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to virtualenv 21.14.9 or newer.
  • Create the virtual environment with the --clear flag to skip the cleanup path that processes legacy metadata.
  • Ensure any seed-package metadata files do not contain relative traversal, absolute, or symlinked entries and that the user running virtualenv has limited deletion rights on critical system paths.

Generated by OpenCVE AI on October 20, 2026 at 20:55 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-hhxq-47xx-j5xx virtualenv: Seed replacement does not contain metadata deletion paths
History

Tue, 27 Oct 2026 11:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 21 Oct 2026 00:30:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

threat_severity

Moderate


Tue, 20 Oct 2026 21:00:00 +0000

Type Values Removed Values Added
First Time appeared Pypa
Pypa virtualenv
Vendors & Products Pypa
Pypa virtualenv

Tue, 20 Oct 2026 19:45:00 +0000

Type Values Removed Values Added
Description virtualenv is a tool for creating isolated virtual python environments. Prior to 21.14.9, PipInstall._uninstall_previous_version() accepts existing seed-package metadata and _uninstall_dist() joins entries from top_level.txt and RECORD to site-packages without checking containment. When a reused destination contains distribution metadata influenced by another account, relative traversal, absolute entries, or linked parents can cause app-data reseeding to delete files outside the environment or the environment root with the invoking user's permissions, provided that user has deletion rights over the named paths. The deletion occurs during environment creation before any later use of the environment. Fresh environments without existing package metadata and creation with --clear do not enter this cleanup path. This issue is fixed in version 21.14.9.
Title virtualenv: Seed replacement does not contain metadata deletion paths
Weaknesses CWE-22
References
Metrics cvssV3_1

{'score': 4.5, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:L'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-27T11:01:51.649Z

Reserved: 2026-10-20T16:03:14.863Z

Link: CVE-2026-113719

cve-icon Vulnrichment

Updated: 2026-10-27T11:01:46.813Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-10-20T20:17:18.347

Modified: 2026-10-27T11:17:28.280

Link: CVE-2026-113719

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-20T19:42:07Z

Links: CVE-2026-113719 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-20T21:00:18Z

Weaknesses
  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')