CVE-2026-115586
SSVC: nonevirtualenv: Bash activator leaves the --prompt value unescaped in PS1 when promptvars is off, so prompt expansion later executes it (regression in 21.14.9)
Fetching some sources has been requested. Reload in about a minute to see them.
CVSS:4.0/AV:L/AC:H/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
CVSS:4.0/AV:L/AC:H/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Attack conditions and impact
Derived from the CNA (via NVD) CVSS 4.0 vector| Metric | Value | Meaning |
|---|---|---|
| Attack vector AV | L | Local |
| Attack complexity AC | H | High (conditions required) |
| Attack requirements AT | P | Present |
| Privileges required PR | N | None |
| User interaction UI | A | Active |
| Confidentiality (vulnerable system) VC | H | High |
| Integrity (vulnerable system) VI | H | High |
| Availability (vulnerable system) VA | H | High |
| Confidentiality (subsequent systems) SC | N | None |
| Integrity (subsequent systems) SI | N | None |
| Availability (subsequent systems) SA | N | None |
CVSS:4.0/AV:L/AC:H/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Description
virtualenv is a tool for creating isolated virtual python environments. From 21.14.9 until 21.14.13, the bash bin/activate script can copy an attacker-controlled --prompt value into PS1 without escaping dollar signs or backticks when both promptvars and POSIX mode are disabled during activation. Re-enabling promptvars, running set -o posix, or starting an interactive child bash that inherits the exported PS1 can then expand command substitution in the stored VIRTUAL_ENV_PROMPT value and execute commands as the user who activates the environment. This issue is fixed in version 21.14.13.
CVSS assessments
| Provider | Version | Score | Vector |
|---|---|---|---|
| NVD / [email protected] (Secondary) | 4.0 | 7.1 HIGH | CVSS:4.0/AV:L/AC:H/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| CNA / GitHub_M | 4.0 | 7.1 HIGH | CVSS:4.0/AV:L/AC:H/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
Affected products and packages
CNA (CVE.org)
| Vendor | Product | Versions |
|---|---|---|
| pypa | virtualenv | affected: >= 21.14.9, < 21.14.13 |
Open-source packages (GitHub Advisory / OSV)
virtualenv: Bash activator leaves the --prompt value unescaped in PS1 when promptvars is off, so prompt expansion later executes it (regression in 21.14.9)
| Ecosystem | Package | Affected versions | Fixed in |
|---|---|---|---|
| PyPI | virtualenv | >= 21.14.9, < 21.14.13 | 21.14.13 |
Linux distribution status
Red Hat ↗ moderate
| Release | Package | Status | Fixed version / notes |
|---|---|---|---|
| Red Hat Ansible Automation Platform 2 | ansible-automation-platform-26/controller-rhel9 | affected | |
| Red Hat Ansible Automation Platform 2 | ansible-automation-platform-26/eda-controller-rhel9 | affected | |
| Red Hat Ansible Automation Platform 2 | ansible-automation-platform-26/lightspeed-chatbot-rhel9 | affected | |
| Red Hat Ansible Automation Platform 2 | ansible-automation-platform-27/controller-rhel9 | affected | |
| Red Hat Ansible Automation Platform 2 | ansible-automation-platform-27/eda-controller-rhel9 | affected | |
| Red Hat OpenShift Dev Spaces | devspaces/udi-rhel9 | affected | |
| OpenShift Lightspeed | openshift-lightspeed/lightspeed-service-api-rhel9 | affected | |
| Red Hat Ansible Automation Platform 2 | python-virtualenv | affected | |
| Red Hat OpenShift Container Platform 4 | python-virtualenv | affected | |
| Red Hat Ansible Automation Platform 2 | python3.11-virtualenv | affected | |
| Red Hat Ansible Automation Platform 2 | python3.12-virtualenv | affected | |
| Red Hat OpenShift AI (RHOAI) | rhai-early-access/docling-serve-cuda-rhel9 | affected | |
| Red Hat OpenShift AI (RHOAI) | rhoai/odh-feature-server-rhel9 | affected | |
| Red Hat OpenShift AI (RHOAI) | rhoai/odh-kserve-agent-rhel9 | affected | |
| Red Hat OpenShift AI (RHOAI) | rhoai/odh-kserve-controller-rhel9 | affected | |
| Red Hat OpenShift AI (RHOAI) | rhoai/odh-kserve-router-rhel9 | affected | |
| Red Hat OpenShift AI (RHOAI) | rhoai/odh-kserve-storage-initializer-rhel9 | affected | |
| Red Hat OpenShift AI (RHOAI) | rhoai/odh-ta-lmes-job-rhel9 | affected | |
| Red Hat OpenShift AI (RHOAI) | rhoai/odh-training-rocm64-torch28-py312-rhel9 | affected | |
| Red Hat OpenShift AI (RHOAI) | rhoai/odh-trustyai-nemo-guardrails-server-rhel9 | affected | |
| Red Hat OpenShift AI (RHOAI) | rhoai/odh-workbench-codeserver-datascience-cpu-py312-rhel9 | affected | |
| Red Hat OpenShift AI (RHOAI) | rhoai/odh-workbench-jupyter-datascience-cpu-py312-rhel9 | affected | |
| Red Hat OpenShift AI (RHOAI) | rhoai/odh-workbench-jupyter-pytorch-llmcompressor-cuda-py312-rhel9 | affected | |
| Red Hat Satellite 6 | satellite/iop-advisor-backend-rhel9 | affected | |
| Red Hat Satellite 6 | satellite/iop-host-inventory-rhel9 | affected | |
| Red Hat Satellite 6 | satellite/iop-yuptoo-rhel9 | affected |
Debian ↗
| Release | Package | Status | Fixed version / notes |
|---|---|---|---|
| bookworm | python-virtualenv | not-affected unimportant | |
| forky | python-virtualenv | not-affected unimportant | |
| sid | python-virtualenv | not-affected unimportant | |
| trixie | python-virtualenv | not-affected unimportant |
Ubuntu ↗ Fetching
References (5)
- https://github.com/advisories/GHSA-cx6f-vjhg-g3cc GHSA
- https://github.com/pypa/virtualenv/commit/3598e201f6f044e389136b2347a8a919ac03c5f4 NVD, CNA, GHSA x_refsource_MISC
- https://github.com/pypa/virtualenv/pull/3466 NVD, CNA, GHSA x_refsource_MISC
- https://github.com/pypa/virtualenv/releases/tag/21.14.13 NVD, CNA, GHSA x_refsource_MISC
- https://github.com/pypa/virtualenv/security/advisories/GHSA-cx6f-vjhg-g3cc NVD, CNA, GHSA x_refsource_CONFIRM