{"description":"Trending threats, MITRE ATT\u0026CK coverage, and detection metadata. Fed continuously.","favicon":"https://feed.craftedsignal.io/favicon-32x32.png","feed_url":"https://feed.craftedsignal.io/tags/virtualenv/feed.json","home_page_url":"https://feed.craftedsignal.io/","icon":"https://feed.craftedsignal.io/apple-touch-icon.png","items":[{"_cs_actors":[],"_cs_cpes":["cpe:2.3:a:pypa:virtualenv:*:*:*:*:*:*:*:*"],"_cs_cves":[{"cvss":7.8,"id":"CVE-2026-113726"},{"id":"CVE-2026-113776"}],"_cs_exploited":false,"_cs_has_poc":false,"_cs_poc_references":[],"_cs_products":["virtualenv (\u003c= 21.14.3)","virtualenv (20.26.6-21.14.1)"],"_cs_severities":["high"],"_cs_tags":["command-injection","virtualenv","zsh","cve-2026-113726","code-injection","supply-chain","python","cve-2026-113776"],"_cs_type":"advisory","_cs_vendors":["PyPA"],"content_html":"\u003cp\u003eThe virtualenv \u003ccode\u003eactivate\u003c/code\u003e script fails to properly sanitize the environment name when setting the \u003ccode\u003ePS1\u003c/code\u003e prompt variable for zsh. In environments where the \u003ccode\u003ePROMPT_SUBST\u003c/code\u003e option is enabled (a default in frameworks like oh-my-zsh), the shell performs parameter and command substitution on the prompt string. An attacker who can influence the environment name or prompt string - such as through directory naming or CI/CD job metadata - can inject shell metacharacters (e.g., \u003ccode\u003e$(...)\u003c/code\u003e, backticks) to execute arbitrary commands every time the prompt is rendered. This vulnerability affects virtualenv versions through 21.14.3.\u003c/p\u003e\n\u003ch2 id=\"impact\"\u003eImpact\u003c/h2\u003e\n\u003cp\u003eSuccessful exploitation allows arbitrary command execution with the privileges of the user running the zsh session. This can be triggered by sourcing a malicious virtualenv activation script, which may be delivered via cloned repositories, unpacked archives, or CI/CD pipelines that dynamically name virtual environments based on external inputs.\u003c/p\u003e\n\u003ch2 id=\"recommendation\"\u003eRecommendation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate virtualenv to version 21.14.4 or later.\u003c/li\u003e\n\u003cli\u003eFor environments where immediate patching is not possible, set the environment variable \u003ccode\u003eVIRTUAL_ENV_DISABLE_PROMPT=1\u003c/code\u003e before sourcing any \u003ccode\u003eactivate\u003c/code\u003e script.\u003c/li\u003e\n\u003cli\u003eDisable \u003ccode\u003ePROMPT_SUBST\u003c/code\u003e in zsh configurations if not strictly required for shell functionality.\u003c/li\u003e\n\u003cli\u003eAudit existing virtual environment directories for suspicious characters in their naming convention, particularly those sourced within automated build environments or CI/CD runners.\u003c/li\u003e\n\u003c/ul\u003e\n","date_modified":"2026-10-21T17:06:35Z","date_published":"2026-10-21T17:06:20Z","id":"https://feed.craftedsignal.io/briefs/2026-10-21-virtualenv-command-injection/","summary":"The virtualenv activation script for zsh is vulnerable to command injection via the environment prompt when PROMPT_SUBST is enabled, allowing arbitrary code execution upon prompt rendering.","title":"PyPA virtualenv: Zsh command injection in activate script (CVE-2026-113726)","url":"https://feed.craftedsignal.io/briefs/2026-10-21-virtualenv-command-injection/"}],"language":"en","title":"CraftedSignal Threat Feed - Virtualenv","version":"https://jsonfeed.org/version/1.1"}