CVE-2026-113717: virtualenv verification bypass in wheel download and seeding

CVE-2026-113717 · Severity: medium · CVSS 4 · Published 2026-10-20

virtualenv is a tool that creates isolated Python environments for safe package management. Prior to version 21.14.9, the pip seeder could bypass SHA-256 digest verification from PyPI, potentially allowing installation of unverified or counterfeit packages from package indexes. An attacker controlling a non-PyPI index could exploit this to inject malicious packages into environments that rely on the default verification settings.

Technologies: Pypa Virtualenv, virtualenv (PyPI). Vendors: Pypa, PyPI.

Quick answers

Is CVE-2026-113717 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-113717 being exploited in the wild.
How severe is CVE-2026-113717?
Medium severity, with a CVSS score of 4, published 20 October 2026.
Which products and versions are affected?
Pypa Virtualenv before 21.14.9; virtualenv (PyPI) < 21.14.9, ECOSYSTEM:introduced=0,fixed=21.14.9.
Is there a fix for CVE-2026-113717?
Yes. virtualenv (PyPI): upgrade to 21.14.9 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-113717 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-113717?
Check whether you run Pypa Virtualenv or virtualenv (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • virtualenv (PyPI): upgrade to 21.14.9 or later
    pip install "virtualenv>=21.14.9"

Technical details

The vulnerability exists in PipInvoke.get_pip_install_cmd() and download_wheel(): when using --seeder pip --download, the code called get_wheel(download=False) and allowed pip to consult the configured index without verifying the resulting wheel against PyPI's published SHA-256 digest. The pip seeder also performed its own index lookup outside the verification path. The fix ensures all downloads land in a private staging directory, pass cryptographic checks against PyPI metadata (when using the default index), and only then move into the reusable cache; pip installs only from that verified set with the index disabled.

Affected products

  • pypa virtualenv before 21.14.9

Identifiers

  • CVE-2026-113717
  • GHSA-cx28-75q4-x26q

Timeline

  • 2026-10-17: patched
  • 2026-10-20: advisory

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.