OSPulse

Is virtualenv healthy, maintained, and safe?

55/ 100
virtualenvv21.7.0
Medium riskconfidence: Highview on pypi.org

Maintained, but watch it — virtualenv has real signals (drift, thin maintenance, or advisories) worth tracking.

vital-signs traceirregular · weakening

The verdict

OSPulse scores virtualenv at 55/100 (medium risk), computed deterministically from live PyPI release history, and the OSV vulnerability database. Maintained, but watch it — virtualenv has real signals (drift, thin maintenance, or advisories) worth tracking.

Its most recent release shipped on 21 July 2026 — 7 days ago — so development is clearly active. Across 267 releases the cadence has been steady, which is a good sign of an ongoing maintenance rhythm. PyPI doesn't expose a reliable maintainer count, so bus-factor isn't scored here — treat maintenance depth as unknown rather than assumed.

OSV lists 6 known advisories for virtualenv, including 1 high. Review whether your version is in the affected range and whether a fixed release is available before depending on it. Each advisory is listed with its OSV/GHSA identifier below.

virtualenv is usable but carries real signals — pin versions, watch for new advisories, and keep a fallback in mind. This is a one-time snapshot of a single package — real projects depend on dozens or hundreds of packages, and any one of them can drift or be compromised between releases. Run your own requirements.txt through the free health check, or have OSPulse monitor your whole dependency tree continuously.

Evidence trail — deterministic, auditable

Last release recency
7 days ago · active
Release cadence
steady · typical gap ~10d
Maintainer bus factor
not available from PyPI — not penalised
Known vulnerabilities (OSV)
6 advisories · 1 high
-45
Package age
18.9 years · 267 releases

Known vulnerabilities (6)

  • GHSA-3jhc-wjqf-5f2cMODERATECVE-2011-4617PYSEC-2011-23

    Virtualenv Allows Symlink Attack on /tmp/

  • GHSA-597g-3phw-6986MODERATEBIT-virtualenv-2026-22702CVE-2026-22702PYSEC-2026-2009

    virtualenv Has TOCTOU Vulnerabilities in Directory Creation

  • GHSA-rqc4-2hc7-8c8vHIGHBIT-virtualenv-2024-53899CVE-2024-53899PYSEC-2024-187

    virtualenv allows command injection through activation scripts for a virtual environment

  • PYSEC-2011-23UNKNOWNCVE-2011-4617GHSA-3jhc-wjqf-5f2c

    virtualenv.py in virtualenv before 1.5 allows local users to overwrite arbitrary files via a symlink attack on a certain file in /tmp/.

  • PYSEC-2024-187LOWBIT-virtualenv-2024-53899CVE-2024-53899GHSA-rqc4-2hc7-8c8v

    virtualenv before 20.26.6 allows command injection through the activation scripts for a virtual environment. Magic template strings are not quoted correctly when replacing. NOTE: this is not the same

  • PYSEC-2026-2009LOWBIT-virtualenv-2026-22702CVE-2026-22702GHSA-597g-3phw-6986

    virtualenv Has TOCTOU Vulnerabilities in Directory Creation

Key facts

Latest version
v21.7.0
Last release
21 July 2026 (7 days ago)
Total releases
267
First release
14 September 2007
Package age
18.9 years
Maintainers
not exposed by PyPI
Known advisories
6
Confidence
High

Frequently asked

Is virtualenv still maintained?

Yes — virtualenv released as recently as 21 July 2026 (7 days ago), so it is actively maintained.

Does virtualenv have known security vulnerabilities?

Yes — OSV lists 6 advisories for virtualenv. See the advisory list on this page for the OSV/GHSA identifiers.

Is virtualenv safe to use?

Maintained, but watch it — virtualenv has real signals (drift, thin maintenance, or advisories) worth tracking. OSPulse rates it 55/100 (medium risk) based on release recency, cadence and known vulnerabilities.

Other PyPI packages we've checked

Browse all checked packages →

virtualenv is one package. What about the other hundreds in your tree?

Paste your own requirements.txt into the free health check for an instant snapshot — or let OSPulse monitor your whole dependency tree continuously, before your CVE scanner wakes up.

Data from the PyPI registry & OSV.dev · snapshot generated 2026-07-28 · scores are deterministic and recomputed on each refresh.