Skip to main content
← All vulnerabilities
CVE-2026-102938PYSEC-2026-4012BIT-VIRTUALENV-2026-102938GHSA-9H9J-4VRJ-GF7G

virtualenv writes prompt values into pyvenv.cfg without sanitizing line boundaries, allowing configuration injection

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 21.7.11
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: partial

Summary

virtualenv is a tool for creating isolated virtual python environments. Prior to 21.7.11, PyEnvCfg.write() writes prompt values verbatim to the line-oriented pyvenv.cfg format while PyEnvCfg._read_values() parses the file with str.splitlines() and accepts the last value for duplicate keys. An attacker who influences --prompt, VIRTUALENV_PROMPT, or configuration input can insert a recognized line boundary and additional keys, including home, causing consumers to use an attacker-selected base interpreter or corrupted environment metadata. The security impact requires prompt input from outside the operator's trust boundary; directly supplied prompt content primarily corrupts the operator's own environment. This issue is fixed in version 21.7.11.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: partial

  3. Record last updated

Affected versions

  • pypa virtualenv

    fixed in 21.7.11

  • virtualenvBitnami

    fixed in 21.7.11

  • virtualenvPyPI

    fixed in 21.7.11

References 4

GitHub · pypa/virtualenv