Description
virtualenv is a tool for creating isolated virtual python environments. Prior to 21.14.9, the stdlib venv creator reads generated pyvenv.cfg with str.splitlines() and merges parsed keys over virtualenv's selected configuration. An untrusted caller who influences the destination pathname can include a line-boundary character such as U+2028 to inject keys including home and include-system-site-packages, causing path data to change configuration structure before final output. Setting include-system-site-packages to true weakens environment isolation, while an altered home can change which standard-library files the interpreter loads if the attacker also controls that location. The builtin creator does not use this readback path. This issue is fixed in version 21.14.9.
Published: 2026-10-20
Score: 2 Low
EPSS: < 1% Very Low
KEV: No
Impact: Potential weakening of virtualenv isolation and risk of loading untrusted code
Action: Apply patch
AI Analysis

Impact

The vulnerability allows an attacker who can influence the destination pathname used by the standard library venv creator to inject special Unicode line‑boundary characters such as U+2028. These characters cause the creator to re‑parse the generated pyvenv.cfg file in a way that merges injected configuration keys, most notably home and include‑system‑site‑packages. If include‑system‑site‑packages is set to true, the environment loses isolation, allowing it to import system‑wide packages that were not intended to be available. If the attacker also controls the location pointed to by the home key, the interpreter may load altered standard‑library modules, potentially leading to arbitrary code execution. The impact materializes only when an untrusted caller can specify the pathname for the virtual environment, which is commonly a local operation.

Affected Systems

The affected product is Python virtualenv as distributed by PyPA. Versions prior to 21.14.9 are vulnerable. The fix was released with the 21.14.9 release, so any installation of virtualenv newer than or equal to that version is not affected.

Risk and Exploitability

The CVSS score of 2 rates the risk as low, but the exploitation requires local influence over the destination path and the ability to inject a Unicode line‑boundary. The EPSS score is not available, and the issue is not listed in the CISA KEV catalog, indicating that it has not been widely reported as exploited. However, environments that rely on strict isolation of virtual environments could be compromised if an attacker can set the working directory or supply the path used to create the environment. The primary attack vector is local, through manipulation of the pathname supplied when invoking virtualenv.

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

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Python virtualenv to version 21.14.9 or later.
  • Validate the destination pathname supplied to virtualenv to ensure it does not contain unexpected Unicode line‑boundary characters.
  • If upgrading is not immediately possible, review and restrict the pyvenv.cfg file to disallow include‑system‑site‑packages and ensure the home path points to a trusted directory.

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

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-qmx5-4p3x-wvqf virtualenv: Venv configuration readback can reinterpret path boundaries
History

Fri, 23 Oct 2026 03: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

cvssV3_1

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

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, the stdlib venv creator reads generated pyvenv.cfg with str.splitlines() and merges parsed keys over virtualenv's selected configuration. An untrusted caller who influences the destination pathname can include a line-boundary character such as U+2028 to inject keys including home and include-system-site-packages, causing path data to change configuration structure before final output. Setting include-system-site-packages to true weakens environment isolation, while an altered home can change which standard-library files the interpreter loads if the attacker also controls that location. The builtin creator does not use this readback path. This issue is fixed in version 21.14.9.
Title virtualenv: Venv configuration readback can reinterpret path boundaries
Weaknesses CWE-93
References
Metrics cvssV4_0

{'score': 2, 'vector': 'CVSS:4.0/AV:L/AC:H/AT:P/PR:N/UI:P/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-23T02:01:48.925Z

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

Link: CVE-2026-113715

cve-icon Vulnrichment

Updated: 2026-10-23T02:01:43.826Z

cve-icon NVD

Status : Awaiting Analysis

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

Modified: 2026-10-23T02:16:56.967

Link: CVE-2026-113715

cve-icon Redhat

Severity : Moderate

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

Links: CVE-2026-113715 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-20T20:45:14Z

Weaknesses
  • CWE-93

    Improper Neutralization of CRLF Sequences ('CRLF Injection')